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...


Anmelden zum Antworten