Clé de couleur

 

Structure DDCOLORKEY

La structure DDCOLORKEY va permettre de définir la clé de la couleur source ou destination.

typedef struct _DDCOLORKEY{
DWORD dwColorSpaceLowValue;
DWORD dwColorSpaceHighValue;
} DDCOLORKEY,FAR* LPDDCOLORKEY;

 

Créer une clef de couleur sur une surface

Cette structure pourra être renseigné par

IDirectDrawSurface7::SetColorKey qui va permettre d'indiquer la valeur de la clé de la couleur à utiliser sur un objet DirectDrawSurface.

HRESULT SetColorKey(
DWORD dwFlags,
LPDDCOLORKEY lpDDColorKey
);

En entrée:

dwFlags pour indiquer:

Valeur Désignation
DDCKEY_COLORSPACE La structure contient color space
DDCKEY_DESTBLT Color key ou color space à utiliser comme clé de couleur en destination pour une opération de blitting (Non supporté sur toutes les cartes)
DDCKEY_DESTOVERLAY Color key ou color space à utiliser comme clé de couleur en destination pour une opération overlay (Non supporté sur toutes les cartes)
DDCKEY_SRCBLT Color key ou color space à utiliser comme clé de couleur en source pour une opération de blitting
DDCKEY_SRCOVERLAY Color key ou color space à utiliser comme clé de couleur en source pour une opération overlay

lpDDColorKey Adresse d'une structure de type DDCOLORKEY. Cette valeur pourra être à NULL pour retirer une définition précédente.

En sortie:DD_OK. si tout est OK, sinon un des codes erreurs:

DDERR_GENERIC
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_INVALIDSURFACETYPE
DDERR_NOOVERLAYHW
DDERR_NOTAOVERLAYSURFACE
DDERR_SURFACELOST
DDERR_UNSUPPORTED
DDERR_WASSTILLDRAWING

 

Lecture de la clef de couleur

IDirectDrawSurface7::GetColorKey Pour lire la valeur de la clé de couleur.

HRESULT GetColorKey(
DWORD dwFlags,
LPDDCOLORKEY lpDDColorKey
);

En entrée:

dwFlags

Valeur Désignation
DDCKEY_DESTBLT Color key ou color space à utiliser comme clé de couleur en destination pour une opération de blitting (Non supporté sur toutes les cartes)
DDCKEY_DESTOVERLAY Color key ou color space à utiliser comme clé de couleur en destination pour une opération overlay (Non supporté sur toutes les cartes)
DDCKEY_SRCBLT Color key ou color space à utiliser comme clé de couleur en source pour une opération de blitting
DDCKEY_SRCOVERLAY Color key ou color space à utiliser comme clé de couleur en source pour une opération overlay

lpDDColorKey Adresse d'une structure de type DDCOLORKEY. Cette valeur pourra être à NULL pour retirer une définition précédente.

En sortie:DD_OK. si tout est OK, sinon un des codes erreurs:

DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_NOCOLORKEY
DDERR_NOCOLORKEYHW
DDERR_SURFACELOST
DDERR_UNSUPPORTED