DirectX Graphics 레퍼런스 Direct3D extension (D3DX) C/C++ 레퍼런스 인터페이스 ID3DXFragmentLinker LinkShader [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
컴파일 된 셰이더를 실행시에 링크한다. 이 처리는 매우 경량이다.
구문
HRESULT LinkShader(
LPCSTR Target, DWORD Flags, LPD3DXHANDLE rgFragmentHandles, UINT cFragments, LPD3DXBUFFER* ppBuffer, LPD3DXBUFFER *ppErrorMsgs );
파라미터
- Target
- [in] 정점 셰이더의 컴파일 타겟. 컴파일 타겟은, 셰이더의 타입과 셰이더의 버전 번호로 구성된다. 유효한 타겟은, vs_1_1, vs_2_0, vs_2_x, 및 vs_2_sw 이다.
- Flags
- [in] 링크 옵션. 「D3DXSHADER 」를 참조할것.
- rgFragmentHandles
- [in] fragment에 대한 일의의 식별자. 「핸들」을 참조할것.
- cFragments
- [in] 링크하는 fragment의 수.
- ppBuffer
- [out] 컴파일 된 셰이더 코드를 저장 하는 버퍼의 포인터. 「ID3DXBuffer 」를 참조할것.
- ppErrorMsgs
- [out, retval] 발생한 최초의 compile error 메시지를 반드시 포함한 버퍼. 이것에는, 이펙트의 compile error와 상위 레벨 언어의 compile error가 포함된다. 버퍼에의 액세스의 더 자세한 정보는, 「ID3DXBuffer 」를 참조할것.
반환값
성공했을 경우는,D3D_OK 를 돌려준다.
실패했을 경우는, 다음의 몇개의 값을 돌려준다.
E_FAIL Microsoft® Direct3D® 서브 시스템내에서 원인 불명의 에러가 발생했다. D3DERR_INVALIDCALL 메서드의 호출이 무효이다. 예를 들어, 메서드의 파라미터에 무효인 값이 설정되어 있는 경우 등이다. D3DXERR_INVALIDDATA 데이터가 무효이다. E_OUTOFMEMORY Direct3D 가 호출을 완료하기 위한 충분한 메모리를 할당할 수가 없었다.