[PATCH 1/5] wined3d: Don't apply fixups to converted surfaces.

Henri Verbeet hverbeet at codeweavers.com
Thu Nov 24 15:52:32 CST 2011


---
 dlls/wined3d/arb_program_shader.c |    9 +++++++++
 dlls/wined3d/surface.c            |    3 ++-
 2 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 451d34a..b2fa29c 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -7137,6 +7137,15 @@ static HRESULT arbfp_blit_set(void *blit_priv, struct wined3d_context *context,
     GLenum textype = surface->texture_target;
     const struct wined3d_gl_info *gl_info = context->gl_info;
 
+    if (surface->flags & SFLAG_CONVERTED)
+    {
+        ENTER_GL();
+        glEnable(textype);
+        checkGLcall("glEnable(textype)");
+        LEAVE_GL();
+        return WINED3D_OK;
+    }
+
     if (!is_complex_fixup(surface->resource.format->color_fixup))
     {
         TRACE("Fixup:\n");
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 865f83e..4c9cc84 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -6229,7 +6229,8 @@ static HRESULT ffp_blit_set(void *blit_priv, struct wined3d_context *context, co
     /* When EXT_PALETTED_TEXTURE is around, palette conversion is done by the GPU
      * else the surface is converted in software at upload time in LoadLocation.
      */
-    if(fixup == COMPLEX_FIXUP_P8 && context->gl_info->supported[EXT_PALETTED_TEXTURE])
+    if (!(surface->flags & SFLAG_CONVERTED) && fixup == COMPLEX_FIXUP_P8
+            && context->gl_info->supported[EXT_PALETTED_TEXTURE])
         ffp_blit_p8_upload_palette(surface, context->gl_info);
 
     ENTER_GL();
-- 
1.7.3.4




More information about the wine-patches mailing list