Partager via


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)

Voir aussi

DD_DXAPI_LOCK

DxApi