Estructura DDLOCKOUT (ddkmapi.h)
La estructura DDLOCKOUT contiene una descripción de la superficie.
Sintaxis
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;
Miembros
ddRVal
Especifica la ubicación en la que Microsoft DirectDraw escribe el valor devuelto de la función dxApi de
dwSurfHeight
dwSurfWidth
Especifique las dimensiones de la superficie, en píxeles.
lSurfPitch
Especifica la distancia, en bytes, al inicio de la línea siguiente.
lpSurface
Apunta a la memoria de la superficie.
SurfaceCaps
Indica un conjunto de marcas que especifican las funciones de la superficie. Este miembro se puede establecer en una o varias de las marcas siguientes:
Bandera | Significado |
---|---|
DDSCAPS_3DDEVICE | Esta superficie se puede usar para la representación 3D. Las aplicaciones pueden usar esta marca para asegurarse de que un dispositivo que solo se pueda representar en un montón determinado tenga superficies fuera de pantalla asignadas desde el montón correcto. Si se establece esta marca para un montón, la superficie no se asigna desde ese montón. |
DDSCAPS_ALLOCONLOAD | La memoria de la superficie no se asigna hasta que la aplicación carga la superficie mediante el método IDirect3DDevice7::Load. |
DDSCAPS_ALPHA | Esta superficie contiene información alfa. El formato de píxel debe consultarse para determinar si esta superficie contiene solo información alfa o información alfa entrelazada con datos de color de píxel (como RGBA o YUVA). |
DDSCAPS_BACKBUFFER | Esta superficie es el búfer de reserva de una estructura de volteo de superficie. Normalmente, la aplicación establece esta funcionalidad método createSurface cuando se usa la marca DDSCAPS_FLIP. Solo la superficie que precede inmediatamente a la superficie DDSCAPS_FRONTBUFFER tiene este conjunto de funcionalidades. Las otras superficies se identifican como búferes de reserva por la presencia de la marca DDSCAPS_FLIP, su orden de datos adjuntos y la ausencia de las funcionalidades de DDSCAPS_FRONTBUFFER y DDSCAPS_BACKBUFFER. Si esta funcionalidad se envía al método CreateSurface de la aplicación, se crea un búfer de retroceso independiente. Después de llamar a este método, esta superficie se podría adjuntar a un búfer frontal, otro búfer de reserva o ambos para formar una estructura de superficie voltear. Para obtener más información, consulte el método AddAttachedSurface en la documentación del SDK de DirectX. DirectDraw admite un número arbitrario de superficies en una estructura de volteo. |
DDSCAPS_COMPLEX | Se describe una superficie compleja. Una superficie compleja da como resultado la creación de más de una superficie. Las superficies adicionales se adjuntan a la superficie raíz. La estructura compleja solo se puede destruir destruyendo la raíz. |
DDSCAPS_FLIP |
Esta superficie forma parte de una estructura de volteo de superficie. Cuando esta funcionalidad se pasa al método de CreateSurface de la aplicación, se crean un búfer frontal y uno o varios búferes de reserva. DirectDraw establece el DDSCAPS_FRONTBUFFER bit en la superficie del búfer frontal y el DDSCAPS_BACKBUFFER bit en la superficie adyacente a la superficie del búfer frontal. El miembro |
DDSCAPS_FRONTBUFFER |
Esta superficie es el búfer frontal de una estructura de volteo de superficie. Normalmente, esta marca se establece mediante el método CreateSur face de la aplicación cuando se establece la funcionalidad DDSCAPS_FLIP. Si esta funcionalidad se envía al método CreateSurface, se crea un búfer frontal independiente. Esta superficie no tendrá la funcionalidad DDSCAPS_FLIP. Se puede adjuntar a otros búferes de reserva para formar una estructura de volteo mediante el método |
DDSCAPS_HWCODEC | Esta superficie debe ser capaz de tener una secuencia descomprimida por el hardware. |
DDSCAPS_LIVEVIDEO | Esta superficie debe poder recibir vídeo en directo. |
DDSCAPS_LOCALVIDMEM | Esta superficie existe en true, memoria de presentación local en lugar de memoria de visualización no local. Si se especifica esta marca, también se debe especificar DDSCAPS_VIDEOMEMORY. Esta marca no se puede usar con la marca DDSCAPS_NONLOCALVIDMEM. |
DDSCAPS_MIPMAP | Esta superficie es un nivel de un mapa mip. Esta superficie se adjuntará a otras superficies de DDSCAPS_MIPMAP para formar el mapa mip. Esto se puede hacer explícitamente mediante la creación de una serie de superficies y adjuntarlas mediante el método AddAttachedSurface de la aplicación o implícitamente por el método CreateSurface de la aplicación. Si se establece esta funcionalidad, también se debe establecer DDSCAPS_TEXTURE. |
DDSCAPS_MODEX | Esta superficie es una superficie X de 320x200 o 320x240. |
DDSCAPS_NONLOCALVIDMEM | Esta superficie existe en la memoria de presentación no local en lugar de en la memoria de visualización local true. Si se especifica esta marca, se debe especificar también DDSCAPS_VIDEOMEMORY marca. No se puede usar con la marca DDSCAPS_LOCALVIDMEM. |
DDSCAPS_OFFSCREENPLAIN | Esta superficie es cualquier superficie fuera de pantalla que no sea una superposición, textura, z-buffer, búfer frontal, búfer de reserva o superficie alfa. Se usa para identificar superficies sin formato. |
DDSCAPS_OPTIMIZED | Actualmente no se ha implementado. |
DDSCAPS_OVERLAY | Esta superficie es una superposición. Puede o no estar directamente visible en función de si actualmente se superpone a la superficie principal. DDSCAPS_VISIBLE se puede usar para determinar si se superpone en este momento. |
DDSCAPS_OWNDC | Esta superficie tendrá una asociación de contexto de dispositivo (DC) durante un largo período. |
DDSCAPS_PALETTE | Este controlador de dispositivo permite crear y adjuntar objetos DirectDrawPalette únicos a esta superficie. |
DDSCAPS_PRIMARYSURFACE | La superficie es la superficie principal. Representa lo que es visible para el usuario en este momento. |
DDSCAPS_PRIMARYSURFACELEFT | Esta superficie es la superficie principal del ojo izquierdo. Representa lo que es visible para el ojo izquierdo del usuario en el momento. Cuando se crea esta superficie, la superficie con la funcionalidad DDSCAPS_PRIMARYSURFACE representa lo que ve el ojo derecho del usuario. |
DDSCAPS_STANDARDVGAMODE | Esta superficie es una superficie de modo VGA estándar y no una superficie ModeX. Esta marca no se puede usar en combinación con la marca DDSCAPS_MODEX. |
DDSCAPS_SYSTEMMEMORY | Esta memoria de superficie se asignó en la memoria del sistema. |
DDSCAPS_TEXTURE | Esta superficie se puede usar como textura 3D. No indica si la superficie se usa para ese fin. |
DDSCAPS_VIDEOMEMORY | Esta superficie existe en la memoria para mostrar. |
DDSCAPS_VIDEOPORT | Esta superficie puede recibir datos de un puerto de vídeo de hardware. |
DDSCAPS_VISIBLE | Los cambios realizados en esta superficie son visibles inmediatamente. Siempre se establece para la superficie principal, así como para superposiciones mientras se superponen y mapas de textura mientras se están texturando. |
DDSCAPS_WRITEONLY | Solo se permite el acceso de escritura a la superficie. El acceso de lectura desde la superficie puede generar un error de protección general (GPF), pero los resultados de lectura de esta superficie no son significativos. |
DDSCAPS_ZBUFFER | Esta superficie es el búfer z. El búfer z contiene información que no se puede mostrar. En su lugar, contiene información de profundidad de bits que se usa para determinar qué píxeles están visibles y cuáles están ocultos. |
dwFormatFlags
Especifica un conjunto de marcas de control opcionales. Este miembro se puede establecer en una combinación de las marcas siguientes:
Bandera | Significado |
---|---|
DDPF_ALPHA | El formato de píxel describe una superficie de solo alfa. |
DDPF_ALPHAPIXELS | La superficie tiene información del canal alfa en formato de píxel. |
DDPF_ALPHAPREMULT | Reservado para uso del sistema. |
DDPF_BUMPDUDV | Los datos de dUdV de mapa de aumento en el formato de píxeles son válidos. |
DDPF_BUMPLUMINANCE | Los datos de luminancia en formato de píxeles son válidos. Esta marca se utiliza al colgar la luminancia fuera de las superficies del mapa de golpes; La máscara de bits de la parte de luminancia del píxel se indica a continuación mediante el dwBumpLuminanceBitCount miembro de la estructura DDPIXELFORMAT. |
DDPF_COMPRESSED | La superficie acepta datos de píxeles en el formato especificado y los comprime durante la operación de escritura. |
DDPF_FOURCC | El código FOURCC es válido. |
DDPF_LUMINANCE | Los datos de luminancia en formato de píxeles son válidos. Esta marca se utiliza solo para la luminancia o la luminancia más superficies alfa; A continuación, la profundidad de bits se indica mediante el dwLuminanceBitCount miembro de la estructura DDPIXELFORMAT. |
DDPF_PALETTEINDEXED1 | La superficie tiene un color de 1 bits indizado. |
DDPF_PALETTEINDEXED2 | La superficie tiene un color de 2 bits indizado. |
DDPF_PALETTEINDEXED4 | La superficie tiene un color de 4 bits indizado. |
DDPF_PALETTEINDEXED8 | La superficie tiene un color de 8 bits indizado. |
DDPF_PALETTEINDEXEDTO8 | La superficie tiene un color de 1, 2 o 4 bits indexado a una paleta de 8 bits. |
DDPF_RGB | Los datos RGB de la estructura de formato de píxeles son válidos. |
DDPF_RGBTOYUV | La superficie acepta datos RGB y los traduce durante la operación de escritura en datos YUV. El formato de los datos que se van a escribir se encuentra en la estructura de formato de píxel. Se establece la marca DDPF_RGB. |
DDPF_STENCILBUFFER | La superficie contiene información de galería de símbolos junto con la información Z. |
DDPF_YUV | Los datos YUV de la estructura de formato de píxeles son válidos. |
DDPF_ZBUFFER | El formato de píxel describe una superficie de solo búfer z. |
DDPF_ZPIXELS | La superficie está en formato RGBZ. |
dwFormatFourCC
Especifica el código de
dwFormatBitCount
Especifica el número de bits por píxel (4, 8, 16, 24 o 32) de los datos RGB o YUV.
dwRBitMask
Especifica la máscara para bits rojos.
dwYBitMask
Especifica la máscara para bits Y.
dwGBitMask
Especifica la máscara para bits verdes.
dwUBitMask
Especifica la máscara para bits U.
dwBBitMask
Especifica la máscara para bits azules.
dwVBitMask
Especifica la máscara para bits V.
Requisitos
Requisito | Valor |
---|---|
encabezado de |
ddkmapi.h (incluya Ddkmapi.h) |