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_HALINFOlpD3DBufCallbacks 成员指向该结构。

驱动程序还必须支持DD_D3DBUFCALLBACKS结构中报告的回调函数。 这些 XxxD3DBuffer 回调都类似于名称类似的 DdXxxSurface 回调;它们具有相同的原型,并使用相同的输入参数进行调用。 仅当有问题的图面在图面大写中设置了DDSCAPS_EXECUTEBUFFER标志时,才会调用这些新回调。 缓冲区创建标志DDSCAPS_WRITEONLY、DDSCAPS2_VERTEXBUFFER和DDSCAPS2_COMMANDBUFFER。

驱动程序通过检查传递给 CanCreateD3DBuffer 和 CreateD3DBuffer的 DD_SURFACE_LOCAL 结构的 ddsCaps 成员来确定请求的缓冲区类型,以获取以下标志:

  • DDSCAPS_VERTEXBUFFER

    指示驱动程序应分配显式顶点缓冲区。

  • DDSCAPS_COMMANDBUFFER

    指示驱动程序应分配命令缓冲区。

  • 缺少这两个标志

    指示驱动程序应分配隐式顶点缓冲区。

不应将隐式顶点缓冲区放置在视频内存中,因为它们应是可读/写的。 只有设置了DDSCAPS_WRITEONLY标志的显式顶点缓冲区才能安全地放置在视频内存中。

要求

   
标头 ddrawint.h (包括 Winddi.h)

另请参阅

CanCreateD3DBuffer

CreateD3DBuffer

DD_HALINFO

DD_SURFACE_LOCAL

DestroyD3DBuffer

LockD3DBuffer

UnlockD3DBuffer