다음을 통해 공유


D3D10CompileShader 함수(d3d10shader.h)

HLSL 셰이더를 컴파일합니다.

참고 이 함수 대신 D3DX10CompileFromMemory 를 사용합니다.
 

구문

HRESULT D3D10CompileShader(
  [in]  LPCSTR                   pSrcData,
  [in]  SIZE_T                   SrcDataSize,
  [in]  LPCSTR                   pFileName,
  [in]  const D3D10_SHADER_MACRO *pDefines,
  [in]  LPD3D10INCLUDE           pInclude,
  [in]  LPCSTR                   pFunctionName,
  [in]  LPCSTR                   pProfile,
  [in]  UINT                     Flags,
  [out] ID3D10Blob               **ppShader,
  [out] ID3D10Blob               **ppErrorMsgs
);

매개 변수

[in] pSrcData

형식: LPCSTR

셰이더 소스 코드가 포함된 문자열에 대한 포인터입니다.

[in] SrcDataSize

형식: SIZE_T

pSrcData의 크기(바이트)입니다.

[in] pFileName

형식: LPCSTR

셰이더 코드가 포함된 파일의 이름입니다.

[in] pDefines

형식: const D3D10_SHADER_MACRO*

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

[in] pInclude

형식: LPD3D10INCLUDE*

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

[in] pFunctionName

형식: LPCSTR

셰이더 실행이 시작되는 셰이더 진입점 함수의 이름입니다.

[in] pProfile

형식: LPCSTR

셰이더 프로필 또는 셰이더 모델을 지정하는 문자열입니다.

[in] Flags

형식: UINT

셰이더 컴파일 옵션.

[out] ppShader

형식: ID3D10Blob**

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

[out] ppErrorMsgs

형식: ID3D10Blob**

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

반환 값

형식: HRESULT

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

설명

이 함수는 2006년 11월 DirectX SDK에서 릴리스된 HLSL 컴파일러 버전을 사용합니다.

이 함수는 입력 셰이더 정보를 제공하는 두 가지 방법을 구현합니다. pSrcDataSrcDataLen을 사용하여 셰이더 HLSL 코드가 포함된 문자열을 지정하거나(pFileNameNULL로 설정) pFileName을 사용하여 셰이더 또는 효과 파일의 이름을 지정하고 pSrcDataNULL로 설정합니다.

프로그래밍 가능한 파이프라인 단계를 설정하려면 셰이더를 컴파일한 다음 셰이더를 적절한 파이프라인 단계에 바인딩합니다. instance 경우 다음은 기하 도형 셰이더를 컴파일하는 예제입니다(기하 도형 셰이더 컴파일 참조).

이 함수인 D3D10CompileShader는 운영 체제가 릴리스될 때마다 제공되는 셰이더 컴파일러 버전을 호출합니다. 셰이더 컴파일러의 최신 버전은 DirectX SDK가 배송될 때 배송되며, D3DX10CompileFromFile과 같은 셰이더 컴파일러 진입점 함수 버전을 호출하여 D3DX에서 액세스할 수 있습니다. DirectX 재배포 가능 라이브러리를 재배포할 경우 최신 버전의 셰이더 컴파일러가 사용되도록 D3DX 진입점 함수를 사용하는 것이 좋습니다.

요구 사항

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

추가 정보

셰이더 함수