DirectX Graphics 레퍼런스 Direct3D extension (D3DX) C/C++ 레퍼런스 함수 셰이더 함수 D3DXCompileShaderFromFile [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
셰이더 파일을 컴파일 한다.
구문
HRESULT WINAPI D3DXCompileShaderFromFile(
LPCTSTR pSrcFile, CONST D3DXMACRO* pDefines, LPD3DXINCLUDE pInclude, LPCTSTR pFunctionName, LPCTSTR pTarget, DWORD Flags, LPD3DXBUFFER* ppShader, LPD3DXBUFFER *ppErrorMsgs, LPD3DXSHADER_CONSTANTTABLE *ppConstantTable );
파라미터
- pSrcFile
- [in] 파일명을 지정하는 캐릭터 라인의 포인터. 컴파일러의 설정이 Unicode 를 요구하고 있는 경우, 데이터형 LPCTSTR 는 LPCWSTR 가 된다. 그 이외의 경우는, 이 캐릭터 라인의 데이터형은 LPCSTR 가 된다. 「주의」를 참조할것.
- pDefines
- [in] 프리프로세서 정의의 포인터. 「D3DXMACRO 」를 참조할것.
- pInclude
- [in] 옵션의 인터페이스 포인터 ID3DXInclude . #include 의사 명령의 처리에 사용한다. NULL 의 경우, 파일로부터 컴파일 했을 때에는 #includes 가 받아들여져 리소스 또는 메모리로부터 컴파일 했을 때에는 #includes 는 에러가 된다.
- pFunctionName
- [in] 실행을 시작 하는 셰이더 엔트리 포인트 함수의 포인터. 컴파일러의 설정이 Unicode 를 요구하고 있는 경우, 데이터형 LPCTSTR 는 LPCWSTR 가 된다. 그 이외의 경우는, 이 캐릭터 라인의 데이터형은 LPCSTR 가 된다. 「주의」를 참조할것.
- pTarget
- [in] 컴파일 타겟을 포함한 캐릭터 라인의 포인터. 「주의」를 참조할것.
- Flags
- [in] D3DXSHADER 에 의해 식별되는 컴파일 옵션.
- ppShader
- [out] 생성 된 셰이더를 포함한 버퍼를 돌려준다. 이 버퍼는, 컴파일 끝난 셰이더 코드와 파묻히고 있는 디버그 및 심볼 테이블 정보를 포함한다.
- ppErrorMsgs
- [out] 컴파일중에 발생한 에러 및 경고의 리스트를 포함한 버퍼를 돌려준다. 이것들은, 디버그 모드로 실행했을 때에 디버거가 표시하는 메시지와 같다. 이 값은 NULL 이라도 좋다.
- ppConstantTable
- [out] 셰이더내에 파묻히고 있는 D3DXSHADER_CONSTANTTABLE 블록의 포인터를 돌려준다. D3DXGetShaderConstantTable 를 사용해 셰이더 정수에 액세스 하는 경우는, 이 블록을 사용한다. 이 값은 NULL 이라도 좋다.
반환값
성공했을 경우는,D3D_OK 를 돌려준다.
실패했을 경우는, 다음의 몇개의 값을 돌려준다.
D3DERR_INVALIDCALL 메서드의 호출이 무효이다. 예를 들어, 메서드의 파라미터에 무효인 값이 설정되어 있는 경우 등이다. D3DXERR_INVALIDDATA 데이터가 무효이다. E_OUTOFMEMORY Microsoft® Direct3D® 가 호출을 완료하기 위한 충분한 메모리를 할당할 수가 없었다.
주의
정점 셰이더, 픽셀 셰이더, 및 텍스처를 전부 칠하는 함수에 대해서 타겟을 지정할 수 있다.
정점 셰이더의 타겟 vs_1_1, vs_2_0, vs_2_sw 픽셀 셰이더의 타겟 ps_1_1, ps_1_2, ps_1_3, ps_1_4, ps_2_0, ps_2_sw 텍스처의 칠해의 타겟 tx_0, tx_1 컴파일러의 설정이 Unicode 를 요구하고 있는 경우, 데이터형 LPCTSTR 는 LPCWSTR 가 된다. 그 이외의 경우는, 이 캐릭터 라인의 데이터형은 LPCSTR 가 된다.
컴파일러 설정에 의해, 함수의 버전도 정해진다. Unicode 가 정의되고 있는 경우, 이 함수의 호출은 D3DXCompileShaderFromFileW 가 된다. 그 이외의 경우는 ANSI 캐릭터 라인을 사용하므로, 이 함수의 호출은 D3DXCompileShaderFromFileA 가 된다.
함수의 정보
헤더 d3dx9shader.h 임포트 라이브러리 d3dx9.lib 최저한의 operating system Windows 98
참조
D3DXCompileShader ,D3DXCompileShaderFromResource