다음을 통해 공유


DD_D3DBUFCALLBACKS 구조체(ddrawint.h)

DD_D3DBUFCALLBACKS 구조는 명령 및 꼭짓점 버퍼의 드라이버 수준 할당을 구현하는 드라이버에서만 사용됩니다.

구문

typedef struct _DD_D3DBUFCALLBACKS {
  DWORD                     dwSize;
  DWORD                     dwFlags;
  PDD_CANCREATESURFACE      CanCreateD3DBuffer;
  PDD_CREATESURFACE         CreateD3DBuffer;
  PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
  PDD_SURFCB_LOCK           LockD3DBuffer;
  PDD_SURFCB_UNLOCK         UnlockD3DBuffer;
} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;

멤버

dwSize

이 DD_D3DBUFCALLBACKS 구조체의 크기(바이트)를 지정합니다.

dwFlags

예약되어 있습니다.

CanCreateD3DBuffer

드라이버의 CanCreateD3DBuffer 콜백을 가리킵니다.

CreateD3DBuffer

드라이버의 CreateD3DBuffer 콜백을 가리킵니다.

DestroyD3DBuffer

드라이버의 DestroyD3DBuffer 콜백을 가리킵니다.

LockD3DBuffer

드라이버의 LockD3DBuffer 콜백을 가리킵니다.

UnlockD3DBuffer

드라이버의 UnlockD3DBuffer 콜백을 가리킵니다.

설명

자체 명령 및 꼭짓점 버퍼를 관리하는 드라이버는 DD_D3DBUFCALLBACKS 구조를 채우고 DD_HALINFOlpD3DBufCallbacks 멤버를 가리키도록 해야 합니다.

드라이버는 DD_D3DBUFCALLBACKS 구조에 보고된 콜백 함수도 지원해야 합니다. 이러한 XxxD3DBuffer 콜백은 각각 유사한 이름의 DdXxxSurface 콜백과 유사합니다. 동일한 프로토타입을 가지고 있으며 동일한 입력 매개 변수를 사용하여 호출됩니다. 이러한 새 콜백은 문제의 표면에 표면 대문자로 설정된 DDSCAPS_EXECUTEBUFFER 플래그가 있는 경우에만 호출됩니다. 버퍼 생성 플래그는 DDSCAPS_WRITEONLY, DDSCAPS2_VERTEXBUFFER 및 DDSCAPS2_COMMANDBUFFER.

드라이버는 다음 플래그에 대해 CanCreateD3DBuffer 및 CreateD3DBuffer에 전달되는 DD_SURFACE_LOCAL 구조체의 ddsCaps 멤버를 확인하여 요청되는 버 퍼 유형을 결정합니다.

  • DDSCAPS_VERTEXBUFFER

    드라이버가 명시적 꼭짓점 버퍼를 할당해야 했음을 나타냅니다.

  • DDSCAPS_COMMANDBUFFER

    드라이버가 명령 버퍼를 할당해야 했음을 나타냅니다.

  • 이 두 플래그가 모두 없는 경우

    드라이버가 암시적 꼭짓점 버퍼를 할당해야 했음을 나타냅니다.

암시적 꼭짓점 버퍼는 읽기/쓰기가 가능하므로 비디오 메모리에 배치해서는 안 됩니다. DDSCAPS_WRITEONLY 플래그가 설정된 명시적 꼭짓점 버퍼만 비디오 메모리에 안전하게 배치할 수 있습니다.

요구 사항

   
머리글 ddrawint.h(Winddi.h 포함)

추가 정보

CanCreateD3DBuffer

CreateD3DBuffer

DD_HALINFO

DD_SURFACE_LOCAL

DestroyD3DBuffer

LockD3DBuffer

UnlockD3DBuffer