D3DX11CompileFromMemory 함수
참고
D3DX(D3DX 9, D3DX 10 및 D3DX 11) 유틸리티 라이브러리는 Windows 8 사용되지 않으며 Windows 스토어 앱에서는 지원되지 않습니다.
참고
이 함수를 사용하는 대신 Fxc.exe 명령줄 컴파일러를 사용하여 오프라인으로 컴파일하거나 D3DCompile API와 같은 HLSL 컴파일 API 중 하나를 사용하는 것이 좋습니다.
메모리에 로드된 셰이더 또는 효과를 컴파일합니다.
구문
HRESULT D3DX11CompileFromMemory(
_In_ LPCSTR pSrcData,
_In_ SIZE_T SrcDataLen,
_In_ LPCSTR pFileName,
_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
);
매개 변수
-
pSrcData [in]
-
형식: LCSTTR
메모리의 셰이더에 대한 포인터입니다.
-
SrcDataLen [in]
-
형식: SIZE_T
메모리의 셰이더 크기입니다.
-
pFileName [in]
-
형식: LCSTTR
셰이더 코드가 포함된 파일의 이름입니다.
-
pDefines [in]
-
형식: const D3D10_SHADER_MACRO*
선택 사항입니다. 매크로 정의 배열에 대한 포인터입니다( D3D10_SHADER_MACRO 참조). 배열의 마지막 구조체는 종결자로 사용되며 모든 멤버를 0으로 설정해야 합니다. 사용하지 않으면 pDefines를NULL로 설정합니다.
-
pInclude [in]
-
형식: LPD3D10INCLUDE
선택 사항입니다. 포함 파일을 처리하기 위한 인터페이스에 대한 포인터입니다. 셰이더에 #include 포함된 경우 이를 NULL 로 설정하면 컴파일 오류가 발생합니다.
-
pFunctionName [in]
-
형식: LCSTTR
셰이더 실행이 시작되는 셰이더 진입점 함수의 이름입니다. 효과를 컴파일할 때 D3DX11CompileFromMemory는 pFunctionName을 무시합니다. 호출된 함수가 사용하지 않을 경우 포인터 매개 변수를 NULL로 설정하는 것이 좋은 프로그래밍 방식이므로 pFunctionName을 NULL로 설정하는 것이 좋습니다.
-
pProfile [in]
-
형식: LCSTTR
셰이더 모델을 지정하는 문자열입니다. 은 셰이더 모델 2, 셰이더 모델 3, 셰이더 모델 4 또는 셰이더 모델 5의 모든 프로필일 수 있습니다. 프로필은 효과 유형(예: fx_4_1)에도 사용할 수 있습니다.
-
Flags1 [in]
-
형식: UINT
셰이더 컴파일 플래그.
-
Flags2 [in]
-
형식: UINT
효과 컴파일 플래그. 효과 파일이 아닌 셰이더를 컴파일하는 경우 D3DX11CompileFromMemory 는 Flags2를 무시합니다. 호출된 함수가 이 매개 변수를 사용하지 않을 경우 비점수 매개 변수를 0으로 설정하는 것이 좋은 프로그래밍 방식이므로 Flags2 를 0으로 설정하는 것이 좋습니다.
-
pPump [in]
-
형식: ID3DX11ThreadPump*
스레드 펌프 인터페이스에 대한 포인터입니다( ID3DX11ThreadPump 인터페이스 참조). NULL을 사용하여 이 함수가 완료될 때까지 반환하지 않도록 지정합니다.
-
ppShader [out]
-
형식: ID3D10Blob**
컴파일된 셰이더와 포함된 디버그 및 기호 테이블 정보가 포함된 메모리에 대한 포인터입니다.
-
ppErrorMsgs [out]
-
형식: ID3D10Blob**
컴파일 중에 발생한 오류 및 경고 목록을 포함하는 메모리에 대한 포인터입니다. 이러한 오류 및 경고는 디버거의 디버그 출력과 동일합니다.
-
pHResult [out]
-
형식: HRESULT*
반환 값에 대한 포인터입니다. NULL일 수 있습니다. pPump가 NULL이 아닌 경우 비동기 실행이 완료될 때까지 pHResult는 유효한 메모리 위치여야 합니다.
반환 값
형식: HRESULT
반환 값은 Direct3D 11 반환 코드에 나열된 값 중 하나입니다.
PPump 매개 변수에 NULL을 제공할 때 pHResult 매개 변수에 NULL이 아닌 를 제공하는 경우 D3DX11CompileFromMemory는 E_INVALIDARG 반환합니다. 이 상황에 대한 자세한 내용은 설명을 참조하세요.
설명
D3DX11CompileFromMemory에 대한 자세한 내용은 D3DCompile을 참조하세요.
pPump 매개 변수에도 NULL을 제공하는 경우 pHResult 매개 변수에 NULL을 제공해야 합니다. 그렇지 않으면 ppShader 매개 변수가 가리키는 메모리에서 D3DX11CompileFromMemory가 반환하는 컴파일된 셰이더 코드를 사용하여 셰이더를 만들 수 없습니다. 규격 셰이더 코드에서 셰이더를 만들려면 다음 ID3D11Device 인터페이스 메서드 중 하나를 호출합니다.
- CreateComputeShader
- CreateDomainShader
- CreateGeometryShader
- CreateGeometryShaderWithStreamOutput
- CreateHullShader
- CreatePixelShader
- CreateVertexShader
또한 pPump에 NULL을 제공할 때 pHResult에 NULL이 아닌 값을 제공하는 경우 D3DX11CompileFromMemory는 E_INVALIDARG 오류 코드를 반환합니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|