wined3d: Get rid of gl buffer variable in BltOverride.
Uses This == dstSwapchain->frontBuffer instead as suggested by Henri Verbeet.
This commit is contained in:
parent
7c38816819
commit
1bcd6e4508
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue