PDD_CREATESURFACE 콜백 함수(ddrawint.h)
CreateD3DBuffer 콜백 함수는 지정된 설명의 드라이버 수준 명령 또는 꼭짓점 버퍼를 만드는 데 사용됩니다.
구문
PDD_CREATESURFACE PddCreatesurface;
DWORD PddCreatesurface(
PDD_CREATESURFACEDATA unnamedParam1
)
{...}
매개 변수
unnamedParam1
버퍼를 만드는 데 필요한 정보가 포함된 DD_CREATESURFACEDATA 구조를 가리킵니다.
반환 값
CreateD3DBuffer는 다음 콜백 코드 중 하나를 반환합니다.
설명
이 콜백은 드라이버가 드라이버 수준 명령 및 꼭짓점 버퍼를 관리하는 경우에만 사용됩니다.
기본적으로 기본 화면이 Windows 2000 이상 버전에서 만들어지면 드라이버에 알림이 표시되지 않습니다. 그러나 드라이버가 DdGetDriverInfo 호출에서 GUID_NTPrivateDriverCaps GUID를 지원하고 DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION 플래그가 DD_NTPRIVATEDRIVERCAPS 구조체의 dwPrivateCaps 멤버에 설정된 경우 드라이버에 알림이 표시됩니다.
피치는 DD_SURFACE_GLOBAL 구조체와 DDSURFACEDESC 구조체의 lPitch 멤버에서 반환되어야 합니다. 선형 메모리의 경우 드라이버는 dwBlockSizeX 를 메모리 영역의 크기(바이트)로 설정하고 dwBlockSizeY 를 1로 설정해야 합니다. 둘 다 DD_SURFACE_GLOBAL 구조체의 멤버입니다.
이 호출에는 DdCreateSurface와 동일한 프로토타입이 있습니다. CreateD3DBuffer 콜백은 문제의 표면에 DD_SURFACE_LOCAL 구조체의 ddsCaps 멤버에 설정된 DDSCAPS_EXECUTEBUFFER 플래그가 있는 경우 대신 사용됩니다. 버퍼 생성 플래그는 DDSCAPS_WRITEONLY, DDSCAPS2_VERTEXBUFFER 및 DDSCAPS2_COMMANDBUFFER.
드라이버는 다음 플래그에 대해 DD_SURFACE_LOCAL 구조체의 ddsCaps 멤버를 확인하여 요청되는 버퍼 유형을 결정합니다.
플래그 | 의미 |
---|---|
DDSCAPS2_COMMANDBUFFER | 드라이버는 명령 버퍼를 할당해야 합니다. |
DDSCAPS2_VERTEXBUFFER | 드라이버는 명시적 꼭짓점 버퍼를 할당해야 합니다. |
또는 드라이버는 fpVidMem에서 다음 값 중 하나를 반환하여 DirectDraw가 버퍼를 할당할 것을 요청할 수 있습니다.
값 | 의미 |
---|---|
DDHAL_PLEASEALLOC_BLOCKSIZE | DirectDraw는 오프스크린 메모리에서 버퍼 메모리를 할당해야 합니다. |
DDHAL_PLEASEALLOC_USERMEM | DirectDraw는 사용자 메모리에서 버퍼 메모리를 할당해야 합니다. 또한 드라이버는 dwUserMemSize의 메모리 영역 크기(바이트)를 반환해야 합니다. |
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | ddrawint.h(Winddi.h 포함) |