2008-09-23 16 views
4

Je me souviens de mes anciens pilotes graphiques Radeon qui avaient un certain nombre d'effets de superposition ou de filtres de couleur (quel que soit leur nom) qui rendrait l'écran par exemple. tons sépia ou couleurs négatives. Ma carte NVIDIA actuelle ne semble pas avoir une telle fonction donc je me demandais s'il était possible de faire mon propre pour Vista.Est-il possible de créer des effets de superposition de couleurs en plein écran dans Windows?

Je ne sais pas s'il existe un moyen de se brancher sur le moteur de rendu de la fenêtre ou, alternativement, dans les pilotes NVIDIA pour obtenir cet effet. Alors qu'il serait cool de pouvoir simplement modifier la couleur, il serait encore mieux de modifier la couleur en fonction de ses coordonnées d'écran ou d'effectuer d'autres fonctions plus variées. Un exemple serait des couleurs qui sont plus désaturées, plus elles sont longues du centre de l'écran.

Je n'ai pas de scénario d'utilisation spécifique, donc je ne peux pas fournir beaucoup plus d'informations. Fondamentalement, je suis juste curieux de savoir s'il y a quelque chose à travailler dans ce domaine.

Répondre

1

Vous pourriez avoir un plein écran layered window au-dessus de tout et en passant par les événements de clic .. Cependant c'est aki et lent par rapport à ce que pourrait être fait en obtenant un crochet dans le contexte DirectX du WDM renderer. Cependant, jusqu'à présent, ce n'est pas possible, car Microsoft ne fournit aucune interface publique dans ce domaine. L'utilitaire Flip 3D fait cela, mais même là, cette fonctionnalité n'est pas dans le programme, c'est dans la DLL WDM, appelée par ordinal (fonction cachée/non documentée, évidemment, puisqu'elle ne sert à rien d'autre)). Donc à peu près une autre impasse, d'où je n'ai pas pris la peine de creuser plus profond. Sur ce front, le mieux que nous puissions faire est d'attendre une sorte d'API officielle.

+0

Dommage. Mais qu'en est-il des pilotes graphiques, peut-être qu'ils permettent un moyen de le faire? –

+0

Je me demande si vous pouvez le retirer en utilisant les surfaces de recouvrement DirectX. – ChrisV