Compartir a través de


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)

Consulte también

CreateD3DBuffer

D3dDrawPrimitives2

DDPIXELFORMAT

DdCreateSurface

VIDEOMEMORY