Compartilhar via


estrutura DD_D3DBUFCALLBACKS (ddrawint.h)

A estrutura DD_D3DBUFCALLBACKS é usada apenas por drivers que implementam a alocação no nível do driver de buffers de comando e vértice.

Sintaxe

typedef struct _DD_D3DBUFCALLBACKS {
  DWORD                     dwSize;
  DWORD                     dwFlags;
  PDD_CANCREATESURFACE      CanCreateD3DBuffer;
  PDD_CREATESURFACE         CreateD3DBuffer;
  PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
  PDD_SURFCB_LOCK           LockD3DBuffer;
  PDD_SURFCB_UNLOCK         UnlockD3DBuffer;
} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;

Membros

dwSize

Especifica o tamanho em bytes dessa estrutura DD_D3DBUFCALLBACKS.

dwFlags

Reservado.

CanCreateD3DBuffer

Aponta para o retorno de chamada CanCreateD3DBuffer do driver.

CreateD3DBuffer

Aponta para o retorno de chamada CreateD3DBuffer do driver.

DestroyD3DBuffer

Aponta para o retorno de chamada DestroyD3DBuffer do driver.

LockD3DBuffer

Aponta para o retorno de chamada lockD3DBuffer do driver.

UnlockD3DBuffer

Aponta para o retorno de chamada unlockD3DBuffer do driver.

Comentários

Os drivers que gerenciam seus próprios buffers de comando e vértice devem preencher uma estrutura DD_D3DBUFCALLBACKS e apontar o membro lpD3DBufCallbacks de DD_HALINFO para ele.

O driver também deve dar suporte às funções de retorno de chamada relatadas na estrutura DD_D3DBUFCALLBACKS. Esses retornos de chamada xxxD3DBuffer são análogos ao retorno de chamada DdXxxSurface de nome semelhante; eles têm os mesmos protótipos e são chamados com os mesmos parâmetros de entrada. Esses novos retornos de chamada são chamados somente quando a superfície em questão tem o sinalizador DDSCAPS_EXECUTEBUFFER definido nas tampas da superfície. Os sinalizadores de criação de buffer são DDSCAPS_WRITEONLY, DDSCAPS2_VERTEXBUFFER e DDSCAPS2_COMMANDBUFFER.

O driver determina o tipo de buffer que está sendo solicitado verificando o membro ddsCaps da estrutura DD_SURFACE_LOCAL que é passada para CanCreateD3DBuffer e CreateD3DBuffer para os seguintes sinalizadores:

  • DDSCAPS_VERTEXBUFFER

    Indica que o driver deve alocar um buffer de vértice explícito.

  • DDSCAPS_COMMANDBUFFER

    Indica que o driver deve alocar um buffer de comando.

  • A ausência desses dois sinalizadores

    Indica que o driver deve alocar um buffer de vértice implícito.

Buffers de vértice implícitos não devem ser colocados na memória de vídeo porque eles devem ser de leitura/gravação. Somente buffers de vértice explícitos com o sinalizador DDSCAPS_WRITEONLY definido podem ser colocados com segurança na memória de vídeo.

Requisitos

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

Confira também

CanCreateD3DBuffer

CreateD3DBuffer

DD_HALINFO

DD_SURFACE_LOCAL

DestroyD3DBuffer

LockD3DBuffer

UnlockD3DBuffer