From 2c1e8decfca4845569f871c29bc7d2adba285fd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20K=C3=B6berle?= Date: Sun, 18 Jul 2010 09:26:51 +0200 Subject: [PATCH] wined3d: Let GetRasterStatus return D3DERR_INVALIDCALL. --- dlls/wined3d/swapchain_base.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dlls/wined3d/swapchain_base.c b/dlls/wined3d/swapchain_base.c index 1817de2079a..3520a413632 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) {