Orthographische Ansicht in DirectX
-
void D3D9Control::render(wxIdleEvent& e) { if ( !m_d3d_device ){ return; } if ( m_d3d_init ) { // Set orthographic projection { D3DXMATRIX ortho; D3DXMATRIX identity; D3DXMatrixIdentity(&identity); D3DXMatrixOrthoLH(&ortho, this->GetSize().x, this->GetSize().y, 0.0f, 1.0f ); m_d3d_device->SetTransform(D3DTS_VIEW, &identity); m_d3d_device->SetTransform(D3DTS_PROJECTION, &ortho); m_d3d_device->SetRenderState( D3DRS_LIGHTING, FALSE ); } // Rendering { // Clear Device m_d3d_device->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); // Begin Scene m_d3d_device->BeginScene(); //.... // End Scene m_d3d_device->EndScene(); // Present the scene m_d3d_device->Present(NULL, NULL, NULL, NULL); } // Ask for more CPU-cycles e.RequestMore(); } }
Hmm, immer nur OpenGL war langweilig. Spiele grade mit Direct X rum.
Frage: Muss ich die Ortho-Matrix jeden Frame setzen oder reicht das beim initialisieren solange nix anderes gesetzt wird?
-
DX ist wie OGL eine State Machine. Die Werte bleiben also so lange gesetzt, bis du sie wieder aenderst. Haettest du uebrigens auch schnell selber testen koennen...