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) |