structure DD_LOCKDATA (ddrawint.h)
La structure de DD_LOCKDATA contient les informations nécessaires pour effectuer un verrou tel que défini par les structures de paramètres Microsoft DirectDraw.
Syntaxe
typedef struct _DD_LOCKDATA {
PDD_DIRECTDRAW_GLOBAL lpDD;
PDD_SURFACE_LOCAL lpDDSurface;
DWORD bHasRect;
RECTL rArea;
LPVOID lpSurfData;
HRESULT ddRVal;
VOID *Lock;
DWORD dwFlags;
FLATPTR fpProcess;
} *PDD_LOCKDATA, DD_LOCKDATA;
Membres
lpDD
Pointe vers une structure DD_DIRECTDRAW_GLOBAL qui décrit l’appareil du pilote.
lpDDSurface
Pointe vers une structure DD_SURFACE_LOCAL qui décrit la surface( dans le cas de LockD3DBuffer, une mémoire tampon) associée à la région de mémoire à verrouiller.
bHasRect
Spécifie si la zone dans rArea est valide. La valeur 0x00000001 indique une zone valide, 0x00000000 indique une zone non valide.
rArea
Spécifie une structure RECTL qui définit la zone sur la surface à verrouiller.
lpSurfData
Spécifie l’emplacement dans lequel le pilote peut retourner un pointeur vers la région mémoire qu’il a verrouillée.
ddRVal
Spécifie l’emplacement dans lequel le pilote écrit la valeur de retour du rappel DdLock ou LockD3DBuffer . Un code de retour de DD_OK indique la réussite. Pour plus d’informations, consultez Valeurs de retour pour DirectDraw.
Lock
Utilisé par l’API DirectDraw et ne doit pas être renseigné par le pilote.
dwFlags
Spécifie un masque de bits qui indique au pilote comment effectuer le verrouillage de la mémoire. Ce membre est un or au niveau du bit de l’une des valeurs suivantes :
Indicateur | Signification |
---|---|
DDLOCK_DISCARDCONTENTS |
Cet indicateur indique au pilote qu’il peut ignorer le processus de désorganisation, car l’application prévoit de remplacer chaque pixel dans la surface ou le rectangle verrouillé (et donc d’effacer les pixels non réorganisés de toute façon). Les applications doivent toujours définir cet indicateur lorsqu’elles ont l’intention de remplacer l’ensemble de la surface ou du rectangle verrouillé. |
DDLOCK_DONOTWAIT | Sur les interfaces IDirectDrawSurface7 et ultérieures, la valeur par défaut est DDLOCK_WAIT. Si vous souhaitez remplacer la valeur par défaut et utiliser l’heure à laquelle l’accélérateur est occupé (comme indiqué par le code de retour DDERR_WASSTILLDRAWING), utilisez cet indicateur. |
DDLOCK_EVENT | Définissez si un handle d’événement est passé à Lock, ce qui déclenche l’événement lorsqu’il peut retourner le pointeur de mémoire surface demandé. |
DDLOCK_HASVOLUMETEXTUREBOXRECT | Le pilote doit retourner un pointeur de mémoire valide vers le début de la texture sous-volume spécifiée dans le rectangle (RECTL) dans rArea. Le pilote obtient les coordonnées avant et arrière de la sous-activité à partir des 16 bits supérieurs des coordonnées gauche et droite (membres gauche et droit de RECTL) respectivement. Les coordonnées gauche et droite sont limitées aux 16 bits inférieurs. Si aucun rectangle n’est spécifié, le pilote doit retourner un pointeur vers le haut du volume entier. Cette valeur est disponible dans DirectX 8.1 et versions ultérieures. |
DDLOCK_NODIRTYUPDATE |
|
DDLOCK_NOOVERWRITE | Utilisé uniquement avec les verrous de mémoire tampon de vertex Direct3D. Indique qu’aucun sommet auquel il a été fait référence dans IDirect3DDevice7::D rawPrimitiveVB et IDirect3DDevice7::D rawIndexedPrimitiveVB (décrit dans la documentation du SDK Direct3D) depuis le début du cadre (ou le dernier verrou sans cet indicateur) n’est modifié pendant le verrouillage. Cela peut être utile lorsque l’on ajoute uniquement des données au tampon de vertex. |
DDLOCK_NOSYSLOCK |
|
DDLOCK_OKTOSWAP | Identique à DDLOCK_DISCARDCONTENTS. |
DDLOCK_READONLY | La surface verrouillée sera uniquement lue à partir de. Sur Windows 2000 et versions ultérieures, cet indicateur n’est jamais défini. |
DDLOCK_SURFACEMEMORYPTR | Le pilote doit retourner un pointeur de mémoire valide vers le haut du rectangle spécifié dans rArea. Si aucun rectangle n’est spécifié, le pilote doit retourner un pointeur vers le haut de la surface. |
DDLOCK_WAIT | Définissez pour indiquer que Lock doit attendre qu’il puisse obtenir un pointeur de mémoire valide avant de retourner. Si ce bit est défini, Verrou ne retourne jamais DDERR_WASSTILLDRAWING. |
DDLOCK_WRITEONLY | La surface verrouillée sera uniquement écrite dans. Sur Windows 2000 et versions ultérieures, cet indicateur n’est jamais défini. |
fpProcess
Spécifie un pointeur vers un mappage en mode utilisateur de la mémoire du pilote. Le pilote effectue ce mappage dans DdMapMemory. Windows 2000 et versions ultérieures uniquement.
Spécifications
En-tête | ddrawint.h (inclure Winddi.h) |