Direct3D를 지원하는 드라이버 함수

Direct3D를 지원하는 드라이버는 Direct3D 콜백 함수와 DirectDraw DDI 함수를 모두 제공합니다. Direct3D DDI 콜백은 다음과 같이 프로토타입화됩니다.

typedef DWORD (APIENTRY *LPD3DHAL_MYFUNCTIONCB) (LPD3DHAL_MYFUNCTIONDATA);

이전 구문에서 다음을 수행합니다.

  • LPD3DHAL_MYFUNCTIONCB MyFunction이라고 할 수 있는 드라이버 구현 콜백을 가리킵니다. 모든 콜백 이름은 디스플레이 드라이버 작성기에서 결정한 가명입니다.

  • LPD3DHAL_MYFUNCTIONDATA 콜백에 전달되는 D3DHAL_MYFUNCTIONDATA 구조체에 대한 포인터입니다. 콜백 매개 변수 구조는 다음과 같은 특징이 있습니다.

    • 모든 구조체의 첫 번째 멤버인 dwhContext는 콜백이 작동해야 하는 3D 컨텍스트를 설명하는 컨텍스트 핸들입니다. 이 규칙의 유일한 예외는 D3DHAL_CONTEXTCREATEDATA 구조체입니다.
    • 모든 구조체의 마지막 멤버는 ddrval입니다. 이 멤버는 호출 애플리케이션에 반환될 수 있도록 콜백의 반환 값을 Direct3D로 다시 전달하는 데 사용됩니다.

Direct3D 콜백 함수를 초기화하는 방법을 확인하려면 Direct3D 드라이버 초기화를 참조하세요.

다음 표에서는 Direct3D 드라이버에서 구현되는 Direct3D 콜백 함수를 나열합니다. 하드웨어 기능에 따라 선택 사항인 D3dValidateTextureStageState를 제외한 모든 콜백 함수가 필요합니다.

함수 Description

D3dContext만들기

컨텍스트를 만듭니다.

D3dContextDestroy

컨텍스트를 삭제합니다.

D3dCreateSurfaceEx

텍스처 핸들과 표면 간의 연결을 만듭니다.

D3dDestroyDDLocal

동일한 지정된 로컬 DirectDraw 개체에 속하는 D3dCreateSurfaceEx 에서 이전에 만든 모든 Direct3D 표면을 삭제합니다.

D3dDrawPrimitives2

기본 형식을 렌더링하고 업데이트된 상태를 Direct3D로 반환합니다.

D3dGetDriverState

드라이버에 대한 상태 정보를 DirectDraw 및 Direct3D 런타임에 반환합니다.

D3dValidateTextureStageState

텍스처 텍스처를 지원하는 모든 드라이버에 필요한 텍스처 스테이지 상태 유효성 검사를 수행합니다.

Direct3D를 지원하려면 드라이버가 Microsoft DirectDraw를 최소한으로 지원해야 하며 특정 DirectDraw DDI 함수도 구현해야 합니다. Direct3D 지원과 관련된 함수는 다음 표에 나와 있습니다.

함수 Description

DrvGetDirectDrawInfo

이 함수는 그래픽 하드웨어의 기능을 검색합니다. 이 초기화 함수에서 드라이버는 Direct3D를 지원한다는 것을 나타냅니다.

DdGetDriverInfo

런타임은 드라이버에 대한 추가 정보를 위해 GUID를 사용하여 이 콜백 함수를 쿼리합니다. 여러 GUID는 특히 드라이버의 Direct3D 지원과 관련이 있습니다.

DirectDraw 함수 및 콜백 구현 세부 정보는 DirectDraw에서 설명합니다.