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 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 :
Indicateur | 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 ne peut afficher que sur un tas donné dispose de 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 la surface 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 des informations 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 retournement de surface. En règle générale, cette fonctionnalité est définie par la méthode CreateSurface de l’application lorsque l’indicateur 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 en tant que mémoires tampons d’arrière-plan par la présence de l’indicateur DDSCAPS_FLIP, leur ordre d’attachement et 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 arrière 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 aux deux pour former une structure de surface de basculement. 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 retournement. |
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 retournement de surface. Lorsque cette fonctionnalité est passée à la méthode CreateSurface de l’application, une mémoire tampon avant et une ou plusieurs mémoires tampons d’arrière-plan sont créées. DirectDraw définit le bit DDSCAPS_FRONTBUFFER sur la surface de mémoire tampon avant et le bit DDSCAPS_BACKBUFFER sur la surface adjacente à la surface de la mémoire tampon avant. Le membre dwBackBufferCount de la structure DDSURFACEDESC doit être défini sur au moins 1 pour que l’appel de méthode réussisse. La fonctionnalité DDSCAPS_COMPLEX doit toujours être définie lors de la création de plusieurs surfaces à l’aide de la méthode CreateSurface . |
DDSCAPS_FRONTBUFFER | Cette surface est la mémoire tampon avant d’une structure de retournement de surface. Cet indicateur est généralement défini par la méthode CreateSurface de l’application lorsque la fonctionnalité 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é DDSCAPS_FLIP. Il peut être attaché à d’autres mémoires tampons d’arrière-plan pour former une structure de basculement à l’aide de la méthode AddAttachedSurface de l’application. |
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 des vidéos en direct. |
DDSCAPS_LOCALVIDMEM | Cette surface existe en mémoire d’affichage locale true plutôt qu’en 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 d’un mipmap. Cette surface sera attachée à d’autres surfaces DDSCAPS_MIPMAP pour former le mipmap. Pour ce faire, vous pouvez créer un certain nombre de surfaces et les attacher à 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 l’être. |
DDSCAPS_MODEX | Cette surface est une surface 320 x 200 ou 320 x 240 en mode X. |
DDSCAPS_NONLOCALVIDMEM | Cette surface existe dans la mémoire d’affichage non locale plutôt que dans la mémoire d’affichage locale true. Si cet indicateur est spécifié, DDSCAPS_VIDEOMEMORY’indicateur doit également être spécifié. Il ne peut pas être utilisé avec l’indicateur DDSCAPS_LOCALVIDMEM. |
DDSCAPS_OFFSCREENPLAIN | Cette surface est une surface hors écran qui n’est pas une surface superposée, une texture, une z-buffer, une mémoire tampon avant, une mémoire tampon d’arrière-plan ou une surface alpha. Il est utilisé pour identifier les surfaces simples. |
DDSCAPS_OPTIMIZED | Actuellement non implémenté. |
DDSCAPS_OVERLAY | Cette surface est une superposition. Il peut ou non être directement visible selon qu’il est en cours de superposition sur la surface primaire. DDSCAPS_VISIBLE peut être utilisé pour déterminer s’il est en cours de superposition. |
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 de créer et d’attacher des objets DirectDrawPalette uniques à cette surface. |
DDSCAPS_PRIMARYSURFACE | La surface est la surface primaire. Il représente ce qui est visible pour l’utilisateur pour le moment. |
DDSCAPS_PRIMARYSURFACELEFT | Cette surface est la surface principale de l’œil gauche. Il représente ce qui est visible à l’œil gauche de l’utilisateur pour le moment. 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 en mode VGA standard, et non une surface ModeX. Cet indicateur ne peut pas être utilisé en combinaison avec l’indicateur 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 dans la 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 primaire, ainsi que pour les superpositions pendant qu’elles sont superposées et les mappages de texture pendant qu’elles sont texturées. |
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 ceux 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 :
Indicateur | Signification |
---|---|
DDPF_ALPHA | Le format de pixels décrit une surface alpha uniquement. |
DDPF_ALPHAPIXELS | La surface contient des informations de canal alpha au format pixel. |
DDPF_ALPHAPREMULT | Réservé pour le système. |
DDPF_BUMPDUDV | Les données dUdV du mappage de bosses au format de pixels sont valides. |
DDPF_BUMPLUMINANCE | Les données de luminance au format pixel sont valides. Cet indicateur est utilisé lors de la suspension de la luminance sur des surfaces de bumpmap ; le masque de bits pour la partie luminance du pixel est alors indiqué par le membre dwBumpLuminanceBitCount de la structure DDPIXELFORMAT . |
DDPF_COMPRESSED | La surface accepte les données de pixels au format spécifié et les compresse pendant l’opération d’écriture. |
DDPF_FOURCC | Le code FOURCC est valide. |
DDPF_LUMINANCE | Les données de luminance au format pixel sont valides. Cet indicateur est utilisé pour la luminance uniquement ou la luminance plus les surfaces alpha ; la profondeur de bits est alors indiquée par le membre dwLuminanceBitCount de la structure DDPIXELFORMAT. |
DDPF_PALETTEINDEXED1 | La surface est indexée en couleur 1 bits. |
DDPF_PALETTEINDEXED2 | La surface est indexée en couleur 2 bits. |
DDPF_PALETTEINDEXED4 | La surface est indexée en couleur 4 bits. |
DDPF_PALETTEINDEXED8 | La surface est indexée en couleur 8 bits. |
DDPF_PALETTEINDEXEDTO8 | La surface est une couleur 1, 2 ou 4 bits indexée dans une palette 8 bits. |
DDPF_RGB | Les données RVB dans 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 dans la structure de format pixel sont valides. |
DDPF_ZBUFFER | Le format de pixels décrit une surface z-buffer-only. |
DDPF_ZPIXELS | La surface est au format RVBZ. |
dwFormatFourCC
Spécifie le code FOURCC . Pour plus d’informations sur les codes FOURCC, consultez la documentation du Kit de développement logiciel (SDK) DirectX.
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.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ddkmapi.h (inclure Ddkmapi.h) |