Florian Köberle : wined3d: Let GetRasterStatus return D3DERR_INVALIDCALL.

Alexandre Julliard julliard at winehq.org
Mon Jul 19 11:05:40 CDT 2010


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

Author: Florian Köberle <florian at fkoeberle.de>
Date:   Sun Jul 18 09:26:51 2010 +0200

wined3d: Let GetRasterStatus return D3DERR_INVALIDCALL.

---

 dlls/wined3d/swapchain_base.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/dlls/wined3d/swapchain_base.c b/dlls/wined3d/swapchain_base.c
index 1817de2..3520a41 100644
--- a/dlls/wined3d/swapchain_base.c
+++ b/dlls/wined3d/swapchain_base.c
@@ -123,15 +123,18 @@ HRESULT WINAPI IWineD3DBaseSwapChainImpl_GetBackBuffer(IWineD3DSwapChain *iface,
 
 HRESULT WINAPI IWineD3DBaseSwapChainImpl_GetRasterStatus(IWineD3DSwapChain *iface, WINED3DRASTER_STATUS *pRasterStatus) {
     static BOOL warned;
-    pRasterStatus->InVBlank = TRUE;
-    pRasterStatus->ScanLine = 0;
-    /* No openGL equivalent */
+    /* No OpenGL equivalent */
     if (!warned)
     {
         FIXME("iface %p, raster_status %p stub!\n", iface, pRasterStatus);
         warned = TRUE;
     }
-    return WINED3D_OK;
+    /* Obtaining the raster status is a widely implemented but optional feature.
+     * When this method returns OK then the application Starcraft 2 expects that
+     * the pRasterStatus->InVBlank value differs over time. To prevent Starcraft 2
+     * from running in an infinite loop at startup this method returns INVALIDCALL.
+     */
+    return WINED3DERR_INVALIDCALL;
 }
 
 HRESULT WINAPI IWineD3DBaseSwapChainImpl_GetDisplayMode(IWineD3DSwapChain *iface, WINED3DDISPLAYMODE*pMode) {




More information about the wine-cvs mailing list