[WIN32K]
authorJérôme Gardou <jerome.gardou@reactos.org>
Tue, 1 Mar 2011 01:03:58 +0000 (01:03 +0000)
committerJérôme Gardou <jerome.gardou@reactos.org>
Tue, 1 Mar 2011 01:03:58 +0000 (01:03 +0000)
commit1ea8829ec1280cb242ed4c34f542b841df0c3278
treefef543c32a9f15fcc40444f54df384cca5c2c1b6
parent56cfac043d842eb34ee9954143fabf8f9f0e3059
[WIN32K]
  - Raster operations in user mode are on higher bytes, whereas they are on lower bytes for drivers. Try to clarify this situation.
  - Add sanity check about what was said previously.
  - Implement masking in EngBitBlt
  - Rewrite NtGdiMaskBlt accordingly
  - Realize the palette when selecting it into a device DC.
  - When applying raster operation, do so only on 24 bits, we don't support alpha channel in win32k
This fixes VLC pink icons, Timo's MaskBlt tests and probably a lot of other things.
[SHELL32]
  - Use correct (?) raster operations for drawing sjortcuts.
Also note that now NtGdiMaskBlt locks the device contexts : this should avoid some race conditions, such as icons drawn on top of windows and the like.
Win32k sucks less.
So does reactos.
Dedicated to Timo. Sleep well, mate.

svn path=/trunk/; revision=50941
20 files changed:
reactos/dll/win32/shell32/iconcache.c
reactos/subsystems/win32/win32k/dib/dib.c
reactos/subsystems/win32/win32k/dib/dib.h
reactos/subsystems/win32/win32k/dib/dib1bpp.c
reactos/subsystems/win32/win32k/dib/stretchblt.c
reactos/subsystems/win32/win32k/eng/bitblt.c
reactos/subsystems/win32/win32k/eng/copybits.c
reactos/subsystems/win32/win32k/eng/mouse.c
reactos/subsystems/win32/win32k/eng/stretchblt.c
reactos/subsystems/win32/win32k/include/color.h
reactos/subsystems/win32/win32k/include/inteng.h
reactos/subsystems/win32/win32k/ntuser/painting.c
reactos/subsystems/win32/win32k/objects/bitblt.c
reactos/subsystems/win32/win32k/objects/dcobjs.c
reactos/subsystems/win32/win32k/objects/dibobj.c
reactos/subsystems/win32/win32k/objects/drawing.c
reactos/subsystems/win32/win32k/objects/fillshap.c
reactos/subsystems/win32/win32k/objects/freetype.c
reactos/subsystems/win32/win32k/objects/palette.c
reactos/subsystems/win32/win32k/objects/polyfill.c