wined3d: Get rid of gl buffer variable in BltOverride.

Uses This == dstSwapchain->frontBuffer instead as suggested by Henri Verbeet.
This commit is contained in:
Alexander Dorofeyev 2008-09-03 23:59:53 +03:00 committed by Alexandre Julliard
parent 7c38816819
commit 1bcd6e4508
1 changed files with 10 additions and 24 deletions

View File

@ -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();