ID3DXEffectCompiler::CompileShader 메서드
하나 이상의 함수가 포함된 효과에서 셰이더를 컴파일합니다.
구문
HRESULT CompileShader(
[in] D3DXHANDLE hFunction,
[in] LPCSTR pTarget,
[in] DWORD Flags,
[out, retval] LPD3DXBUFFER *ppShader,
[out, retval] LPD3DXBUFFER *ppErrorMsgs,
[out] LPD3DXCONSTANTTABLE *ppConstantTable
);
매개 변수
-
hFunction [in]
-
형식: D3DXHANDLE
컴파일할 함수의 고유 식별자입니다. 이 값은 NULL이 아니어야 합니다. 핸들(Direct3D 9)을 참조하세요.
-
pTarget [in]
-
형식: LCSTTR
셰이더 명령 집합을 결정하는 셰이더 프로필에 대한 포인터입니다. 사용 가능한 프로필 목록은 D3DXGetVertexShaderProfile 또는 D3DXGetPixelShaderProfile 을 참조하세요.
-
Flags [in]
-
형식: DWORD
다양한 플래그로 식별되는 컴파일 옵션입니다. 이제 Direct3D 10 HLSL 컴파일러가 기본값입니다. 자세한 내용은 D3DXSHADER 플래그 를 참조하세요.
-
ppShader [out, retval]
-
형식: LPD3DXBUFFER*
컴파일된 셰이더를 포함하는 버퍼입니다. 컴파일러 셰이더는 DWORD 배열입니다. 버퍼에 액세스하는 방법에 대한 자세한 내용은 ID3DXBuffer를 참조하세요.
-
ppErrorMsgs [out, retval]
-
형식: LPD3DXBUFFER*
발생한 첫 번째 컴파일 오류 메시지를 포함하는 버퍼입니다. 여기에는 효과 컴파일러 오류 및 상위 수준 언어 컴파일 오류가 포함됩니다. 버퍼에 액세스하는 방법에 대한 자세한 내용은 ID3DXBuffer를 참조하세요.
-
ppConstantTable [out]
-
형식: LPD3DXCONSTANTTABLE*
셰이더 상수에 액세스하는 데 사용할 수 있는 ID3DXConstantTable 인터페이스를 반환합니다. 이 값은 NULL일 수 있습니다. 애플리케이션을 큰 주소 인식으로 컴파일하는 경우(즉, /LARGEADDRESSAWARE 링커 옵션을 사용하여 2GB보다 큰 주소를 처리함) 이 매개 변수를 사용할 수 없으며 NULL로 설정해야 합니다. 대신 D3DXGetShaderConstantTableEx 함수를 사용하여 셰이더 내에 포함된 셰이더 상수 테이블을 검색해야 합니다. 이 D3DXGetShaderConstantTableEx 호출에서는 플래그 매개 변수에 D3DXCONSTTABLE_LARGEADDRESSAWARE 플래그를 전달하여 최대 4GB의 가상 주소 공간에 액세스하도록 지정해야 합니다.
반환 값
형식: HRESULT
메서드가 성공하면 반환 값이 S_OK.
인수가 유효하지 않으면 메서드는 D3DERR_INVALIDCALL 반환합니다.
메서드가 실패하면 반환 값이 E_FAIL.
설명
꼭짓점 셰이더, 픽셀 셰이더 및 텍스처 채우기 함수에 대해 대상을 지정할 수 있습니다.
대상 | Functions |
---|---|
꼭짓점 셰이더 대상 | vs_1_1, vs_2_0, vs_2_sw, vs_3_0 |
픽셀 셰이더 대상 | ps_1_1, ps_1_2, ps_1_3, ps_1_4, ps_2_0, ps_2_sw, ps_3_0 |
텍스처 채우기 대상 | tx_0, tx_1 |
이 메서드는 C와 유사한 언어로 작성된 함수에서 셰이더를 컴파일합니다. 자세한 내용은 HLSL을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|
추가 정보