ddraw: fix transparent Blits on 8bit surfaces
Peter Beutner
p.beutner at gmx.net
Sat Feb 25 06:34:52 CST 2006
There are no red/green/blue bitmasks with color depth==8bpp. In that case always
match against the whole byte.
---
dlls/ddraw/surface_dib.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
6cb08e7cef84facd5a2654a1fb4e0171f60a2d29
diff --git a/dlls/ddraw/surface_dib.c b/dlls/ddraw/surface_dib.c
index f7b8073..55bdf20 100644
--- a/dlls/ddraw/surface_dib.c
+++ b/dlls/ddraw/surface_dib.c
@@ -849,7 +849,13 @@ DIB_DirectDrawSurface_Blt(LPDIRECTDRAWSU
keylow = lpbltfx->ddckDestColorkey.dwColorSpaceLowValue;
keyhigh = lpbltfx->ddckDestColorkey.dwColorSpaceHighValue;
}
- keymask = sdesc.u4.ddpfPixelFormat.u2.dwRBitMask | sdesc.u4.ddpfPixelFormat.u3.dwGBitMask | sdesc.u4.ddpfPixelFormat.u4.dwBBitMask;
+
+ if(bpp == 1)
+ keymask = 0xff;
+ else
+ keymask = sdesc.u4.ddpfPixelFormat.u2.dwRBitMask | sdesc.u4.ddpfPixelFormat.u3.dwGBitMask |
+ sdesc.u4.ddpfPixelFormat.u4.dwBBitMask;
+
dwFlags &= ~(DDBLT_KEYSRC | DDBLT_KEYDEST | DDBLT_KEYSRCOVERRIDE | DDBLT_KEYDESTOVERRIDE);
}
--
1.2.0
More information about the wine-patches
mailing list