DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 인터페이스 IDirect3DDevice9 SetSoftwareVertexProcessing [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
이 메서드는, 정점 처리를 소프트웨어와 하드웨어로 바꾸기 위해서(때문에) 사용한다.
구문
HRESULT SetSoftwareVertexProcessing(
BOOL bSoftware );
파라미터
- bSoftware
- [in] 소프트웨어 정점 처리를 지정하려면 TRUE, 하드웨어 정점 처리를 지정하려면 FALSE 를 지정한다.
반환값
성공했을 경우는,D3D_OK 를 돌려준다.
실패했을 경우는,D3DERR_INVALIDCALL 를 돌려준다.
주의
모드의 변경에는 다음과 같은 제한이 있다.
- D3DCREATE_SOFTWARE_VERTEXPROCESSING 로 장치를 생성 했을 경우, 정점 처리는 소프트웨어로 처리된다. 이것을 변경할 수 없다.
- D3DCREATE_HARDWARE_VERTEXPROCESSING 로 장치를 생성 했을 경우, 정점 처리는 하드웨어로 처리된다. 이것을 변경할 수 없다.
- D3DCREATE_MIXED_VERTEXPROCESSING 로 장치를 생성 했을 경우, 디폴트에서는 정점 처리는 하드웨어로 처리된다. 처리를 소프트웨어로 변경하거나 하드웨어에 되돌리거나 하려면 ,IDirect3DDevice9::SetSoftwareVertexProcessing 를 사용한다.
애플리케이션은, 소프트웨어 정점 처리와 하드웨어 정점 처리의 양쪽 모두에 사용할 수 있는 믹스 모드의 장치를 생성 할 수 있다. Microsoft® DirectX® 8. x 로 정점 처리 모드를 바꾸려면 , 렌더링 스테이트 D3DRS_SOFTWAREVERTEXPROCESSING 와 적절한 DWORD 인수를 지정해 IDirect3DDevice8::SetRenderState 를 사용한다. 렌더링 스테이트를 사용하는 방법에는, 스테이트 블록의 의미들을 정의하는 것이 어렵다고 하는 결점이 있다. 애플리케이션과 런타임에서는, 여분의 처리를 실행하지 않으면 안되어, 또 스테이트 블록의 기록 및 재생중에는 주의가 필요하다.
DirectX 9.0 에서는, 대신에 SetSoftwareVertexProcessing 를 사용한다. 이 새로운 애플리케이션 프로그래밍 인터페이스 (API)는 스테이트 블록에 의해 기록되지 않는다.
참조
IDirect3DDevice9::GetSoftwareVertexProcessing