Compartilhar via


estrutura DD_SURFACE_GLOBAL (ddrawint.h)

A estrutura DD_SURFACE_GLOBAL contém dados globais relacionados à superfície que podem ser compartilhados entre várias superfícies.

Sintaxe

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;

Membros

dwBlockSizeY

Especifica o local no qual o driver retorna a altura, em linhas de verificação, do bloco de memória fora da tela que o Microsoft DirectDraw deve alocar. O driver deve definir esse valor quando retornar DDHAL_PLEASEALLOC_BLOCKSIZE no membro fpVidMem .

lSlicePitch

Inclinação de fatia para texturas de volume.

lpVidMemHeap

Aponta para uma estrutura VIDEOMEMORY da qual a memória de exibição de heap foi alocada.

dwBlockSizeX

Especifica o local em que o driver retorna o tamanho em bytes da largura do bloco de memória fora da tela que o DirectDraw deve alocar. O driver deve definir esse valor quando retornar DDHAL_PLEASEALLOC_BLOCKSIZE no membro fpVidMem .

dwUserMemSize

Especifica o local no qual o driver retorna o tamanho em bytes do bloco de memória que o DirectDraw deve alocar na memória do sistema no modo de usuário. O driver deve definir esse valor quando retornar DDHAL_PLEASEALLOC_USERMEM no membro fpVidMem .

fpVidMem

Se o driver alocar o bloco de memória, ele deverá retornar o deslocamento para a memória de exibição nesse membro. Se o driver solicitar que o DirectDraw faça a alocação de memória, ele poderá retornar um dos seguintes valores nesse membro de sua rotina DdCreateSurface :

Valor Significado
DDHAL_PLEASEALLOC_BLOCKSIZE O DirectDraw deve alocar um bloco de memória de tamanho dwBlockSizeX e dwBlockSizeY na memória offscreen.
DDHAL_PLEASEALLOC_USERMEM O DirectDraw deve alocar um bloco de memória de tamanho dwUserMemSize na memória do modo de usuário.

lPitch

Especifica a inclinação da superfície; ou seja, a distância em bytes até o início da próxima linha. Isso também é conhecido como o passo da superfície.

dwLinearSize

Especifica o tamanho linear em bytes de uma superfície não retangular.

yHint

Especifica a coordenada y da superfície. Esse membro é uma coordenada cartesiana 2D especificada no espaço do dispositivo.

xHint

Especifica a coordenada x da superfície. Esse membro é uma coordenada cartesiana 2D especificada no espaço do dispositivo.

wHeight

Especifica a altura em pixels da superfície.

wWidth

Especifica a largura em pixels da superfície.

dwReserved1

Reservado para uso pelo driver de exibição.

ddpfSurface

Aponta para a estrutura DDPIXELFORMAT que descreve o formato de pixel da superfície.

fpHeapOffset

Aponta para o deslocamento bruto no heap de origem.

hCreatorProcess

Reservado para uso do sistema e deve ser ignorado pelo driver.

Comentários

Um buffer de vértice, criado por CreateD3DBuffer, contém uma lista de vértices usados pelo retorno de chamada D3dDrawPrimitives2 para renderizar primitivos. O Microsoft Windows representa buffers de vértice como superfícies DirectDraw, estabelecendo assim uma conexão entre buffers de vértice e a estrutura DD_SURFACE_GLOBAL.

Quando um driver DirectX está trabalhando com um buffer de vértice, é importante que ele possa determinar corretamente o tamanho desse buffer. O DirectDraw passa o tamanho do buffer linear para o driver no membro lPitch dessa estrutura. No Windows 2000 e versões posteriores, mas não no Windows 98/Me, o membro wWidth dessa estrutura é definido com o mesmo valor. Observe que ambos os membros da estrutura devem ser considerados somente leitura. O valor que o DirectDraw coloca nesses membros representa o tamanho mínimo do buffer de vértice. Se a necessidade de um buffer maior surgir (como para otimização), um gravador de driver será livre para criar um buffer maior que esse tamanho. Em nenhuma circunstância, no entanto, o driver deve relatar o tamanho do buffer maior para DirectDraw.

Requisitos

   
Cabeçalho ddrawint.h (inclua Winddi.h)

Confira também

CreateD3DBuffer

D3dDrawPrimitives2

DDPIXELFORMAT

DdCreateSurface

VIDEOMEMORY