D3DHAL_CONTEXTCREATEDATA 구조체(d3dhal.h)

D3DHAL_CONTEXTCREATEDATA 구조체에는 D3dContextCreate 함수가 새 컨텍스트를 만드는 데 필요한 모든 정보가 포함됩니다.

구문

typedef struct _D3DHAL_CONTEXTCREATEDATA {
  union {
    LPDDRAWI_DIRECTDRAW_GBL lpDDGbl;
    LPDDRAWI_DIRECTDRAW_LCL lpDDLcl;
  };
  union {
    LPDIRECTDRAWSURFACE       lpDDS;
    LPDDRAWI_DDRAWSURFACE_LCL lpDDSLcl;
  };
  union {
    LPDIRECTDRAWSURFACE       lpDDSZ;
    LPDDRAWI_DDRAWSURFACE_LCL lpDDSZLcl;
  };
  union {
    DWORD     dwPID;
    ULONG_PTR dwrstates;
  };
  ULONG_PTR dwhContext;
  HRESULT   ddrval;
} D3DHAL_CONTEXTCREATEDATA;

멤버

lpDDGbl

드라이버 구조(레거시).

lpDDLcl

DIRECT3D에 대한 COM 인터페이스를 검색하기 위해 애플리케이션이 만들어야 하는 DirectDraw 개체를 가리킵니다. 이렇게 하면 DirectDraw 애플리케이션과 드라이버 간에 컨텍스트 정보를 공유할 수 있습니다. lpDDLcl 은 애플리케이션의 컨텍스트와 드라이버 컨텍스트 간의 공통 및 바인딩 요소입니다. 지정된 Direct3D 컨텍스트에 속하고 현재 DirectDraw 프로세스와만 관련된 표면을 식별하는 데 사용되는 DD_DIRECTDRAW_LOCAL 구조를 가리킵니다. 드라이버에서 Direct3D 컨텍스트를 만들기 전에 표면(예: 깊이 버퍼, 렌더링 버퍼 및 텍스처)을 만들 수 있으므로 lpDDLcl이 필요합니다.

lpDDS

대상으로 사용할 표면입니다.

lpDDSLcl

렌더링 대상으로 사용할 DirectDraw 표면을 설명하는 DD_SURFACE_LOCAL 구조를 가리킵니다.

lpDDSZ

Z로 사용할 Surface입니다.

lpDDSZLcl

깊이 버퍼로 사용할 DirectDraw 표면을 설명하는 DD_SURFACE_LOCAL 구조를 가리킵니다. 이 멤버가 NULL이면 깊이 버퍼링을 수행할 수 없습니다.

dwPID

현재 프로세스 ID를 지정합니다. Direct3D 디바이스 만들기를 시작한 Direct3D 애플리케이션의 프로세스 ID입니다.

dwrstates

명령 버퍼에서 렌더링 상태 명령을 구문 분석할 때 드라이버가 업데이트해야 하는 렌더링 상태 배열을 가리킵니다. 배열 버퍼는 지정된 수 이상의 ULONG 값을 포함할 수 있을 만큼 커야 합니다.

dwhContext

입력 시 Direct3D 사용자 모드 런타임의 버전과 출력에서 드라이버가 컨텍스트를 성공적으로 만들 때 컨텍스트 핸들을 반환하는 위치를 지정합니다. 자세한 내용은 설명 부분을 참조하십시오.

ddrval

드라이버가 D3dContextCreate에 대한 반환 코드를 작성하는 위치를 지정합니다. D3D_OK 반환 코드는 성공을 나타냅니다. D3DHAL_OUTOFCONTEXTS 반환 코드는 드라이버가 컨텍스트를 만들 수 없음을 나타냅니다. 자세한 내용은 Direct3D 드라이버 콜백에 대한 반환 코드를 참조하세요.

설명

Direct3D 런타임이 드라이버의 D3dContextCreate 함수를 호출할 때 런타임은 dwhContext 멤버에서 런타임의 사용자 모드 버전을 나타내는 숫자를 지정합니다. 다음 표에서는 숫자 및 사용자 모드 버전의 매핑을 보여 줍니다.

숫자 DirectX 사용자 모드 버전
5 9.0
4 8.0
3 7.0
2 6.0
1 5.0
0 3.0

드라이버가 컨텍스트를 성공적으로 만들면 드라이버는 드라이버와 통신할 때 사용할 Direct3D 런타임에 대한 dwhContext 의 컨텍스트 ID를 반환합니다.

요구 사항

   
헤더 d3dhal.h(D3dhal.h 포함)

참고 항목

D3dContextCreate

DD_DIRECTDRAW_LOCAL

DD_SURFACE_LOCAL