Stefan Dösinger : wined3d: Read the framebuffer size from the surface, not the window.

Alexandre Julliard julliard at winehq.org
Wed Nov 14 07:30:34 CST 2007


Module: wine
Branch: master
Commit: 58a761a88b8f236fd923d6d2d4cd562098034c88
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=58a761a88b8f236fd923d6d2d4cd562098034c88

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Sat Nov 10 22:36:28 2007 +0100

wined3d: Read the framebuffer size from the surface, not the window.

---

 dlls/wined3d/state.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index 559a9fd..296c5ce 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -3598,12 +3598,15 @@ static void light(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DContex
 }
 
 static void scissorrect(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DContext *context) {
-    IWineD3DSwapChainImpl *swapchain = (IWineD3DSwapChainImpl *) stateblock->wineD3DDevice->swapchains[0];
     RECT *pRect = &stateblock->scissorRect;
     RECT windowRect;
     UINT winHeight;
 
-    GetClientRect(swapchain->win_handle, &windowRect);
+    windowRect.left = 0;
+    windowRect.top = 0;
+    windowRect.right = ((IWineD3DSurfaceImpl *) stateblock->wineD3DDevice->render_targets[0])->currentDesc.Width;
+    windowRect.bottom = ((IWineD3DSurfaceImpl *) stateblock->wineD3DDevice->render_targets[0])->currentDesc.Height;
+
     /* Warning: glScissor uses window coordinates, not viewport coordinates, so our viewport correction does not apply
      * Warning2: Even in windowed mode the coords are relative to the window, not the screen
      */




More information about the wine-cvs mailing list