wined3d: Only translate coordinates for swapchain surfaces in surface_translate_drawable_coords().
This fixes a regression introduced by commit
dbd8c89ea8
. When using ORM_BACKBUFFER,
off-screen surfaces may be loaded into WINED3D_LOCATION_DRAWABLE. They
shouldn't be flipped in that case.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d371468858
commit
e091c6e81c
|
@ -1911,27 +1911,22 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st
|
||||||
void surface_translate_drawable_coords(const struct wined3d_surface *surface, HWND window, RECT *rect)
|
void surface_translate_drawable_coords(const struct wined3d_surface *surface, HWND window, RECT *rect)
|
||||||
{
|
{
|
||||||
struct wined3d_texture *texture = surface->container;
|
struct wined3d_texture *texture = surface->container;
|
||||||
|
POINT offset = {0, 0};
|
||||||
UINT drawable_height;
|
UINT drawable_height;
|
||||||
|
RECT windowsize;
|
||||||
|
|
||||||
if (texture->swapchain)
|
if (!texture->swapchain)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (texture == texture->swapchain->front_buffer)
|
||||||
{
|
{
|
||||||
POINT offset = {0, 0};
|
ScreenToClient(window, &offset);
|
||||||
RECT windowsize;
|
OffsetRect(rect, offset.x, offset.y);
|
||||||
|
|
||||||
if (texture == texture->swapchain->front_buffer)
|
|
||||||
{
|
|
||||||
ScreenToClient(window, &offset);
|
|
||||||
OffsetRect(rect, offset.x, offset.y);
|
|
||||||
}
|
|
||||||
|
|
||||||
GetClientRect(window, &windowsize);
|
|
||||||
drawable_height = windowsize.bottom - windowsize.top;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
drawable_height = wined3d_texture_get_level_height(texture, surface->texture_level);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GetClientRect(window, &windowsize);
|
||||||
|
drawable_height = windowsize.bottom - windowsize.top;
|
||||||
|
|
||||||
rect->top = drawable_height - rect->top;
|
rect->top = drawable_height - rect->top;
|
||||||
rect->bottom = drawable_height - rect->bottom;
|
rect->bottom = drawable_height - rect->bottom;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue