DD_CANCREATESURFACEDATA 結構 (ddrawint.h)

DD_CANCREATESURFACEDATA 結構包含指出 Surface-- 在 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;

規格需求

需求
標頭 ddrawint.h (包括 Winddi.h)

另請參閱

CanCreateD3DBuffer

DdCanCreateSurface