Modify the existing viewport, instead of constructing a new one. Fixes

resizing problems.
This commit is contained in:
Glenn Maynard
2005-11-06 23:02:23 +00:00
parent 4c874a943b
commit f5c9f4661f
+10 -5
View File
@@ -631,10 +631,10 @@ void RageDisplay_D3D::SetViewport(int shift_left, int shift_down)
shift_left = int( shift_left * float(p.width) / SCREEN_WIDTH ); shift_left = int( shift_left * float(p.width) / SCREEN_WIDTH );
shift_down = int( shift_down * float(p.height) / SCREEN_HEIGHT ); shift_down = int( shift_down * float(p.height) / SCREEN_HEIGHT );
D3DVIEWPORT8 viewData = { shift_left, -shift_down, p.width, p.height, 0.f, 1.f }; D3DVIEWPORT8 viewData;
viewData.MinZ = SCALE( g_fZBias, 0.0f, 1.0f, 0.05f, 0.0f ); g_pd3dDevice->GetViewport( &viewData );
viewData.MaxZ = SCALE( g_fZBias, 0.0f, 1.0f, 1.0f, 0.95f ); viewData.X = shift_left;
viewData.Y = -shift_down;
g_pd3dDevice->SetViewport( &viewData ); g_pd3dDevice->SetViewport( &viewData );
} }
@@ -1186,7 +1186,12 @@ bool RageDisplay_D3D::IsZWriteEnabled() const
void RageDisplay_D3D::SetZBias( float f ) void RageDisplay_D3D::SetZBias( float f )
{ {
g_fZBias = f; g_fZBias = f;
SetViewport( 0, 0 );
D3DVIEWPORT8 viewData;
g_pd3dDevice->GetViewport( &viewData );
viewData.MinZ = SCALE( g_fZBias, 0.0f, 1.0f, 0.05f, 0.0f );
viewData.MaxZ = SCALE( g_fZBias, 0.0f, 1.0f, 1.0f, 0.95f );
g_pd3dDevice->SetViewport( &viewData );
} }