estructura DD_SURFACE_GLOBAL (ddrawint.h)
La estructura DD_SURFACE_GLOBAL contiene datos globales relacionados con la superficie que se pueden compartir entre varias superficies.
Sintaxis
typedef struct _DD_SURFACE_GLOBAL {
union {
DWORD dwBlockSizeY;
LONG lSlicePitch;
};
union {
LPVIDEOMEMORY lpVidMemHeap;
DWORD dwBlockSizeX;
DWORD dwUserMemSize;
};
FLATPTR fpVidMem;
union {
LONG lPitch;
DWORD dwLinearSize;
};
LONG yHint;
LONG xHint;
DWORD wHeight;
DWORD wWidth;
ULONG_PTR dwReserved1;
DDPIXELFORMAT ddpfSurface;
FLATPTR fpHeapOffset;
HANDLE hCreatorProcess;
} *PDD_SURFACE_GLOBAL, DD_SURFACE_GLOBAL;
Miembros
dwBlockSizeY
Especifica la ubicación en la que el controlador devuelve el alto, en líneas de examen, del bloque de memoria fuera de la pantalla que Microsoft DirectDraw debe asignar. El controlador debe establecer este valor cuando devuelve DDHAL_PLEASEALLOC_BLOCKSIZE en el miembro fpVidMem .
lSlicePitch
Tono de segmento para texturas de volumen.
lpVidMemHeap
Apunta a una estructura VIDEOMEMORY desde la que se asignó la memoria de visualización del montón.
dwBlockSizeX
Especifica la ubicación en la que el controlador devuelve el tamaño en bytes del ancho del bloque de memoria fuera de pantalla que Debe asignar DirectDraw. El controlador debe establecer este valor cuando devuelve DDHAL_PLEASEALLOC_BLOCKSIZE en el miembro fpVidMem .
dwUserMemSize
Especifica la ubicación en la que el controlador devuelve el tamaño en bytes del bloque de memoria que DirectDraw debe asignar en la memoria del sistema en modo de usuario. El controlador debe establecer este valor cuando devuelve DDHAL_PLEASEALLOC_USERMEM en el miembro fpVidMem .
fpVidMem
Si el controlador asigna el bloque de memoria, debe devolver el desplazamiento en la memoria para mostrar en este miembro. Si el controlador solicita a DirectDraw que realice la asignación de memoria, puede devolver uno de los siguientes valores en este miembro de su rutina DdCreateSurface :
Valor | Significado |
---|---|
DDHAL_PLEASEALLOC_BLOCKSIZE | DirectDraw debe asignar un bloque de memoria de tamaño dwBlockSizeX y dwBlockSizeY en memoria fuera de la pantalla. |
DDHAL_PLEASEALLOC_USERMEM | DirectDraw debe asignar un bloque de memoria de tamaño dwUserMemSize en la memoria en modo de usuario. |
lPitch
Especifica el tono de la superficie; es decir, la distancia en bytes al inicio de la siguiente línea. Esto también se conoce como el paso de la superficie.
dwLinearSize
Especifica el tamaño lineal en bytes de una superficie norectangular.
yHint
Especifica la coordenada y de la superficie. Este miembro es una coordenada cartesiana 2D especificada en el espacio del dispositivo.
xHint
Especifica la coordenada x de la superficie. Este miembro es una coordenada cartesiana 2D especificada en el espacio del dispositivo.
wHeight
Especifica el alto en píxeles de la superficie.
wWidth
Especifica el ancho en píxeles de la superficie.
dwReserved1
Reservado para su uso por el controlador de pantalla.
ddpfSurface
Apunta a la estructura DDPIXELFORMAT que describe el formato de píxel de la superficie.
fpHeapOffset
Apunta al desplazamiento sin procesar en el montón de origen.
hCreatorProcess
Reservado para uso del sistema y debe omitirlo el controlador.
Comentarios
Un búfer de vértices, creado por CreateD3DBuffer, contiene una lista de vértices usados por la devolución de llamada D3dDrawPrimitives2 para representar primitivos. Microsoft Windows representa los búferes de vértices como superficies de DirectDraw, estableciendo así una conexión entre los búferes de vértices y la estructura DD_SURFACE_GLOBAL.
Cuando un controlador directX está trabajando con un búfer de vértices, es importante que pueda determinar correctamente el tamaño de este búfer. DirectDraw pasa el tamaño del búfer lineal al controlador en el miembro lPitch de esta estructura. En Windows 2000 y versiones posteriores, pero no en Windows 98/Me, el miembro wWidth de esta estructura se establece en el mismo valor. Tenga en cuenta que ambos miembros de estructura deben considerarse de solo lectura. El valor que DirectDraw coloca en estos miembros representa el tamaño mínimo del búfer de vértices. Si surge la necesidad de un búfer mayor (por ejemplo, para la optimización), un escritor de controladores puede crear un búfer mayor que ese tamaño. Sin embargo, en ninguna circunstancia, el controlador debe notificar el tamaño de búfer mayor a DirectDraw.
Requisitos
Encabezado | ddrawint.h (incluya Winddi.h) |