Module: wine Branch: master Commit: 29b38bc886c81aef906594c1c75974eb4aad155b URL: http://source.winehq.org/git/wine.git/?a=commit;h=29b38bc886c81aef906594c1c7...
Author: Alexander Dorofeyev alexd4@inbox.lv Date: Mon Apr 7 00:05:48 2008 +0300
wined3d: Implement CONVERT_RGB32_888 conversion.
---
dlls/wined3d/surface.c | 23 +++++++++++++++++++++++ 1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index ddd0f32..8190a15 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -1799,6 +1799,29 @@ HRESULT d3dfmt_convert_surface(BYTE *src, BYTE *dst, UINT pitch, UINT width, UIN } break;
+ case CONVERT_RGB32_888: + { + /* Converting X8R8G8B8 format to R8G8B8A8 with color-keying. */ + unsigned int x, y; + for (y = 0; y < height; y++) + { + source = src + pitch * y; + dest = dst + outpitch * y; + for (x = 0; x < width; x++) { + DWORD color = 0xffffff & *(DWORD*)source; + DWORD dstcolor = color << 8; + if ((color < This->SrcBltCKey.dwColorSpaceLowValue) || + (color > This->SrcBltCKey.dwColorSpaceHighValue)) { + dstcolor |= 0xff; + } + *(DWORD*)dest = dstcolor; + source += 4; + dest += 4; + } + } + } + break; + case CONVERT_V8U8: { unsigned int x, y;