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 para DD_DXAPI_LOCK operaciones. Un código de retorno de DD_OK indica que se ha realizado correctamente.
dwSurfHeight
dwSurfWidth
Especifique las dimensiones de la superficie, en píxeles.
lSurfPitch
Especifica la distancia, en bytes, al inicio de la siguiente línea.
lpSurface
Apunta a la memoria expuesta.
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:
Marca | 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 la 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, esta funcionalidad se establece mediante el método CreateSurface de la aplicación cuando se usa la marca DDSCAPS_FLIP. Solo la superficie que precede inmediatamente a la superficie DDSCAPS_FRONTBUFFER tiene esta funcionalidad establecida. Las demás superficies se identifican como búferes de reserva por la presencia de la marca de 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 reserva 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 mediante la destrucción de la raíz. |
DDSCAPS_FLIP | Esta superficie forma parte de una estructura de volteo de superficie. Cuando esta funcionalidad se pasa al método CreateSurface de la aplicación, se crean un búfer frontal y uno o varios búferes de reserva. DirectDraw establece el bit de DDSCAPS_FRONTBUFFER en la superficie del búfer frontal y el bit de DDSCAPS_BACKBUFFER en la superficie adyacente a la superficie del búfer frontal. El miembro dwBackBufferCount de la estructura DDSURFACEDESC debe establecerse en al menos 1 para que la llamada al método se realice correctamente. La funcionalidad DDSCAPS_COMPLEX siempre debe establecerse al crear varias superficies mediante el método CreateSurface . |
DDSCAPS_FRONTBUFFER | Esta superficie es el búfer frontal de una estructura de volteo de superficie. Normalmente, este indicador se establece mediante el método CreateSurface 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 atrás para formar una estructura de volteo mediante el método AddAttachedSurface de la aplicación. |
DDSCAPS_HWCODEC | Esta superficie debe ser capaz de tener una secuencia descomprimida por el hardware. |
DDSCAPS_LIVEVIDEO | Esta superficie debe ser capaz de recibir vídeo en directo. |
DDSCAPS_LOCALVIDMEM | Esta superficie existe en true, memoria de visualizació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 conectará 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 320 x 200 o 320 x 240. |
DDSCAPS_NONLOCALVIDMEM | Esta superficie existe en la memoria de visualización no local en lugar de en la memoria de visualización local verdadera. Si se especifica esta marca, también se debe especificar 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 | No implementado actualmente. |
DDSCAPS_OVERLAY | Esta superficie es una superposición. Puede ser o no visible directamente 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 conectar 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 primaria 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 expuesta se asignó en memoria del sistema. |
DDSCAPS_TEXTURE | Esta superficie se puede usar como textura 3D. No indica si la superficie se está usando para ese propósito. |
DDSCAPS_VIDEOMEMORY | Esta superficie existe en la memoria de presentación. |
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 leídos 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:
Marca | 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 de las superficies de mapa de rectángulos; La máscara de bits de la parte de la luminancia del píxel se indica a continuación mediante el miembro dwBumpLuminanceBitCount 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 las superficies alfa; A continuación, la profundidad de bits se indica mediante el miembro dwLuminanceBitCount 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 índice de color de 8 bits. |
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 de Z. |
DDPF_YUV | Los datos de YUV en 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 FOURCC . Para obtener más información sobre los códigos FOURCC, consulte la documentación del SDK de DirectX.
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 los bits V.
Requisitos
Requisito | Valor |
---|---|
Header | ddkmapi.h (incluya Ddkmapi.h) |