From caf9ad6c2ca60c50492ab1218428e08702899819 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Fri, 22 Nov 2013 16:22:16 +0100 Subject: [PATCH] wined3d: Swap the container's texture name in flip_surface(). --- dlls/wined3d/surface.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 6f6b5de7200..f456bb99f1d 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -3997,6 +3997,10 @@ static HRESULT d3dfmt_convert_surface(const BYTE *src, BYTE *dst, UINT pitch, UI void flip_surface(struct wined3d_surface *front, struct wined3d_surface *back) { + if (front->container->level_count != 1 || front->container->layer_count != 1 + || back->container->level_count != 1 || back->container->layer_count != 1) + ERR("Flip between surfaces %p and %p not supported.\n", front, back); + /* Flip the surface contents */ /* Flip the DC */ { @@ -4041,6 +4045,14 @@ void flip_surface(struct wined3d_surface *front, struct wined3d_surface *back) { GLuint tmp; + tmp = back->container->texture_rgb.name; + back->container->texture_rgb.name = front->container->texture_rgb.name; + front->container->texture_rgb.name = tmp; + + tmp = back->container->texture_srgb.name; + back->container->texture_srgb.name = front->container->texture_srgb.name; + front->container->texture_srgb.name = tmp; + tmp = back->rb_multisample; back->rb_multisample = front->rb_multisample; front->rb_multisample = tmp;