다음을 통해 공유


D3DPreprocess 함수(d3dcompiler.h)

컴파일되지 않은 HLSL 코드를 전처리합니다.

통사론

HRESULT D3DPreprocess(
  [in]            LPCVOID                pSrcData,
  [in]            SIZE_T                 SrcDataSize,
  [in, optional]  LPCSTR                 pSourceName,
  [in, optional]  const D3D_SHADER_MACRO *pDefines,
  [in, optional]  ID3DInclude            *pInclude,
  [out]           ID3DBlob               **ppCodeText,
  [out, optional] ID3DBlob               **ppErrorMsgs
);

매개 변수

[in] pSrcData

형식: LPCVOID

컴파일되지 않은 셰이더 데이터에 대한 포인터입니다. ASCII HLSL 코드 또는 컴파일된 효과

[in] SrcDataSize

형식: SIZE_T

pSrcData길이입니다.

[in, optional] pSourceName

형식: LPCSTR

컴파일되지 않은 HLSL 코드를 포함하는 파일의 이름입니다.

[in, optional] pDefines

형식: const D3D_SHADER_MACRO*

NULL로 끝나는 매크로 정의의 배열입니다(D3D_SHADER_MACRO참조).

[in, optional] pInclude

형식: ID3DInclude*

포함 파일을 처리하기 위한 ID3DInclude 대한 포인터입니다. 이를 NULL 설정하면 셰이더에 #include 포함된 경우 컴파일 오류가 발생합니다. 기본 포함 처리기에 대한 포인터인 D3D_COMPILE_STANDARD_FILE_INCLUDE 매크로를 전달할 수 있습니다. 이 기본 포함 처리기에는 현재 디렉터리를 기준으로 하는 파일과 초기 소스 파일의 디렉터리를 기준으로 하는 파일이 포함됩니다. D3D_COMPILE_STANDARD_FILE_INCLUDE사용하는 경우 pSourceName 매개 변수에서 원본 파일 이름을 지정해야 합니다. 컴파일러는 pSourceName초기 상대 디렉터리를 파생합니다.

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

[out] ppCodeText

형식: ID3DBlob**

전처리된 코드에 액세스하는 데 사용할 수 있는 ID3DBlob 인터페이스에 대한 포인터를 받는 변수에 대한 포인터입니다.

[out, optional] ppErrorMsgs

형식: ID3DBlob**

컴파일러 오류 메시지가 포함된 ID3DBlob 대한 포인터이거나 오류가 없는 경우 NULL .

반환 값

형식: HRESULT

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

발언

D3DPreprocess는#line 지시문을 출력하고 원본 입력의 줄 번호 매기기를 유지하므로 출력 줄 번호 매기기를 입력 원본과 제대로 연결할 수 있습니다.

요구 사항

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

참고 항목

함수