From 1bcd6e45080063ab9396506efb9cd5ad914c251e Mon Sep 17 00:00:00 2001 From: Alexander Dorofeyev Date: Wed, 3 Sep 2008 23:59:53 +0300 Subject: [PATCH] wined3d: Get rid of gl buffer variable in BltOverride. Uses This == dstSwapchain->frontBuffer instead as suggested by Henri Verbeet. --- dlls/wined3d/surface.c | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 31cb368b8fa..99379ddf939 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -3368,7 +3368,6 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT * WINEDDCOLORKEY oldBltCKey = Src->SrcBltCKey; RECT SourceRectangle; BOOL paletteOverride = FALSE; - GLenum buffer; TRACE("Blt from surface %p to rendertarget %p\n", Src, This); @@ -3442,29 +3441,16 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT * /* Activate the destination context, set it up for blitting */ ActivateContext(myDevice, (IWineD3DSurface *) This, CTXUSAGE_BLIT); - if(!dstSwapchain) { - TRACE("Drawing to offscreen buffer\n"); - buffer = myDevice->offscreenBuffer; - } else { - buffer = surface_get_gl_buffer((IWineD3DSurface *)This, (IWineD3DSwapChain *)dstSwapchain); - - /* Front buffer coordinates are screen coordinates, while OpenGL coordinates are - * window relative. Also beware of the origin difference(top left vs bottom left). - * Also beware that the front buffer's surface size is screen width x screen height, - * whereas the real gl drawable size is the size of the window. - */ - if(buffer == GL_FRONT) { - RECT windowsize; - POINT offset = {0,0}; - UINT h; - ClientToScreen(dstSwapchain->win_handle, &offset); - GetClientRect(dstSwapchain->win_handle, &windowsize); - h = windowsize.bottom - windowsize.top; - rect.x1 -= offset.x; rect.x2 -=offset.x; - rect.y1 -= offset.y; rect.y2 -=offset.y; - rect.y1 += This->currentDesc.Height - h; rect.y2 += This->currentDesc.Height - h; - } - TRACE("Drawing to %#x buffer\n", buffer); + if (dstSwapchain && (IWineD3DSurface *)This == dstSwapchain->frontBuffer) { + RECT windowsize; + POINT offset = {0,0}; + UINT h; + ClientToScreen(dstSwapchain->win_handle, &offset); + GetClientRect(dstSwapchain->win_handle, &windowsize); + h = windowsize.bottom - windowsize.top; + rect.x1 -= offset.x; rect.x2 -=offset.x; + rect.y1 -= offset.y; rect.y2 -=offset.y; + rect.y1 += This->currentDesc.Height - h; rect.y2 += This->currentDesc.Height - h; } ENTER_GL(); -- 2.11.4.GIT