LPD3DHAL_CONTEXTCREATECB 콜백 함수(d3dhal.h)

D3dContextCreate 함수는 컨텍스트를 만듭니다.

구문

LPD3DHAL_CONTEXTCREATECB Lpd3dhalContextcreatecb;

DWORD Lpd3dhalContextcreatecb(
  LPD3DHAL_CONTEXTCREATEDATA unnamedParam1
)
{...}

매개 변수

unnamedParam1

pccd [in]

컨텍스트를 만드는 데 필요한 정보와 드라이버가 새 컨텍스트에 저장해야 하는 데이터를 포함하는 D3DHAL_CONTEXTCREATEDATA 구조를 가리킵니다.

반환 값

D3dContextCreate 는 다음 콜백 코드 중 하나를 반환합니다.

설명

D3dContextCreate 는 Microsoft Direct3D를 지원하는 드라이버에서 구현해야 합니다. 다음 단계를 수행해야 합니다.

  • 드라이버가 렌더링을 수행하는 데 필요한 모든 정보를 사용하여 드라이버의 컨텍스트를 초기화합니다. 여기에는 pccd 지점의 D3DHAL_CONTEXTCREATEDATA 구조체의 lpDDSLcllpDDSZLcl 멤버가 각각 컨텍스트와 함께 렌더링 대상 및 깊이 버퍼를 연결합니다.
  • 이 새 컨텍스트에 대한 고유한 컨텍스트 ID를 생성하고 D3DHAL_CONTEXTCREATEDATA dwhContext 멤버에 반환합니다. Direct3D는 이 Direct3D 디바이스에 대한 모든 후속 콜백에서 이 컨텍스트 ID를 사용합니다. 드라이버는 0의 컨텍스트 핸들을 만들면 안 됩니다.
  • 성공 시 DD_OK 컨텍스트를 만들 수 없는 경우 D3DHAL_OUTOFCONTEXTS D3DHAL_CONTEXTCREATEDATA ddrval 멤버를 설정합니다.
  • DDHAL_DRIVER_HANDLED 반환합니다.
D3dContextCreateD3DHAL_CONTEXTCREATEDATAlpDDLcl 멤버로 전달된 DD_DIRECTDRAW_LOCAL 구조체에 대한 포인터를 캐시해서는 안 됩니다. 이후에 드라이버에 이 DD_DIRECTDRAW_LOCAL 포인터를 통해 액세스되는 정보가 필요한 경우 드라이버는 드라이버의 프라이빗 컨텍스트 데이터 구조에 정보를 저장해야 합니다.

상태는 컨텍스트 간에 공유되지 않습니다. 따라서 드라이버는 각 컨텍스트에 대한 전체 상태 정보를 유지해야 합니다. 이 상태는 D3dDrawPrimitives2에 대한 후속 호출에 의해 변경됩니다.

드라이버는 컨텍스트 내에서 만든 모든 텍스처 핸들을 참조할 수 있어야 합니다. 그러면 드라이버는 D3dContextDestroy 호출이 수행될 때 이 컨텍스트 내에서 생성된 텍스처와 관련된 모든 드라이버 관련 데이터를 정리할 수 있습니다.

사용하지 않도록 설정된 PDEV를 사용하여 D3dContextCreate를 호출할 수 있습니다. 디스플레이 드라이버의 DrvAssertMode 함수를 호출하여 PDEV를 사용하지 않도록 설정하거나 사용할 수 있습니다. 자세한 내용은 PDEV 관리를 참조하세요.

요구 사항

   
대상 플랫폼 데스크톱
헤더 d3dhal.h(D3dhal.h 포함)

참고 항목

D3DHAL_CONTEXTCREATEDATA

D3dContextDestroy

D3dDrawPrimitives2

DD_DIRECTDRAW_LOCAL