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。
驱动程序通过检查传递给 CanCreateD3DBuffer 和 CreateD3DBuffer的 DD_SURFACE_LOCAL 结构的 ddsCaps 成员来确定请求的缓冲区类型,以获取以下标志:
-
DDSCAPS_VERTEXBUFFER
指示驱动程序应分配显式顶点缓冲区。
-
DDSCAPS_COMMANDBUFFER
指示驱动程序应分配命令缓冲区。
-
缺少这两个标志
指示驱动程序应分配隐式顶点缓冲区。
要求
标头 | ddrawint.h (包括 Winddi.h) |