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
대상으로 사용할 Surface입니다.
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 포함) |