Structure DDLOCKOUT (ddkmapi.h)
La structure DDLOCKOUT contient une description de la surface.
Syntaxe
typedef struct _DDLOCKOUT {
DWORD ddRVal;
DWORD dwSurfHeight;
DWORD dwSurfWidth;
LONG lSurfPitch;
PVOID lpSurface;
DWORD SurfaceCaps;
DWORD dwFormatFlags;
DWORD dwFormatFourCC;
DWORD dwFormatBitCount;
union {
DWORD dwRBitMask;
DWORD dwYBitMask;
};
union {
DWORD dwGBitMask;
DWORD dwUBitMask;
};
union {
DWORD dwBBitMask;
DWORD dwVBitMask;
};
} DDLOCKOUT, *LPDDLOCKOUT;
Membres
ddRVal
Spécifie l’emplacement dans lequel Microsoft DirectDraw écrit la valeur de retour de la fonction DxApi pour les opérations de DD_DXAPI_LOCK. Un code de retour de DD_OK indique la réussite.
dwSurfHeight
dwSurfWidth
Spécifiez les dimensions de la surface, en pixels.
lSurfPitch
Spécifie la distance, en octets, au début de la ligne suivante.
lpSurface
Pointe vers la mémoire de surface.
SurfaceCaps
Indique un ensemble d’indicateurs qui spécifient les fonctionnalités de la surface. Ce membre peut être défini sur un ou plusieurs des indicateurs suivants :
Drapeau | Signification |
---|---|
DDSCAPS_3DDEVICE | Cette surface peut être utilisée pour le rendu 3D. Les applications peuvent utiliser cet indicateur pour s’assurer qu’un appareil qui peut uniquement s’afficher sur un certain tas possède des surfaces hors écran allouées à partir du tas approprié. Si cet indicateur est défini pour un tas, la surface n’est pas allouée à partir de ce tas. |
DDSCAPS_ALLOCONLOAD | La mémoire de l’aire n’est pas allouée tant que la surface n’est pas chargée par l’application à l’aide de la méthode IDirect3DDevice7 ::Load. |
DDSCAPS_ALPHA | Cette surface contient des informations alpha. Le format de pixel doit être interrogé pour déterminer si cette surface contient uniquement des informations alpha ou alpha entrelacées avec des données de couleur de pixel (telles que RVBA ou YUVA). |
DDSCAPS_BACKBUFFER | Cette surface est la mémoire tampon arrière d’une structure de glissement de surface. En règle générale, cette fonctionnalité est définie par la méthode CreateSurface de l’application lorsque l’indicateur de DDSCAPS_FLIP est utilisé. Seule la surface qui précède immédiatement la surface DDSCAPS_FRONTBUFFER a cette fonctionnalité définie. Les autres surfaces sont identifiées comme des mémoires tampons de retour en présence de l’indicateur de DDSCAPS_FLIP, de leur ordre de pièce jointe et de l’absence des fonctionnalités de DDSCAPS_FRONTBUFFER et de DDSCAPS_BACKBUFFER. Si cette fonctionnalité est envoyée à la méthode CreateSurface de l’application, une mémoire tampon back autonome est en cours de création. Une fois cette méthode appelée, cette surface peut être attachée à une mémoire tampon avant, à une autre mémoire tampon arrière ou à la fois pour former une structure de surface de glissement. Pour plus d’informations, consultez la méthode AddAttachedSurface dans la documentation du Kit de développement logiciel (SDK) DirectX. DirectDraw prend en charge un nombre arbitraire de surfaces dans une structure de glissement. |
DDSCAPS_COMPLEX | Une surface complexe est décrite. Une surface complexe entraîne la création de plusieurs surfaces. Les surfaces supplémentaires sont attachées à la surface racine. La structure complexe ne peut être détruite qu’en détruisant la racine. |
DDSCAPS_FLIP |
Cette surface fait partie d’une structure de glissement de surface. Lorsque cette fonctionnalité est transmise à la méthode createSurface de l’application |
DDSCAPS_FRONTBUFFER |
Cette surface est la mémoire tampon avant d’une structure de glissement de surface. Cet indicateur est généralement défini par la méthode CreateSurface de l’application lorsque la fonctionnalité de DDSCAPS_FLIP est définie. Si cette fonctionnalité est envoyée à la méthode CreateSurface, une mémoire tampon frontale autonome est créée. Cette surface n’aura pas la fonctionnalité de DDSCAPS_FLIP. Il peut être attaché à d’autres mémoires tampons de retour pour former une structure de glissement à l’aide de la méthode addAttachedSurface |
DDSCAPS_HWCODEC | Cette surface doit pouvoir avoir un flux décompressé par le matériel. |
DDSCAPS_LIVEVIDEO | Cette surface doit être en mesure de recevoir une vidéo en direct. |
DDSCAPS_LOCALVIDMEM | Cette surface existe en true, la mémoire d’affichage locale plutôt que la mémoire d’affichage non locale. Si cet indicateur est spécifié, DDSCAPS_VIDEOMEMORY doit également être spécifié. Cet indicateur ne peut pas être utilisé avec l’indicateur DDSCAPS_NONLOCALVIDMEM. |
DDSCAPS_MIPMAP | Cette surface est un niveau de mipmap. Cette surface sera attachée à d’autres surfaces DDSCAPS_MIPMAP pour former le mipmap. Cela peut être fait explicitement en créant un certain nombre de surfaces et en les attachant à l’aide de la méthode AddAttachedSurface de l’application ou implicitement par la méthode createSurface de l’application. Si cette fonctionnalité est définie, DDSCAPS_TEXTURE doit également être définie. |
DDSCAPS_MODEX | Cette surface est une surface de 320 x 200 ou 320 x 240 mode X. |
DDSCAPS_NONLOCALVIDMEM | Cette surface existe en mémoire d’affichage non locale plutôt que true, mémoire d’affichage locale. Si cet indicateur est spécifié, DDSCAPS_VIDEOMEMORY indicateur doit également être spécifié. Cela ne peut pas être utilisé avec l’indicateur de DDSCAPS_LOCALVIDMEM. |
DDSCAPS_OFFSCREENPLAIN | Cette surface est toute surface hors écran qui n’est pas une superposition, une texture, une mémoire tampon z, une mémoire tampon avant, une mémoire tampon arrière-tampon ou une surface alpha. Il est utilisé pour identifier les surfaces simples. |
DDSCAPS_OPTIMIZED | Non implémenté actuellement. |
DDSCAPS_OVERLAY | Cette surface est une superposition. Elle peut ou non être directement visible selon qu’elle est actuellement superposée sur la surface primaire. DDSCAPS_VISIBLE pouvez être utilisé pour déterminer s’il est superposé à l’instant. |
DDSCAPS_OWNDC | Cette surface aura une association de contexte d’appareil (DC) pendant une longue période. |
DDSCAPS_PALETTE | Ce pilote de périphérique permet aux objets DirectDrawPalette uniques d’être créés et attachés à cette surface. |
DDSCAPS_PRIMARYSURFACE | La surface est la surface principale. Il représente ce qui est visible pour l’utilisateur à l’instant. |
DDSCAPS_PRIMARYSURFACELEFT | Cette surface est la surface primaire de l’œil gauche. Il représente ce qui est visible à l’œil gauche de l’utilisateur à l’instant. Lorsque cette surface est créée, la surface avec la fonctionnalité DDSCAPS_PRIMARYSURFACE représente ce qui est vu par l’œil droit de l’utilisateur. |
DDSCAPS_STANDARDVGAMODE | Cette surface est une surface standard en mode VGA, et non une surface ModeX. Cet indicateur ne peut pas être utilisé en combinaison avec l’indicateur de DDSCAPS_MODEX. |
DDSCAPS_SYSTEMMEMORY | Cette mémoire de surface a été allouée dans la mémoire système. |
DDSCAPS_TEXTURE | Cette surface peut être utilisée comme texture 3D. Elle n’indique pas si la surface est utilisée à cet effet. |
DDSCAPS_VIDEOMEMORY | Cette surface existe en mémoire d’affichage. |
DDSCAPS_VIDEOPORT | Cette surface peut recevoir des données à partir d’un port vidéo matériel. |
DDSCAPS_VISIBLE | Les modifications apportées à cette surface sont immédiatement visibles. Il est toujours défini pour la surface principale, ainsi que pour les superpositions pendant qu’elles sont superposées et les cartes de texture pendant qu’elles sont textures. |
DDSCAPS_WRITEONLY | Seul l’accès en écriture est autorisé à la surface. L’accès en lecture à partir de la surface peut générer une erreur de protection générale (GPF), mais les résultats de lecture de cette surface ne sont pas significatifs. |
DDSCAPS_ZBUFFER | Cette surface est la mémoire tampon z. La mémoire tampon z contient des informations qui ne peuvent pas être affichées. Au lieu de cela, il contient des informations de profondeur de bits utilisées pour déterminer quels pixels sont visibles et qui sont masqués. |
dwFormatFlags
Spécifie un ensemble d’indicateurs de contrôle facultatifs. Ce membre peut être défini sur une combinaison des indicateurs suivants :
Drapeau | Signification |
---|---|
DDPF_ALPHA | Le format de pixel décrit une surface alpha seule. |
DDPF_ALPHAPIXELS | La surface contient des informations de canal alpha au format pixel. |
DDPF_ALPHAPREMULT | Réservé à l’utilisation du système. |
DDPF_BUMPDUDV | Les données dUdV de la carte de choc au format de pixel sont valides. |
DDPF_BUMPLUMINANCE | Les données de luminance au format pixel sont valides. Cet indicateur est utilisé lors de la suspension des surfaces de la carte de choc ; le masque de bits de la partie de luminosité du pixel est ensuite indiqué par le membre dwBumpLuminanceBitCount de la structure DDPIXELFORMAT. |
DDPF_COMPRESSED | La surface accepte les données de pixels au format spécifié et la compresse pendant l’opération d’écriture. |
DDPF_FOURCC | Le code FOURCC est valide. |
DDPF_LUMINANCE | Les données De Luminance au format de pixel sont valides. Cet indicateur est utilisé uniquement pour la luminance ou la luminance ainsi que les surfaces alpha ; la profondeur du bit est ensuite indiquée par le membre dwLuminanceBitCount de la structure DDPIXELFORMAT. |
DDPF_PALETTEINDEXED1 | La surface est indexée de couleur 1 bits. |
DDPF_PALETTEINDEXED2 | La surface est indexée en couleur 2 bits. |
DDPF_PALETTEINDEXED4 | La surface est indexée de couleur 4 bits. |
DDPF_PALETTEINDEXED8 | La surface est indexée en couleur 8 bits. |
DDPF_PALETTEINDEXEDTO8 | La surface est de couleur 1, 2 ou 4 bits indexée à une palette 8 bits. |
DDPF_RGB | Les données RVB de la structure de format de pixels sont valides. |
DDPF_RGBTOYUV | La surface accepte les données RVB et les traduit pendant l’opération d’écriture en données YUV. Le format des données à écrire est contenu dans la structure de format de pixels. L’indicateur DDPF_RGB est défini. |
DDPF_STENCILBUFFER | La surface contient des informations de gabarit ainsi que les informations Z. |
DDPF_YUV | Les données YUV de la structure de format de pixels sont valides. |
DDPF_ZBUFFER | Le format de pixel décrit une surface z-buffer uniquement. |
DDPF_ZPIXELS | La surface est au format RVBZ. |
dwFormatFourCC
Spécifie le code FOURCC
dwFormatBitCount
Spécifie le nombre de bits par pixel (4, 8, 16, 24 ou 32) des données RVB ou YUV.
dwRBitMask
Spécifie le masque pour les bits rouges.
dwYBitMask
Spécifie le masque pour les bits Y.
dwGBitMask
Spécifie le masque pour les bits verts.
dwUBitMask
Spécifie le masque pour les bits U.
dwBBitMask
Spécifie le masque pour les bits bleus.
dwVBitMask
Spécifie le masque pour les bits V.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | ddkmapi.h (include Ddkmapi.h) |