다음을 통해 공유


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 반환됩니다.

요구 사항

요구 사항
헤더
D3DX9Shader.h
라이브러리
D3dx9.lib

추가 정보

셰이더 함수

D3DXCompileShader

D3DXCompileShaderFromResource