структура DD_D3DBUFCALLBACKS (ddrawint.h)

Структура DD_D3DBUFCALLBACKS используется только драйверами, реализующими выделение уровня драйвера для буферов команд и вершин.

Синтаксис

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;

Члены

dwSize

Задает размер в байтах этой структуры DD_D3DBUFCALLBACKS.

dwFlags

Зарезервировано.

CanCreateD3DBuffer

Указывает на обратный вызов CanCreateD3DBuffer драйвера.

CreateD3DBuffer

Указывает на обратный вызов CreateD3DBuffer драйвера.

DestroyD3DBuffer

Указывает на обратный вызов DestroyD3DBuffer драйвера.

LockD3DBuffer

Указывает на обратный вызов LockD3DBuffer драйвера.

UnlockD3DBuffer

Указывает на обратный вызов UnlockD3DBuffer драйвера.

Комментарии

Драйверы, управляющие собственными буферами команд и вершин, должны заполнить структуру DD_D3DBUFCALLBACKS и указать элемент DD_HALINFO lpD3DBufCallbacks.

Драйвер также должен поддерживать функции обратного вызова, сообщаемые в структуре DD_D3DBUFCALLBACKS. Эти обратные вызовы XxxD3DBuffer аналогичны обратному вызову DdXxxSurface аналогичного имени; они имеют одинаковые прототипы и вызываются с одинаковыми входными параметрами. Эти новые обратные вызовы вызываются только в том случае, если в заданной поверхности установлен флаг DDSCAPS_EXECUTEBUFFER в крышках поверхности. Флаги создания буфера — это DDSCAPS_WRITEONLY, DDSCAPS2_VERTEXBUFFER и DDSCAPS2_COMMANDBUFFER.

Драйвер определяет тип запрашиваемого буфера, проверив элемент ddsCaps структуры DD_SURFACE_LOCAL , передаваемой в CanCreateD3DBuffer и CreateD3DBuffer , для следующих флагов:

  • DDSCAPS_VERTEXBUFFER

    Указывает, что драйвер должен выделить явный буфер вершин.

  • DDSCAPS_COMMANDBUFFER

    Указывает, что драйвер должен выделить буфер команд.

  • Отсутствие обоих этих флагов

    Указывает, что драйвер должен выделить неявный буфер вершин.

Неявные буферы вершин не должны помещаться в память видео, так как они должны быть считываются и записываются. В память видео можно безопасно поместить только явные буферы вершин с набором флагов DDSCAPS_WRITEONLY.

Требования

   
Верхняя часть ddrawint.h (включая Winddi.h)

См. также раздел

CanCreateD3DBuffer

CreateD3DBuffer

DD_HALINFO

DD_SURFACE_LOCAL

DestroyD3DBuffer

LockD3DBuffer

UnlockD3DBuffer