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

指定驱动程序写入 DdCanCreateSurfaceCanCreateD3DBuffer 回调的返回值的位置。 返回代码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)

另请参阅

CanCreateD3DBuffer

DdCanCreateSurface