PDD_CANCREATESURFACE回调函数 (ddrawint.h)
CanCreateD3DBuffer 回调函数确定驱动程序是否可以创建指定说明的驱动程序级命令或顶点缓冲区。
语法
PDD_CANCREATESURFACE PddCancreatesurface;
DWORD PddCancreatesurface(
PDD_CANCREATESURFACEDATA unnamedParam1
)
{...}
参数
unnamedParam1
指向 DD_CANCREATESURFACEDATA 结构。 此结构包含驱动程序确定是否可以创建命令或顶点缓冲区所需的信息。
返回值
CanCreateD3DBuffer 返回回调代码。
注解
仅当驱动程序管理驱动程序级命令和顶点缓冲区时,才使用此回调。
CanCreateD3DBuffer 应检查 lpCanCreateD3DBuffer 处DD_CANCREATESURFACEDATA结构的 lpDDSurfaceDesc 成员指向的图面说明,以确定驱动程序是否可以为驱动程序当前处于的模式支持所请求缓冲区的格式和功能。 如果驱动程序支持该类型的缓冲区,驱动程序应返回同一结构的 ddRVal 成员中的DD_OK。 否则,它应返回最能描述不支持缓冲区的原因的 DDERR_Xxx 错误代码。
此调用的原型与 DdCanCreateSurface 相同。 但是,当所讨论的图面在 DD_SURFACE_LOCAL 结构的ddsCaps 成员中设置了 DDSCAPS_EXECUTEBUFFER 标志时,将使用 CanCreateD3DBuffer 回调。
驱动程序通过检查以下标志的 DD_SURFACE_LOCAL 结构的 ddsCaps 成员来确定请求的缓冲区类型:
标志 | 含义 |
---|---|
DDSCAPS2_COMMANDBUFFER | 驱动程序应分配命令缓冲区。 |
DDSCAPS2_VERTEXBUFFER | 驱动程序应分配显式顶点缓冲区。 |
注意 如果两个标志均未设置,驱动程序应分配隐式顶点缓冲区。 不应将隐式顶点缓冲区放置在视频内存中,因为它们应是可读/写的。 只有设置了DDSCAPS_WRITEONLY标志的显式顶点缓冲区才能安全地放置在视频内存中。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | ddrawint.h (包括 Winddi.h) |