다음을 통해 공유


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