DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 인터페이스 IDirect3DDevice9 CreateVertexShader [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
정점 셰이더를 생성 한다.
구문
HRESULT CreateVertexShader(
const DWORD *pFunction, IDirect3DVertexShader9** ppShader );
파라미터
- pFunction
- [in] 정점 셰이더 기능 토큰 배열의 포인터. 이 파라미터에서는, 각 정점에 적용하는 처리를 정의한다.
- ppShader
- [out, retval] 돌려받는 정점 셰이더의 인터페이스의 포인터. 「IDirect3DVertexShader9 」를 참조할것.
반환값
성공했을 경우는,D3D_OK 를 돌려준다.
실패했을 경우는, 다음의 몇개의 값을 돌려준다.
D3DERR_INVALIDCALL 메서드의 호출이 무효이다. 예를 들어, 메서드의 파라미터에 무효인 값이 설정되어 있는 경우 등이다. D3DERR_OUTOFVIDEOMEMORY Microsoft® Direct3D® 가 처리를 실시하는데 충분한 디스플레이 메모리가 없다. E_OUTOFMEMORY Direct3D 가 호출을 완료하기 위한 충분한 메모리를 할당할 수가 없었다.
주의
장치를 생성 할 때IDirect3D9::CreateDevice 는 동작 플래그를 사용해, 하드웨어와 소프트웨어의 어디에서 정점을 처리할까 결정한다. 설정 방법법은 3 개 있다.
- 하드웨어로 정점을 처리하려면 , D3DCREATE_HARDWARE_VERTEXPROCESSING 를 설정한다.
- 소프트웨어로 정점을 처리하려면 , D3DCREATE_SOFTWARE_VERTEXPROCESSING 를 설정한다.
하드웨어 또는 소프트웨어로 정점을 처리하려면 , D3DCREATE_MIXED_VERTEXPROCESSING 를 설정한다.
믹스 모드의 장치에서는, 장치의 생성 후에, 소프트웨어와 하드웨어 처리의 변환이 필요한 경우가 있다. 이 경우는,IDirect3DDevice9::SetSoftwareVertexProcessing 를 사용한다.
참조
IDirect3D9::CreateDevice ,D3DXAssembleShader