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)

另请参阅

CreateD3DBuffer

DD_CANCREATESURFACEDATA

DD_SURFACE_LOCAL

DdCanCreateSurface