Problem mit dem wiederherstellen des viewports beim Fenstermodus !!



  • Hi,

    Ich will nachdem mein Fénster seine größe geändert hat das Verhältnis neu setzten. Muss ich da nur den Viewport oder auch die Projektionsmatrix neu setzten ?

    Also momentan setzte ich nur den Viewport neu.

    FEHLER:
    Nachdem das Fenster die größe verändert hat ( WM_EXITSIZEMOVE ) und nachdem ich den Viewport neu gesetzt habe, sind zwei verschiedene Fehler zu beobachten.

    1.) Wenn Fenster kleiner ist als Ausgangsgröße, wird die Scene zwar gerendert jedoch nicht über das komplette Fenster. Der Rest flimmert

    2.) Wenn größer, dann wird gar nix gerendert. ein flimmernder Bildschirm.

    Code:

    ...
    		case WM_EXITSIZEMOVE:
    			{
    				 RECT rect;
    				 GetClientRect( Window.GethWnd(), &rect );
    
    				D3DVIEWPORT9 vp;
    
    				vp.Width	= rect.right-rect.left;
    				vp.Height	= rect.bottom-rect.top;
    				vp.X		= 0;
    				vp.Y		= 0;
    				vp.MaxZ		= 1.0f;
    				vp.MinZ		= 0.0f;
    
    				char buf[50];
    				sprintf( buf, "%d, %d", vp.Width, vp.Height );
    				//MessageBox(0, buf, "", MB_OK );
    
    				Video.GetDevice()->SetViewport( &vp );
    				return 0;
    			}break;
    ...
    

    Ich hoffe mir kann da jemand helfen !!

    Cu



  • Kann mir da keiner Helfen ??



  • Benutz doch GetViewport(). An deinen Sorucen scheint aber alles soweit zu
    stimmen.



  • SaM schrieb:

    Benutz doch GetViewport(). An deinen Sorucen scheint aber alles soweit zu
    stimmen.

    Hm ..für was soll ich das verwenden ?



  • Hi,

    Muss ich vielleicht das Device danach Resetten ?
    Das macht aber irgentwie kein sinn. Weil dann die Methode SetViewport total überflüssig wäre ...

    Cu


Anmelden zum Antworten