From 7579a96ac1bb91db154ae3b4cadfc6f232a35856 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Wed, 1 Oct 2014 09:18:59 +0200 Subject: [PATCH] wined3d: Convert to WINED3DFMT_B8G8R8A8_UNORM for WINED3D_CT_CK_B8G8R8. --- dlls/wined3d/surface.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 2ee3db1c4b2..73b872f6b25 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -1606,7 +1606,7 @@ static void d3dfmt_get_conv(const struct wined3d_texture *texture, BOOL need_alp { {WINED3DFMT_B5G6R5_UNORM, WINED3D_CT_CK_B5G6R5, GL_RGB5_A1, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV, 2}, {WINED3DFMT_B5G5R5X1_UNORM, WINED3D_CT_CK_B5G5R5X1, GL_RGB5_A1, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV, 2}, - {WINED3DFMT_B8G8R8_UNORM, WINED3D_CT_CK_B8G8R8, GL_RGBA8, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, 4}, + {WINED3DFMT_B8G8R8_UNORM, WINED3D_CT_CK_B8G8R8, GL_RGBA8, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, 4}, {WINED3DFMT_B8G8R8X8_UNORM, WINED3D_CT_CK_B8G8R8X8, GL_RGBA8, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, 4}, {WINED3DFMT_B8G8R8A8_UNORM, WINED3D_CT_CK_B8G8R8A8, GL_RGBA8, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, 4}, }; @@ -3247,17 +3247,16 @@ static HRESULT d3dfmt_convert_surface(const BYTE *src, BYTE *dst, UINT pitch, UI break; case WINED3D_CT_CK_B8G8R8: - /* Converting R8G8B8 format to R8G8B8A8 with color-keying. */ - for (y = 0; y < height; y++) + for (y = 0; y < height; ++y) { source = src + pitch * y; dest = dst + outpitch * y; - for (x = 0; x < width; x++) { - DWORD color = ((DWORD)source[0] << 16) + ((DWORD)source[1] << 8) + (DWORD)source[2] ; - DWORD dstcolor = color << 8; + for (x = 0; x < width; ++x) + { + DWORD color = ((DWORD)source[2] << 16) | ((DWORD)source[1] << 8) | (DWORD)source[0]; if (!color_in_range(&surface->container->src_blt_color_key, color)) - dstcolor |= 0xff; - *(DWORD*)dest = dstcolor; + color |= 0xff000000; + *(DWORD *)dest = color; source += 3; dest += 4; }