Partager via


SetDeviceGammaRamp, fonction (wingdi.h)

La fonction SetDeviceGammaRamp définit la rampe gamma sur les cartes d’affichage couleur directes avec des pilotes qui prennent en charge les rampes gamma téléchargeables dans le matériel.

Important

Nous vous recommandons vivement de ne pas utiliser cette API. L’utilisation de cette API est soumise à des limitations majeures :

  • SetDeviceGammaRamp implémente des heuristiques pour case activée si une rampe fournie génère un écran illisible. Si une rampe enfreint ces heuristiques, la fonction échoue silencieusement (autrement dit, elle retourne TRUE, mais elle ne définit pas votre rampe). Pour cette raison, vous ne pouvez pas vous attendre à utiliser cette fonction pour définir n’importe quelle rampe gamma arbitraire. En particulier, l’heuristique empêche les rampes qui entraîneraient presque tous les pixels approchant d’une valeur unique (par exemple, noir/blanc plein écran), car cela peut empêcher un utilisateur de récupérer l’écran.

  • En raison de la nature globale de la fonction, toute autre application sur le système peut, à tout moment, remplacer n’importe quelle rampe que vous avez définie. Dans certains cas, le système d’exploitation lui-même peut réserver l’utilisation de cette fonction, ce qui entraîne le remplacement de toute rampe existante. La rampe gamma est également réinitialisée sur la plupart des événements d’affichage (connexion/déconnexion d’un moniteur, modifications de résolution, etc.). Vous ne pouvez donc pas être certain qu’une rampe que vous définissez est en vigueur.

  • Cette API a un comportement non défini en mode HDR.

  • Cette API a une interaction non définie avec les solutions d’étalonnage des couleurs intégrées et tierces.

Pour l’étalonnage des couleurs, nous vous recommandons de créer un profil ICC (International Color Consortium) et de laisser le système d’exploitation appliquer le profil. Pour les scénarios OEM avancés, il existe un modèle de pilote de périphérique que vous pouvez utiliser pour personnaliser l’étalonnage des couleurs plus directement. Pour plus d’informations sur la gestion des profils de couleur, consultez Le système de couleurs Windows .

Pour le filtrage de la lumière bleue, Windows fournit désormais une prise en charge intégrée appelée Night Light. Nous vous recommandons de diriger les utilisateurs vers cette fonctionnalité.

Pour l’adaptation des couleurs (par exemple, l’ajustement de l’étalonnage des couleurs en fonction des capteurs de lumière ambiante), Windows fournit désormais une prise en charge intégrée, que nous recommandons d’utiliser par les fabricants OEM.

Pour les effets de filtre personnalisés, il existe une variété de filtres de couleur d’accessibilité intégrés pour faciliter une gamme de cas.

Syntaxe

BOOL SetDeviceGammaRamp(
  HDC    hdc,
  LPVOID lpRamp
);

Paramètres

hdc

Spécifie le contexte de l’appareil du tableau d’affichage en couleur directe en question.

lpRamp

Pointeur vers une mémoire tampon contenant la rampe gamma à définir. La rampe gamma est spécifiée dans trois tableaux de 256 éléments WORD chacun, qui contiennent le mappage entre les valeurs RVB dans la mémoire tampon de trame et les valeurs de convertisseur numérique-analogique (DAC ). La séquence des tableaux est rouge, vert, bleu. Les valeurs RVB doivent être stockées dans les bits les plus significatifs de chaque WORD pour augmenter l’indépendance de la DAC.

Valeur retournée

Si cette fonction réussit, la valeur de retour est TRUE.

Si cette fonction échoue, la valeur de retour est FALSE.

Remarques

Les modes d’affichage des couleurs directes n’utilisent pas de tables de choix de couleurs et sont généralement 16, 24 ou 32 bits. Toutes les cartes vidéo couleur directes ne prennent pas en charge les rampes gamma chargeables. SetDeviceGammaRamp réussit uniquement pour les appareils avec des pilotes qui prennent en charge les rampes gamma téléchargeables dans le matériel.

Notes

L’exécution de cette API peut prendre un temps non trivial. Le retour sur du matériel peut prendre jusqu’à 200 ms.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête wingdi.h
Bibliothèque Gdi32.lib
DLL Gdi32.dll

Voir aussi