다음을 통해 공유


D3DCompileFromFile 함수(d3dcompiler.h)

참고 이 API를 사용하여 Windows 스토어 앱을 개발할 수 있지만 Windows 스토어에 제출하는 앱에서는 사용할 수 없습니다. D3DCompile2에 대한 설명에서 "UWP용 셰이더 컴파일" 섹션을 참조하세요.
 
Microsoft HLSL(High Level Shader Language) 코드를 지정된 대상에 대한 바이트코드로 컴파일합니다.

구문

HRESULT D3DCompileFromFile(
  [in]            LPCWSTR                pFileName,
  [in, optional]  const D3D_SHADER_MACRO *pDefines,
  [in, optional]  ID3DInclude            *pInclude,
  [in]            LPCSTR                 pEntrypoint,
  [in]            LPCSTR                 pTarget,
  [in]            UINT                   Flags1,
  [in]            UINT                   Flags2,
  [out]           ID3DBlob               **ppCode,
  [out, optional] ID3DBlob               **ppErrorMsgs
);

매개 변수

[in] pFileName

셰이더 코드가 포함된 파일의 이름을 포함하는 null로 끝나는 상수 문자열에 대한 포인터입니다.

[in, optional] pDefines

셰이더 매크로를 정의하는 D3D_SHADER_MACRO 구조체의 선택적 배열입니다. 각 매크로 정의에는 이름과 null로 끝나는 정의가 포함됩니다. 사용하지 않으면 을 NULL로 설정합니다. 배열의 마지막 구조체는 종결자로 사용되며 모든 멤버가 NULL로 설정되어야 합니다.

[in, optional] pInclude

컴파일러가 포함 파일을 처리하는 데 사용하는 ID3DInclude 인터페이스에 대한 선택적 포인터입니다. 이 매개 변수를 NULL 로 설정하고 셰이더에 #include 포함하는 경우 컴파일 오류가 발생합니다. 기본 포함 처리기에 대한 포인터인 D3D_COMPILE_STANDARD_FILE_INCLUDE 매크로를 전달할 수 있습니다. 이 기본 포함 처리기에는 현재 디렉터리를 기준으로 하는 파일이 포함됩니다.

#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)

[in] pEntrypoint

셰이더 실행이 시작되는 셰이더 진입점 함수의 이름을 포함하는 null로 끝나는 상수 문자열에 대한 포인터입니다. 효과를 컴파일할 때 D3DCompileFromFilepEntrypoint를 무시합니다. 호출된 함수가 사용하지 않을 경우 포인터 매개 변수를 NULL로 설정하는 것이 좋은 프로그래밍 방식이므로 pEntrypointNULL로 설정하는 것이 좋습니다.

[in] pTarget

컴파일할 셰이더 대상 또는 셰이더 기능 집합을 지정하는 null로 끝나는 상수 문자열에 대한 포인터입니다. 셰이더 대상은 셰이더 모델(예: 셰이더 모델 2, 셰이더 모델 3, 셰이더 모델 4 또는 셰이더 모델 5 이상)일 수 있습니다. 대상은 효과 유형일 수도 있습니다(예: fx_4_1). 다양한 프로필이 지원하는 대상에 대한 자세한 내용은 컴파일러 대상 지정을 참조하세요.

[in] Flags1

비트 OR 연산을 사용하여 결합된 셰이더 컴파일 옵션의 조합입니다. 결과 값은 컴파일러가 HLSL 코드를 컴파일하는 방법을 지정합니다.

[in] Flags2

비트 OR 연산을 사용하여 결합된 효과 컴파일 옵션의 조합입니다. 결과 값은 컴파일러가 효과를 컴파일하는 방법을 지정합니다. 효과 파일이 아닌 셰이더를 컴파일하는 경우 D3DCompileFromFileFlags2를 무시합니다. 호출된 함수가 이 매개 변수를 사용하지 않는 경우 nonpointer 매개 변수를 0으로 설정하는 것이 좋은 프로그래밍 방식이므로 Flags2 를 0으로 설정하는 것이 좋습니다.

[out] ppCode

컴파일된 코드에 액세스하는 데 사용할 수 있는 ID3DBlob 인터페이스에 대한 포인터를 수신하는 변수에 대한 포인터입니다.

[out, optional] ppErrorMsgs

컴파일러 오류 메시지에 액세스하는 데 사용할 수 있는 ID3DBlob 인터페이스에 대한 포인터를 수신하는 변수에 대한 선택적 포인터이거나 오류가 없는 경우 NULL 입니다.

반환 값

Direct3D 11 반환 코드 중 하나를 반환합니다.

설명

참고 파일의 D3dcompiler_44.dll 이상 버전에는 D3DCompileFromFile 컴파일러 함수가 포함되어 있습니다.
 

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 d3dcompiler.h
라이브러리 D3DCompiler.lib
DLL D3DCompiler_47.dll

참조

함수