Module: wine Branch: master Commit: fcb49934d0f4a521f5a8c2df2a19433c6fb3a47f URL: http://source.winehq.org/git/wine.git/?a=commit;h=fcb49934d0f4a521f5a8c2df2a...
Author: Stefan Dösinger stefan@codeweavers.com Date: Fri Nov 30 21:01:29 2007 +0100
wined3d: Retrieve the height properly when setting the viewport.
---
dlls/wined3d/state.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index cd801d7..9ff392c 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -3525,6 +3525,9 @@ static void vertexdeclaration(DWORD state, IWineD3DStateBlockImpl *stateblock, W }
static void viewport(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DContext *context) { + UINT width, height; + IWineD3DSurfaceImpl *target; + glDepthRange(stateblock->viewport.MinZ, stateblock->viewport.MaxZ); checkGLcall("glDepthRange"); /* Note: GL requires lower left, DirectX supplies upper left. This is reversed when using offscreen rendering @@ -3534,8 +3537,11 @@ static void viewport(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DCon stateblock->viewport.Y, stateblock->viewport.Width, stateblock->viewport.Height); } else { + target = (IWineD3DSurfaceImpl *) stateblock->wineD3DDevice->render_targets[0]; + target->get_drawable_size(target, &width, &height); + glViewport(stateblock->viewport.X, - (((IWineD3DSurfaceImpl *)stateblock->wineD3DDevice->render_targets[0])->currentDesc.Height - (stateblock->viewport.Y + stateblock->viewport.Height)), + (height - (stateblock->viewport.Y + stateblock->viewport.Height)), stateblock->viewport.Width, stateblock->viewport.Height); }