다음을 통해 공유


D3DX11CompileFromFile 함수

참고

D3DX(D3DX 9, D3DX 10 및 D3DX 11) 유틸리티 라이브러리는 Windows 8 사용되지 않으며 Windows 스토어 앱에서는 지원되지 않습니다.

참고

이 함수를 사용하는 대신 Fxc.exe 명령줄 컴파일러를 사용하여 오프라인으로 컴파일하거나 D3DCompileFromFile API와 같은 HLSL 컴파일 API 중 하나를 사용하는 것이 좋습니다.

파일에서 셰이더 또는 효과를 컴파일합니다.

구문

HRESULT D3DX11CompileFromFile(
  _In_        LPCTSTR            pSrcFile,
  _In_  const D3D10_SHADER_MACRO *pDefines,
  _In_        LPD3D10INCLUDE     pInclude,
  _In_        LPCSTR             pFunctionName,
  _In_        LPCSTR             pProfile,
  _In_        UINT               Flags1,
  _In_        UINT               Flags2,
  _In_        ID3DX11ThreadPump  *pPump,
  _Out_       ID3D10Blob         **ppShader,
  _Out_       ID3D10Blob         **ppErrorMsgs,
  _Out_       HRESULT            *pHResult
);

매개 변수

pSrcFile [in]

형식: LPCTSTR

셰이더 코드가 포함된 파일의 이름입니다. 컴파일러 설정에 유니코드가 필요한 경우 데이터 형식 LPCTSTR이 LPCWSTR로 확인됩니다. 그렇지 않으면 데이터 형식이 LPCSTR로 확인됩니다.

pDefines [in]

형식: const D3D10_SHADER_MACRO*

선택 사항입니다. 매크로 정의 배열에 대한 포인터입니다( D3D10_SHADER_MACRO 참조). 배열의 마지막 구조체는 종결자로 사용되며 모든 멤버를 0으로 설정해야 합니다. 사용하지 않으면 pDefines를NULL로 설정합니다.

pInclude [in]

형식: LPD3D10INCLUDE

선택 사항입니다. 포함 파일을 처리하기 위한 인터페이스에 대한 포인터입니다. 셰이더에 #include 포함된 경우 이를 NULL 로 설정하면 컴파일 오류가 발생합니다.

pFunctionName [in]

형식: LCSTTR

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

pProfile [in]

형식: LCSTTR

셰이더 모델을 지정하는 문자열입니다. 는 셰이더 모델 2, 셰이더 모델 3, 셰이더 모델 4 또는 셰이더 모델 5의 모든 프로필일 수 있습니다. 프로필은 효과 유형(예: fx_4_1)에도 사용할 수 있습니다.

Flags1 [in]

형식: UINT

셰이더 컴파일 플래그.

Flags2 [in]

형식: UINT

효과 컴파일 플래그. 효과 파일이 아닌 셰이더를 컴파일하는 경우 D3DX11CompileFromFileFlags2를 무시합니다. 호출된 함수가 이 매개 변수를 사용하지 않는 경우 nonpointer 매개 변수를 0으로 설정하는 것이 좋은 프로그래밍 방식이므로 Flags2 를 0으로 설정하는 것이 좋습니다.

pPump [in]

형식: ID3DX11ThreadPump*

스레드 펌프 인터페이스에 대한 포인터입니다( ID3DX11ThreadPump 인터페이스 참조). NULL을 사용하여 이 함수가 완료될 때까지 반환하지 않도록 지정합니다.

ppShader [out]

형식: ID3D10Blob**

컴파일된 셰이더와 포함된 디버그 및 기호 테이블 정보가 포함된 메모리에 대한 포인터입니다.

ppErrorMsgs [out]

형식: ID3D10Blob**

컴파일 중에 발생한 오류 및 경고 목록을 포함하는 메모리에 대한 포인터입니다. 이러한 오류 및 경고는 디버거의 디버그 출력과 동일합니다.

pHResult [out]

형식: HRESULT*

반환 값에 대한 포인터입니다. NULL일 수 있습니다. pPumpNULL이 아닌 경우 비동기 실행이 완료될 때까지 pHResult는 유효한 메모리 위치여야 합니다.

반환 값

형식: HRESULT

반환 값은 Direct3D 11 반환 코드에 나열된 값 중 하나입니다.

PPump 매개 변수에 NULL을 제공할 때 pHResult 매개 변수에 NULL이 아닌 값을 제공하는 경우 D3DX11CompileFromFileE_INVALIDARG 반환합니다. 이 상황에 대한 자세한 내용은 비고를 참조하세요.

설명

D3DX11CompileFromFile에 대한 자세한 내용은 D3DCompile을 참조하세요.

pPump 매개 변수에도 NULL을 제공하는 경우 pHResult 매개 변수에 NULL을 제공해야 합니다. 그렇지 않으면 ppShader 매개 변수가 가리키는 메모리에서 D3DX11CompileFromFile이 반환하는 컴파일된 셰이더 코드를 사용하여 셰이더를 만들 수 없습니다. 규격 셰이더 코드에서 셰이더를 만들려면 다음 ID3D11Device 인터페이스 메서드 중 하나를 호출합니다.

또한 pPumpNULL을 제공할 때 pHResultNULL이 아닌 값을 제공하는 경우 D3DX11CompileFromFile은 E_INVALIDARG 오류 코드를 반환합니다.

요구 사항

요구 사항
헤더
D3DX11async.h
라이브러리
D3DX11.lib

추가 정보

D3DX 함수