[PATCH 1/1] wined3d: Let GetRasterStatus return D3DERR_INVALIDCALL.
Florian Köberle
florian at fkoeberle.de
Sun Jul 18 02:26:51 CDT 2010
---
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..6041e35 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) {
--
1.7.0.4
More information about the wine-patches
mailing list