셰이더를 적용하기 위해서 따로 만들었다. 이것을 어떻게 현 프로그램에 적용시키는가? 가령 D3DX 함수를 사용해서 컴파일 할 수 있다.(다른 함수들도 있다.)
HRESULT D3DX11CompileFromFile(
LPCTSTR pSrcFile,
CONST D3D10_SHADER_MACRO *pDefines,
LPD3D10INCLUDE plnclude,
LPCSTR pFunctionName,
LPCSTR pProfile,
UINT Flagsl,
UINT Flags2,
ID3DXllThreadPump *pPump,
ID3D10Blob **ppShader,
ID3D10Blob **ppErrorMsgs,
HRESULT *pHResult
);
이 함수는 <D3DX11async.h> 헤더 파일 및 d3dx11.lib 정적 라이브러리 파일을 포함해주어야 한다.
예시는 다음과 같다.
HRESULT hr = D3DX11CompileFromFile
(
L"./VertexColor.hlsl",
nullptr,
nullptr,
"VS",
"vs_5_0",
0,
0,
nullptr,
&vsBlob,
nullptr,
nullptr
);
hlsl파일의 속성에 들어가서, 함수 매개변수로 적은 파일 이름, 진입점 이름, 셰이더 모델, 셰이더 형식이 똑같도록 설정을 해주어야 한다.
