reactos/reactos/subsystems/win32/win32k/ntuser
Timo Kreuzer 351632de29 XLATEOBJ rewrite.
The new XLATEOBJ is not allocated from paged pool anymore, but instead allocated on the stack and Initialized. Only when we habe more than a color table with more than 6 entries, we need to allocate an additional buffer. The new interface: EXLATEOBJ_vInitialize is the main init function. It takes a source and destination palette and back and fore colors for monochome surfaces. EXLATEOBJ_vInitXlateFromDCs
takes the source and dest DC and is for color translation between 2 surfaces represented by 2 DCs. EXLATEOBJ_vInitBrushXlate initializes an XLATEOBJ for a pattern brush. Finally EXLATEOBJ_vCleanup needs to be called when the XLATEOBJ is not needed anymore. Implement individual iXlate functions for certain cases and store a function pointer in the EXLATEOBJ structure for quick access.
Change the usage of the PALETTE.Mode member to be a flag instead of an enum, add usage of PAL_MONOCHOME, PAL_RGB16_555 and PAL_RGB16_565. Add gpalMono, which *should* be used as palette for 1bpp DDBs. Currently there's a hack in the XLATEOBJ init code, to hack around the fact that this is missing. Fix the Hatch brush patterns, as they were inverted. Implement PALETTE_ulGetNearestBitFieldsIndex and PALETTE_ulGetNearestIndex. Get rid of the XLATEOBJ for the mouse pointer instead realize the pointer before usage.
Get rid of logicalToSystem PALETTE member. NtGdiGetDIBitsInternal: Don't create a DIBBrush from the BITMAPINFO, when pvBits is NULL, as the function might be uninitualized. This fixes a crash of gdi_regtest. The whole function is quite ugly and needs to be rewritten (like probably the rest of the DIB code). This fixes the problem of artifacts in the selected desktop icons and some color problems.

svn path=/trunk/; revision=42391
2009-08-04 20:37:10 +00:00
..
accelerator.c - Fix NtUserCopyAcceleratorTable and NtUserCreateAcceleratorTable (ported from Wine). This is fixed 5 wine resources tests 2009-01-08 19:35:29 +00:00
callback.c - [Win32k] Update class and window structures. 2009-07-22 04:11:06 +00:00
callproc.c - [Win32k] Moving forward and replace some of the old header types with the new ones. This will continue and start the win32k object manager rewrite. Finding more bugs and this is still a work in progress. Run across the C_ASSERT bug. I see someone else noticed it. 2009-07-26 01:59:08 +00:00
caret.c - Use system wide caret width and height if one of those parameters is zero 2009-07-31 17:11:21 +00:00
class.c - [Win32k] More Class work. Moved to use thread and process information structures. 2009-07-26 16:17:50 +00:00
clipboard.c - IntEmptyClipboardData: Check before freeing a potential null pointer 2009-05-27 16:39:24 +00:00
csr.c This actually used to work due to the work csrss does setting up low memory 2009-01-16 21:03:10 +00:00
cursoricon.c - [Win32k] More Class work. Moved to use thread and process information structures. 2009-07-26 16:17:50 +00:00
defwnd.c - [Win32k] Rename class and window structures. 2009-07-22 05:23:08 +00:00
desktop.c - [Win32k] More Class work. Moved to use thread and process information structures. 2009-07-26 16:17:50 +00:00
display.c modified include/reactos/probe.h 2008-11-30 19:28:11 +00:00
event.c - Fixed event code. Remove junk too. 2009-07-26 12:27:15 +00:00
focus.c - [Win32k] Rename class and window structures. 2009-07-22 05:23:08 +00:00
guicheck.c - [Win32k] More Class work. Moved to use thread and process information structures. 2009-07-26 16:17:50 +00:00
hook.c - [Win32k] Moving forward and replace some of the old header types with the new ones. This will continue and start the win32k object manager rewrite. Finding more bugs and this is still a work in progress. Run across the C_ASSERT bug. I see someone else noticed it. 2009-07-26 01:59:08 +00:00
hotkey.c - Less STDCALL, more WINAPI/NTAPI/APIENTRY 2008-11-29 22:48:58 +00:00
input.c - [Win32k] Update window structure. 2009-07-20 23:18:16 +00:00
kbdlayout.c modified include/reactos/probe.h 2008-11-30 19:28:11 +00:00
keyboard.c - Fix NtUserVkKeyScanEx to support current thread keyboard layout or use the one provided by handle. See bug report 4269 and the related bug report 4272. 2009-05-22 01:35:48 +00:00
menu.c - delayimp.h: Use FORCEINLINE instead of static __inline__ 2009-07-31 18:21:24 +00:00
message.c - [Win32k] More Class work. Moved to use thread and process information structures. 2009-07-26 16:17:50 +00:00
metric.c Update SERVERINFO, PFNCLIENT, PFNCLIENTWORKER to Windows 7 version, add OEMBITMAPINFO, DPISERVERINFO, PERUSERSERVERINFO 2009-06-27 23:33:57 +00:00
misc.c - [Win32k] More Class work. Moved to use thread and process information structures. 2009-07-26 16:17:50 +00:00
monitor.c - [Win32k] Update window structure. 2009-07-20 23:18:16 +00:00
msgqueue.c - [Win32k] More Class work. Moved to use thread and process information structures. 2009-07-26 16:17:50 +00:00
ntstubs.c - delayimp.h: Use FORCEINLINE instead of static __inline__ 2009-07-31 18:21:24 +00:00
ntuser.c - [Win32k] More work on classes. Wine test drop to 35 failures from 52, now with the system class rewrite it is up to 42 failures. There is one User32 loaded so there is one User client Instance for this system. One System class per system not including Public (Global) or Private (Local) classes per process. Sorting continues. 2009-07-23 01:34:31 +00:00
object.c - [Win32k] Moving forward and replace some of the old header types with the new ones. This will continue and start the win32k object manager rewrite. Finding more bugs and this is still a work in progress. Run across the C_ASSERT bug. I see someone else noticed it. 2009-07-26 01:59:08 +00:00
painting.c - [Win32k] Rename class and window structures. 2009-07-22 05:23:08 +00:00
prop.c - [Win32k] Update class and window structures. 2009-07-22 04:11:06 +00:00
scrollbar.c - [Win32k] Rename class and window structures. 2009-07-22 05:23:08 +00:00
session.c
simplecall.c - [Win32k] More Class work. Moved to use thread and process information structures. 2009-07-26 16:17:50 +00:00
sysparams.c Update SERVERINFO, PFNCLIENT, PFNCLIENTWORKER to Windows 7 version, add OEMBITMAPINFO, DPISERVERINFO, PERUSERSERVERINFO 2009-06-27 23:33:57 +00:00
timer.c - Use PWINDOW_OBJECT instead HWND in PostTimerMessages, IntGetPaintMessage, co_MsqTranslateMouseMessage, co_MsqPeekHardwareMessage, co_MsqFindMessage, co_MsqWaitForNewMessages, MsqGetTimerMessage, MsqGetFirstTimerExpiry, co_IntPeekMessage 2009-07-03 09:37:44 +00:00
useratom.c - Implement support function adding global atoms in win32k. 2009-06-30 19:12:02 +00:00
vis.c - [Win32k] Rename class and window structures. 2009-07-22 05:23:08 +00:00
windc.c XLATEOBJ rewrite. 2009-08-04 20:37:10 +00:00
window.c - [Win32k] More Class work. Moved to use thread and process information structures. 2009-07-26 16:17:50 +00:00
winpos.c - [Win32k] Rename class and window structures. 2009-07-22 05:23:08 +00:00
winsta.c - Don't assume the object body allocated by ObCreateObject (through ObpAllocateObject) is zero-initialized (it shouldn't be). 2009-07-15 16:13:08 +00:00