다음을 통해 공유


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 표면 설명은 실제로 DirectDraw 6.0 이상 런타임에 대한 DDSURFACEDESC 구조가 아닌 DDSURFACEDESC2 구조체입니다. 따라서 표면 생성 시 DDSURFACEDESC2 구조체에 있지만 DDSURFACEDESC 구조에 없는 멤버의 정보가 필요한 경우 사용하기 전에 DDSURFACEDESC 구조체에 대한 포인터로 포인터를 캐스팅하기만 하면 DDSURFACEDESC2 됩니다. 다음 예제에서는 DDSURFACEDESC 구조체에 대한 포인터에서 dwTextureStage (DDSURFACEDESC2 구조체의 멤버이지만 DDSURFACEDESC 구조체의 멤버)를 가져오는 방법을 보여 줍니다.

DDSURFACEDESC2* pddsd = (DDSURFACEDESC2*)pccsd->lpDDSurfaceDesc;
DWORD dwStage = pddsd->dwTextureStage;

요구 사항

요구 사항
헤더 ddrawint.h(Winddi.h 포함)

추가 정보

CanCreateD3DBuffer

DdCanCreateSurface