DD_CANCREATESURFACEDATA 结构 (ddrawint.h)
DD_CANCREATESURFACEDATA结构包含指示是否可以创建图面(在 CanCreateD3DBuffer 的情况下为缓冲区)所必需的信息。
语法
typedef struct _DD_CANCREATESURFACEDATA {
PDD_DIRECTDRAW_GLOBAL lpDD;
PDD_SURFACEDESC lpDDSurfaceDesc;
DWORD bIsDifferentPixelFormat;
HRESULT ddRVal;
VOID *CanCreateSurface;
} *PDD_CANCREATESURFACEDATA, DD_CANCREATESURFACEDATA;
成员
lpDD
指向描述驱动程序设备的 DD_DIRECTDRAW_GLOBAL 结构。
lpDDSurfaceDesc
指向包含要创建的图面或缓冲区的说明的 DDSURFACEDESC 结构。 有关此成员的其他信息,请参阅“备注”部分。
bIsDifferentPixelFormat
指示要创建的图面的像素格式是否与主图面的像素格式不同。 对于 CanCreateD3DBuffer D3DBuffer 回调,此成员始终设置为 FALSE ,因为驱动程序正在尝试创建包含顶点数据或命令的缓冲区,而不是像素数据。
ddRVal
指定驱动程序写入 DdCanCreateSurface 或 CanCreateD3DBuffer 回调的返回值的位置。 返回代码DD_OK表示成功。 有关详细信息,请参阅 DirectDraw 的返回值。
CanCreateSurface
由 Microsoft DirectDraw API 使用,驱动程序不应填充。
注解
lpDDSurfaceDesc 成员指向的 DirectDraw 图面说明实际上是 (DDSURFACEDESC2结构,而不是 DirectDraw 6.0 及更高版本运行时) 的 DDSURFACEDESC 结构。 因此,如果在创建图面时需要来自DDSURFACEDESC2结构中而不是 DDSURFACEDESC 结构中的成员的信息,则可以在使用前将指向 DDSURFACEDESC 结构的指针转换为指向DDSURFACEDESC2结构的指针。 以下示例演示 dwTextureStage 的值如何 (DDSURFACEDESC2 结构的成员,但不能从指向 DDSURFACEDESC 结构的指针获取 DDSURFACEDESC 结构) 。
DDSURFACEDESC2* pddsd = (DDSURFACEDESC2*)pccsd->lpDDSurfaceDesc;
DWORD dwStage = pddsd->dwTextureStage;
要求
要求 | 值 |
---|---|
Header | ddrawint.h (包括 Winddi.h) |