структура 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 и указывать на нее член lpD3DBufCallbacksDD_HALINFO .
Драйвер также должен поддерживать функции обратного вызова, указанные в структуре DD_D3DBUFCALLBACKS. Эти обратные вызовы XxxD3DBuffer аналогичны обратному вызову DdXxxSurface с аналогичным именем; Они имеют одинаковые прототипы и вызываются с теми же входными параметрами. Эти новые обратные вызовы вызываются только в том случае, если в крышках surface задан флаг DDSCAPS_EXECUTEBUFFER. Флаги создания буфера: DDSCAPS_WRITEONLY, DDSCAPS2_VERTEXBUFFER и DDSCAPS2_COMMANDBUFFER.
Драйвер определяет тип запрашиваемого буфера, проверяя член ddsCapsструктуры DD_SURFACE_LOCAL , передаваемой в CanCreateD3DBuffer и CreateD3DBuffer , на наличие следующих флагов:
-
DDSCAPS_VERTEXBUFFER
Указывает, что драйвер должен выделить явный буфер вершин.
-
DDSCAPS_COMMANDBUFFER
Указывает, что драйвер должен выделить буфер команд.
-
Отсутствие обоих этих флагов
Указывает, что драйвер должен выделить неявный буфер вершин.
Требования
Верхняя часть | ddrawint.h (включая Winddi.h) |