Module: wine Branch: master Commit: 24775459c8892b8e92f42ac9a66946f50b0b1190 URL: http://source.winehq.org/git/wine.git/?a=commit;h=24775459c8892b8e92f42ac9a6...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Nov 24 22:52:32 2011 +0100
wined3d: Don't apply fixups to converted surfaces.
---
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();