estructura DD_LOCKDATA (ddrawint.h)
La estructura DD_LOCKDATA contiene información necesaria para realizar un bloqueo según lo definido por las estructuras de parámetros de Microsoft DirectDraw.
Sintaxis
typedef struct _DD_LOCKDATA {
PDD_DIRECTDRAW_GLOBAL lpDD;
PDD_SURFACE_LOCAL lpDDSurface;
DWORD bHasRect;
RECTL rArea;
LPVOID lpSurfData;
HRESULT ddRVal;
VOID *Lock;
DWORD dwFlags;
FLATPTR fpProcess;
} *PDD_LOCKDATA, DD_LOCKDATA;
Miembros
lpDD
Apunta a una estructura de DD_DIRECTDRAW_GLOBAL que describe el dispositivo del controlador.
lpDDSurface
Apunta a una estructura de DD_SURFACE_LOCAL que describe la superficie, en el caso de LockD3DBuffer, un búfer asociado a la región de memoria que se va a bloquear.
bHasRect
Especifica si el área de rArea es válida. Un valor de 0x00000001 indica un área válida, 0x00000000 indica un área no válida.
rArea
Especifica una estructura RECTL que define el área de la superficie que se va a bloquear.
lpSurfData
Especifica la ubicación en la que el controlador puede devolver un puntero a la región de memoria bloqueada.
ddRVal
Especifica la ubicación en la que el controlador escribe el valor devuelto de la devolución de llamada DdLock o LockD3DBuffer . Un código de retorno de DD_OK indica que se ha realizado correctamente. Para obtener más información, consulte Valores devueltos para DirectDraw.
Lock
Usado por la API de DirectDraw y el controlador no debe rellenarlo.
dwFlags
Especifica una máscara de bits que indica al controlador cómo realizar el bloqueo de memoria. Este miembro es un OR bit a bit de cualquiera de los siguientes valores:
Marca | Significado |
---|---|
DDLOCK_DISCARDCONTENTS |
Esta marca es una sugerencia para el controlador que puede omitir el proceso de desordenamiento, ya que la aplicación planea sobrescribir cada píxel único en la superficie o rectángulo bloqueado (y, por lo tanto, borrar los píxeles sin ordenar de todos modos). Las aplicaciones siempre deben establecer esta marca cuando piensan sobrescribir toda la superficie o rectángulo bloqueado. |
DDLOCK_DONOTWAIT | En IDirectDrawSurface7 y las interfaces posteriores, el valor predeterminado es DDLOCK_WAIT. Si desea invalidar el valor predeterminado y usar la hora en que el acelerador está ocupado (como se indica en el código de retorno de DDERR_WASSTILLDRAWING), use esta marca. |
DDLOCK_EVENT | Establezca si se pasa un identificador de eventos a Lock, que desencadena el evento cuando puede devolver el puntero de memoria de superficie solicitado. |
DDLOCK_HASVOLUMETEXTUREBOXRECT | El controlador debe devolver un puntero de memoria válido al principio de la textura de subvolume especificada en el rectángulo (RECTL) en rArea. El controlador obtiene las coordenadas delantera y trasera de la subvolume de los 16 bits superiores de las coordenadas izquierda y derecha (miembros izquierdo y derecho de RECTL), respectivamente. Las coordenadas izquierda y derecha están restringidas a los 16 bits inferiores. Si no se especifica ningún rectángulo, el controlador debe devolver un puntero a la parte superior del volumen entero. Este valor está disponible en DirectX 8.1 y versiones posteriores. |
DDLOCK_NODIRTYUPDATE |
|
DDLOCK_NOOVERWRITE | Solo se usa con bloqueos de búfer de vértices de Direct3D. Indica que no se hace referencia a vértices a los que se hace referencia en las llamadas IDirect3DDevice7::D rawPrimitiveVB e IDirect3DDevice7::D rawIndexedPrimitiveVB (descritas en la documentación del SDK de Direct3D) desde el inicio del fotograma (o el último bloqueo sin esta marca) se modifican durante el bloqueo. Esto puede ser útil cuando solo se anexan datos al búfer de vértices. |
DDLOCK_NOSYSLOCK |
|
DDLOCK_OKTOSWAP | Igual que DDLOCK_DISCARDCONTENTS. |
DDLOCK_READONLY | La superficie que se bloquea solo se leerá. En Windows 2000 y versiones posteriores, esta marca nunca se establece. |
DDLOCK_SURFACEMEMORYPTR | El controlador debe devolver un puntero de memoria válido a la parte superior del rectángulo especificado en rArea. Si no se especifica ningún rectángulo, el controlador debe devolver un puntero a la parte superior de la superficie. |
DDLOCK_WAIT | Se establece para indicar que Lock debe esperar hasta que pueda obtener un puntero de memoria válido antes de devolverlo. Si se establece este bit, Lock nunca devuelve DDERR_WASSTILLDRAWING. |
DDLOCK_WRITEONLY | La superficie en la que se bloquea solo se escribirá. En Windows 2000 y versiones posteriores, esta marca nunca se establece. |
fpProcess
Especifica un puntero a una asignación en modo de usuario de la memoria del controlador. El controlador realiza esta asignación en DdMapMemory. Solo Windows 2000 y versiones posteriores.
Requisitos
Encabezado | ddrawint.h (incluya Winddi.h) |