Difference between revisions of "Win32k.sys"

From ReactOS Wiki
Jump to: navigation, search
m
m (ChangeLog-0.2.3)
Line 247: Line 247:
 
*Fixed IntGdiExtEscape ([[Anich Gregor]])
 
*Fixed IntGdiExtEscape ([[Anich Gregor]])
 
*Initialized the win32k timer as SynchronizationTimer ([[Hartmut Birr]])
 
*Initialized the win32k timer as SynchronizationTimer ([[Hartmut Birr]])
 +
 +
[[ChangeLog-0.2.3]]
 +
 +
*Fixed the access to an uninitialized variable in IntCreateClass ([[Hartmut Birr]])
 +
*Convert between RGBQUAD and PALETTEENTRY ([[Ge van Geldorp]])
 +
*Handle RLE bottom-up dibs ([[Ge van Geldorp]])
 +
*Fixed NtUserDestroyWindow to correctly destroy owned windows. Fixes bugs #342 and #350 ([[Filip Navara]])
 +
*Activate window on non-client click too ([[Ge van Geldorp]])
 +
*Don't activate invisible windows ([[Ge van Geldorp]])
 +
*Prefer non-topmost windows when activating another window ([[Ge van Geldorp]])
 +
*Call the "load default cursor" callback. Fixes bug #358 ([[Filip Navara]])
 +
*Allocate memory from PagedPool instead of NonPagedPool where possible ([[Filip Navara]])
 +
*Backported font initialization code with fixed memory leaks from my unfinished font handling rewrite patch ([[Filip Navara]])
 +
*Don't change DC origin in NtGdiOffsetViewportOrgEx ([[Filip Navara]])
 +
*Update transformation matrix in NtGdiSetViewportExtEx, NtGdiSetWindowExtEx, NtGdiSetWindowOrgEx, NtGdiOffsetWindowOrgEx ([[Filip Navara]])
 +
*When creating new DC initialize the Viewport/Window extensions ([[Filip Navara]])
 +
*Transform logical coordinates to device ones in NtGdiExtTextOut and NtGdiLineTo ([[Filip Navara]])
 +
*Marshall WM_CREATE/WM_NCCREATE messages ([[Ge van Geldorp]])
 +
*Set MaximumLength to size of allocated memory ([[Ge van Geldorp]])
 +
*Update trasformation matrix in SetViewportOrgEx ([[Filip Navara]])
 +
*Fixed NtUserDestroyWindow to correctly destroy owned windows. Fixes bugs #342 and #350 ([[Filip Navara]])
 +
*Little GDI speed improvements ([[Thomas Weidenmueller]])
 +
*Fixed missing class dereferencings and store a list of windows in the class object ([[Thomas Weidenmueller]])
 +
*Eliminate unnecessary multiplications in the inner loops of *DIB_1BPP_BitBltSrcCopy_From1BPP ([[Royce Mitchel III]])
 +
*Fixed unicode string copying bug in NtGdiAddFontResource ([[Filip Navara]])
 +
*Prepend "\\??\" to the file name in NtGdiAddFontResource ([[Filip Navara]])
 +
*Prevent unnecessary code where count is zero in NtGdiExtTextOut ([[Jason Filby]])
 +
*Work on clipboard ([[Pablo Borobia]])
 +
*Support for window-less hotkeys ([[Filip Navara]])
 +
*Send hotkeys even if there's no focus window ([[Filip Navara]])
 +
*Fixed returning uninitialized variable in NtGdiSelectVisRgn() and NtGdiExtSelectClipRgn() ([[Thomas Weidenmueller]])
 +
*Prevent memory leaks if callbacks to usermode never return ([[Thomas Weidenmueller]])
 +
*Disable NtGdiRealizePalette. It has a lot of bugs and really doesn't do any of the work it should do ([[Filip Navara]])
 +
*Safe parameter handling for PolyPolygonRgn() and PolygonRgn() ([[Thomas Weidenmueller]])
 +
*Fixed memory leak ([[Thomas Weidenmueller]])
 +
*Ported CreatePolyPolygonRgn() and CreatePolygonRgn() from wine ([[Thomas Weidenmueller]])
 +
*Use FASTCALL calling convention for internal routines ([[Thomas Weidenmueller]])
 +
*Attempt to fix handling of timed out sending of messages to be thread-safe ([[Thomas Weidenmueller]])
 +
*Fixed RegisterWindowMessage() ([[Thomas Weidenmueller]])
 +
*Set proper lasterror code in RegisterWindowMessage() ([[Thomas Weidenmueller]])
 +
*Fixed message timeout crash, caused by inserting dispatching messages into the wrong dispatching list ([[Thomas Weidenmueller]])
 +
*Implemented DisableProcessWindowsGhosting() (window ghosting is not yet implemented though) ([[Thomas Weidenmueller]])
 +
*Fixed cut & paste error in NtGdiGetDIBColorTable and NtGdiSetDIBColorTable ([[Filip Navara]])
 +
*Fixed implementation of DIB_MapPaletteColors. It shoud take palette from DC and the index array is of type PUSHORT, not PULONG ([[Filip Navara]])
 +
*Eng memory test ([[Jason Filby]])
 +
*Replaced UnsafeIntCreateRectRgnIndirect() and UnsafeIntUnionRectWithRgn() with macros to directly call the appropriate function ([[Thomas Weidenmueller]])
 +
*Fixed dereferencing bug ([[Thomas Weidenmueller]])
 +
*Fixed missing dereferencing of threads in PostThreadMessage() ([[Thomas Weidenmueller]])
 +
*Window Class handling fixes ([[Filip Navara]])
 +
*Don't use object that's already unlocked ([[Filip Navara]])
 +
*Fixed implementation of NtGdiGetNearestColor ([[Filip Navara]])
 +
*Changed cursors/icons to use the window station handle table ([[Thomas Weidenmueller]])
 +
*Implement complex clipping for StretchBlt ([[Ge van Geldorp]])
 +
*Only split update region into client and non-client parts if there actually is something to split ([[Ge van Geldorp]])
 +
*New implementation of GetDIBColorTable and SetDIBColorTable ([[Filip Navara]])
 +
*Use NtGdiBitBlt in NtGdiStretchDIBits if source and destination dimensions are equal ([[Filip Navara]])
 +
*Don't modify Msg's pt for mouse messages. It's supposed to be always in screen coordinates, not it client coordinates ([[Filip Navara]])
 +
*Check for the WS_CLIPSIBLINGS flag on the correct window ([[Filip Navara]])
 +
*Modify DPRINTs to print window styles in hexadecimal notation ([[Filip Navara]])
 +
*Fix ExtSelectClipRgn and some other clipping functions ([[Filip Navara]])
 +
*NtGdiCreateRectRgn should accept negative width and height. It's supposed to be handled just like in NtGdiSetRectRgn ([[Filip Navara]])
 +
*Don't pass garbage to RtlQueryAtomInAtomTable ([[Filip Navara]])
 +
*Force recalulation size of menu items when new item is added ([[Filip Navara]])
 +
*Make MDI injected icons working ([[Filip Navara]])
 +
*Minor corrections to menu code size handling ([[Filip Navara]])
 +
*Make WinPosSearchChildren more readable ([[Filip Navara]])
 +
*Allow caller to continue after NtUserOpenClipboard() ([[Ge van Geldorp]])
 +
*Fix scrollbar controls ([[Ge van Geldorp]])
 +
*GetWindowInfo() doesn't check the cbSize parameter ([[Thomas Weidenmueller]])
 +
*Regression-test enable win32k ([[Casper Hornstrup]])
 +
*Use a common header for most files in win32k to make use of precompiled headers ([[Thomas Weidenmueller]])
 +
*Properly handle HTTRANSPARENT hittest with mouse messages ([[Thomas Weidenmueller]])
 +
*Rewrote NtUserBuildHwndList() ([[Thomas Weidenmueller]])
 +
*Fixed GetThreadDesktop() (not fully working yet because it requires a ObFindHandleForObject() implementation in case the requested thread doesn't belong to the calling process) ([[Thomas Weidenmueller]])
 +
*Assign even more styles for overlapped windows ([[Thomas Weidenmueller]])
 +
*Handle WM_SETCUROR messages for the desktop window ([[Thomas Weidenmueller]])
 +
*Implemented IsWindowInDestroy() ([[Thomas Weidenmueller]])
 +
*Handle MENUITEMINFOW compiled with _WIN32_WINNT less than 0x0500 (MENUITEMINFOW) ([[Ge van Geldorp]])
 +
*Support the WS_EX_LEFTSCROLLBAR ([[Thomas Weidenmueller]])
 +
*Implemented RegisterLogonProcess(), LockWindowStation() and UnlockWindowStation() ([[Thomas Weidenmueller]])
 +
*Implemented LockWindowStation() and UnlockWindowStation() ([[Thomas Weidenmueller]])
 +
*Implemented AnyPopup() ([[Thomas Weidenmueller]])
 +
*Fixed brush origin ([[Thomas Weidenmueller]])
 +
*Use SendInput() to send mouse input data ([[Thomas Weidenmueller]])
 +
*Avoid potencial access violation ([[Filip Navara]])
 +
*Add ASSERT for a palette size ([[Filip Navara]])
 +
*Fix mouse clipping ([[Thomas Weidenmueller]])
 +
*Setup the cursor in the middle of the screen ([[Thomas Weidenmueller]])
 +
*Use only LSBit for 1bpp putpixel ([[Ge van Geldorp]])
 +
*Changed SetCursorPos() to use SendInput() ([[Thomas Weidenmueller]])
 +
*Fixed DrawFocusRect() to use values from SPI_GETFOCUSBORDERWIDTH/HEIGHT ([[Thomas Weidenmueller]])
 +
*Fixed NtGdiPtVisible() ([[Thomas Weidenmueller]])
 +
*Simplified handling of palettes selected into device contexts. Now DC's w.hPalette should always point to palette object and shoudn't be NULL ([[Filip Navara]])
 +
*Fixed bitfield conversion when creating Color's Mono XLATEOBJs. Fixes bug #275.
 +
*Implemented keybd_event(), mouse_event(), BlockInput() and SendInput() - the server side however isn't implemented yet ([[Thomas Weidenmueller]])
 +
*Don't crash if no thread desktop set ([[Thomas Weidenmueller]])
 +
*Implement DDE Execute ([[Ge van Geldorp]])
 +
*Return NULL only in error case ([[Ge van Geldorp]])
 +
*Implemented GetCurrentObject() ([[Thomas Weidenmueller]])
 +
*Implemented PtVisible() ([[Thomas Weidenmueller]])
 +
*Implemented ExcludeClipRect() ([[Thomas Weidenmueller]])
 +
*Implemented ExtSelectClipRgn() ([[Thomas Weidenmueller]])
 +
*Implemented GetDCBrushColor(), SetDCBrushColor(), GetDCPenColor() and SetDCPenColor() ([[Thomas Weidenmueller]])
 +
*Implemented hatched brushes ([[Thomas Weidenmueller]])
 +
*Fixed memory leak when deleting patterned brushes ([[Thomas Weidenmueller]])
 +
*Use brush origin in dib code ([[Thomas Weidenmueller]])
 +
*Set proper errorcode in some functions ([[Thomas Weidenmueller]])
 +
*Fixed missing window dereferences and a minor thread-safety bug ([[Thomas Weidenmueller]])
 +
*Fixed some scrollbar issues ([[Thomas Weidenmueller]])
 +
*Implemented InvertRgn() ([[Thomas Weidenmueller]])
 +
*Fixed some error cases ([[Thomas Weidenmueller]])
 +
*Proper implementation of FrameRgn() ([[Thomas Weidenmueller]])
 +
*Small windowbar sizing fix for WS_EX_TOOLWINDOW ([[Thomas Weidenmueller]], Masahiro Taguchi)
 +
*Move SendMessage calls out of the message queue processing code ([[Thomas Weidenmueller]])
 +
*Fixed translation of coordinates calculation in different thread states ([[Thomas Weidenmueller]])
 +
*Proper implementation of Set/GetWindowText/Length() ([[Thomas Weidenmueller]])
 +
*Properly remove mousemove messages ([[Thomas Weidenmueller]])
 +
*Post focus messages to different threads ([[Thomas Weidenmueller]])
 +
*Properly free unicode string ([[Thomas Weidenmueller]])
 +
*Fixed crashes caused by an invalid pointer ([[Thomas Weidenmueller]])
 +
*Fixed implementation of ChildWindowFromPointEx() ([[Thomas Weidenmueller]])
 +
*Fixed major bugs in the message queue ([[Thomas Weidenmueller]])
 +
*Treat WM_NCMOUSEMOVE message as WM_MOUSEMOVE messages ([[Thomas Weidenmueller]])
 +
*Rewrote NtUserFindWindowEx() so it works as it's supposed to ([[Thomas Weidenmueller]])
 +
*Better handling of invalid strings in IntSafeCopyUnicodeString() ([[Thomas Weidenmueller]])
 +
*Compile Win32k using W32API [Part II]: ([[Filip Navara]])
 +
*Compensate BrushOrigin for translation ([[Ge van Geldorp]])
 +
*Handle the case where no BrushOrigin is given ([[Thomas Weidenmueller]])
 +
*Handle the case where no BrushOrigin is given even under EngStretchBlt and EngMaskBitBlt ([[Filip Navara]])
 +
*Implement NULL module case for EngFindImageProcAddress ([[Ge van Geldorp]])
 +
*Add stubs for EngFindImageProcAddress()able not present yet ([[Ge van Geldorp]])

Revision as of 07:40, 6 March 2012

See Arwinss page for the alternative win32 subsystem implementation effort.

See also Win32k_design_guideline

http://en.wikipedia.org/wiki/Windows_API#Overview

The Graphics Device Interface Provides functionality for outputting graphical content to monitors, printers and other output devices. It resides in gdi.exe on 16-bit Windows, and gdi32.dll on 32-bit Windows in user-mode. Kernel-mode GDI support is provided by win32k.sys which communicates directly with the graphics driver.

http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/?view=log

ChangeLog-0.0.21

  • Win32k: Initial implementation of regions and clipping
  • Win32k: Object cleanup on process deletion Eugene Ingerman
  • Win32k: Initial window painting code, bitmap loading David Welch
  • Win32k: Callbacks and messaging improvements David Welch
  • Win32k: Mouse messaging David Welch
  • Win32k: DIB Fixes Jason Filby

ChangeLog-0.1.0

  • Win32k: Rewrote gdi (Engxxx) objects,
  • Made GDI object locking exclusive,
  • Added functions for locking multiple objects,
  • Color translation now works properly,
  • Implemented several DC functions (Eugene Ingerman)
  • Win32k: Initial scrollbar code (Jason Filby)

ChangeLog-0.1.1

ChangeLog-0.1.4

ChangeLog-0.1.5

ChangeLog-0.2.0

ChangeLog-0.2.1

ChangeLog-0.2.2

ChangeLog-0.2.3