D3DXCompileShaderFromFile 함수
셰이더 파일을 컴파일합니다.
참고
이 레거시 함수를 사용하는 대신 Fxc.exe 명령줄 컴파일러를 사용하여 오프라인으로 컴파일하거나 D3DCompile API를 사용하는 것이 좋습니다.
구문
HRESULT D3DXCompileShaderFromFile(
_In_ LPCTSTR pSrcFile,
_In_ const D3DXMACRO *pDefines,
_In_ LPD3DXINCLUDE pInclude,
_In_ LPCSTR pFunctionName,
_In_ LPCSTR pProfile,
_In_ DWORD Flags,
_Out_ LPD3DXBUFFER *ppShader,
_Out_ LPD3DXBUFFER *ppErrorMsgs,
_Out_ LPD3DXCONSTANTTABLE *ppConstantTable
);
매개 변수
-
pSrcFile [in]
-
형식: LPCTSTR
파일 이름을 지정하는 문자열에 대한 포인터입니다.
-
pDefines [in]
-
형식: const D3DXMACRO*
선택적 NULL 종료된 D3DXMACRO 구조체 배열입니다. 이 값은 NULL일 수 있습니다.
-
pInclude [in]
-
형식: LPD3DXINCLUDE
#include 지시문을 처리하는 데 사용할 선택적 인터페이스 포인터 ID3DXInclude입니다. 이 값이 NULL인 경우 파일에서 컴파일할 때 #includes 적용되거나 리소스 또는 메모리에서 컴파일될 때 오류가 발생합니다.
-
pFunctionName [in]
-
형식: LCSTTR
실행이 시작되는 셰이더 진입점 함수에 대한 포인터입니다.
-
pProfile [in]
-
형식: LCSTTR
셰이더 명령 집합을 결정하는 셰이더 프로필에 대한 포인터입니다. 사용 가능한 프로필 목록은 D3DXGetVertexShaderProfile 또는 D3DXGetPixelShaderProfile 을 참조하세요.
-
Flags [in]
-
형식: DWORD
다양한 플래그로 식별되는 컴파일 옵션입니다. 이제 Direct3D 10 HLSL 컴파일러가 기본값입니다. 자세한 내용은 D3DXSHADER 플래그 를 참조하세요.
-
ppShader [out]
-
형식: LPD3DXBUFFER*
만든 셰이더를 포함하는 버퍼를 반환합니다. 이 버퍼에는 컴파일된 셰이더 코드와 포함된 디버그 및 기호 테이블 정보가 포함됩니다.
-
ppErrorMsgs [out]
-
형식: LPD3DXBUFFER*
컴파일 중에 발생한 오류 및 경고 목록이 포함된 버퍼를 반환합니다. 디버그 모드에서 실행할 때 디버거가 표시하는 것과 동일한 메시지입니다. 이 값은 NULL일 수 있습니다.
-
ppConstantTable [out]
-
형식: LPD3DXCONSTANTTABLE*
셰이더 상수에 액세스하는 데 사용할 수 있는 ID3DXConstantTable 인터페이스를 반환합니다. 이 값은 NULL일 수 있습니다. 애플리케이션을 큰 주소 인식으로 컴파일하는 경우(즉, /LARGEADDRESSAWARE 링커 옵션을 사용하여 2GB보다 큰 주소를 처리함) 이 매개 변수를 사용할 수 없으며 NULL로 설정해야 합니다. 대신 D3DXGetShaderConstantTableEx 함수를 사용하여 셰이더 내에 포함된 셰이더 상수 테이블을 검색해야 합니다. 이 D3DXGetShaderConstantTableEx 호출에서는 플래그 매개 변수에 D3DXCONSTTABLE_LARGEADDRESSAWARE 플래그를 전달하여 최대 4GB의 가상 주소 공간에 액세스하도록 지정해야 합니다.
반환 값
형식: HRESULT
함수가 성공하면 반환 값이 D3D_OK. 함수가 실패하면 반환 값은 D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_NOTIMPL, E_OUTOFMEMORY 중 하나일 수 있습니다.
1.1 셰이더(vs_1_1 및 ps_1_1)를 사용하는 경우 E_NOTIMPL 반환됩니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|
추가 정보