DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 인터페이스 IDirect3DDevice9 BeginStateBlock [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
Microsoft® Direct3D® 에 장치 스테이트 블록의 기록을 시작 하도록(듯이) 알린다.
구문
HRESULT BeginStateBlock(VOID);
반환값
성공했을 경우는,D3D_OK 를 돌려준다.
실패했을 경우는, 다음의 몇개의 값을 돌려준다.
D3DERR_INVALIDCALL 메서드의 호출이 무효이다. 예를 들어, 메서드의 파라미터에 무효인 값이 설정되어 있는 경우 등이다. E_OUTOFMEMORY Direct3D 가 호출을 완료하기 위한 충분한 메모리를 할당할 수가 없었다.
주의
애플리케이션은 이 메서드를 호출하기 전에 IDirect3DDevice9::ValidateDevice 메서드를 호출해 기록하는 모든 스테이트가 유효한 것을 확인 할 수 있다.
IDirect3DDevice9::BeginStateBlock 를 호출하고 나서 IDirect3DDevice9::EndStateBlock 를 호출하기까지 스테이트 블록에 기록할 수 있는 메서드는, 다음과 같다.
- IDirect3DDevice9::LightEnable
- IDirect3DDevice9::SetClipPlane
- IDirect3DDevice9::SetIndices
- IDirect3DDevice9::SetLight
- IDirect3DDevice9::SetMaterial
- IDirect3DDevice9::SetPixelShader
- IDirect3DDevice9::SetPixelShaderConstantB
- IDirect3DDevice9::SetPixelShaderConstantF
- IDirect3DDevice9::SetPixelShaderConstantI
- IDirect3DDevice9::SetRenderState
- IDirect3DDevice9::SetStreamSource
- IDirect3DDevice9::SetTexture
- IDirect3DDevice9::SetTextureStageState
- IDirect3DDevice9::SetTransform
- IDirect3DDevice9::SetViewport
- IDirect3DDevice9::SetVertexShader
- IDirect3DDevice9::SetVertexShaderConstantB
- IDirect3DDevice9::SetVertexShaderConstantF
- IDirect3DDevice9::SetVertexShaderConstantI
스테이트 블록내에서는, 스테이트 변경의 순서는 보증되지 않는다. 스테이트 블록으로 같은 스테이트가 여러 차례 지정되었을 경우, 사용되는 것은 마지막 값뿐이다.
참조
IDirect3DDevice9::EndStateBlock ,IDirect3DDevice9::CreateStateBlock