Difference between revisions of "Win32k.sys"

From ReactOS Wiki
Jump to: navigation, search
m
m
Line 4: Line 4:
  
 
'''See also [[Win32k_design_guideline]]'''
 
'''See also [[Win32k_design_guideline]]'''
 +
 +
Kernel-mode subsystem server (Win32K)
  
 
http://en.wikipedia.org/wiki/Windows_API#Overview
 
http://en.wikipedia.org/wiki/Windows_API#Overview
Line 444: Line 446:
  
 
* Implement NtGdiDdGetDriverInfo and NtGdiDdWaitForVerticalBlank for directx. Untested yet. ([[Magnus Olsen]])
 
* Implement NtGdiDdGetDriverInfo and NtGdiDdWaitForVerticalBlank for directx. Untested yet. ([[Magnus Olsen]])
 +
 +
[[ChangeLog-0.2.7]]
 +
 +
([[Magnus Olsen]])
 +
* Implemented <code>NtGdiDdCanCreateSurface</code> and <code>NtGdiDdBlt</code> for DirectX&trade; (untested)
 +
* Expanded <code>StretchBitBlt</code> to all bit-per-pixel (BPP) settings (not yet fully implemented; use the code as a reference)
 +
* partially implemented fullscreen in changedisplay setting&mdash;I can play winquake&trade; in fullscreen now :)
 +
* Implemented <code>NtGdiGetSystemPaletteUse</code> and <code>NtGdiSetSystemPaletteUse</code> (this code has been taken from Wine)
 +
* Fixed winquake color glitch bug&mdash;the text is now white instead of black ([[Magnus Olsen]])
 +
* Implemented <code>NtGdiAnimatePalette</code> (partly ripped from Wine; does not animate 100% of the palette) ([[Hervé Poussineau]])
 +
* Speed-optimized the bitblt ([[Magnus Olsen]], [[Gregor Anich]]), [[Alex Ionescu]]), [[Gé van Geldorp]]) (''see svn log'')
 +
* Repaired GDI to handle debugging functionality ([[Filip Navara]])
 +
* Implemented <code>NtGdiUnrealizedObject</code> ([[James Tabor]])
 +
* Implemented <code>WH_KEYBOARD_LL</code> hook ([[Gé van Geldorp]])

Revision as of 07:02, 17 March 2012

Category:System_Services

See Arwinss page for the alternative win32 subsystem implementation effort.

See also Win32k_design_guideline

Kernel-mode subsystem server (Win32K)

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

ChangeLog-0.2.4

  • Handle correctly bottom-up surfaces in the VGA driver. (Filip Navara)
  • Stop processing if exact match is found in ClosestColorMatch. (Filip Navara)
  • Fixed locking in NtGdiGetBitmapBits. (Filip Navara)
  • Removed IntCopyBitmap and replaced it's usage by BITMAPOBJ_CopyBitmap. (Filip Navara)
  • Fixed setting of SURFOBJ->pvBits and SURFOBJ->pvScan0 in EngCreateBitmap for bottom-up surfaces. (Filip Navara)
  • Call IntEngBitBlt instead of EngBitBlt from EngCopyBits. (Filip Navara)
  • Correctly set the SURFOBJ->hsurf field. (Filip Navara)
  • Support for bottom-up mouse cursors in the Eng* cursor emulation routines. (Filip Navara)
  • Fix locking in error cases of NtGdiRestoreDC (get Primitives demo to start). (Filip Navara)
  • Fix BitmapFormat to return 0 for unknown bit depth. (Filip Navara)
  • New implementation of NtGdiGetDIBits. (Filip Navara)
  • Fixed buffer handling and coordinate translation in IntGdiPolyline. (Filip Navara)
  • Allocate memory from paged pool in EngAllocMem. (Filip Navara)
  • Support resursive locking of the GDI objects. (Filip Navara)
  • Call EngMovePointer instead of DrvMovePointer if driver DrvSetPointerShape returned SPS_DECLINE. (Filip Navara)
  • Don't continue execution if there is no exception handler. (Filip Navara)
  • Send the cursor to display driver in top-down format. (Filip Navara)
  • Guard against out of bounds access to KeyboardLayout->pusVSCtoVK in W32kKeyProcessMessage. (Filip Navara)
  • Fixed SetKeyState to correctly index the keyboard state table. (Filip Navara)
  • Use absolute value of the color difference when calculating color match rating. (Filip Navara)
  • Handle allocation failure in IntCreateBitmap. (Filip Navara)
  • Don't allow creating surface with BitmapFormat == 0 (Invalid) in IntCreateSurface. (Filip Navara)
  • Fixed ExcludeClipRgn for case when DC contained no clipping region before the call to this function. (Filip Navara)
  • Don't create XLATEOBJ for BitBlt and StretchBlt operations that don't use source DC. (Filip Navara)
  • Honor the "Extended" bit in SetKeyState. (Filip Navara)
  • Display window icon only if there is any. (Filip Navara)
  • DrawIcon should return TRUE if it succeeds. (Filip Navara)
  • Handle UnsafeRect == NULL case in NtUserGetUpdateRect. (Filip Navara)
  • Implementation of [NtGdi]GetTextFace[W] and [NtGdi]GetFontData[W]. (Filip Navara)
  • Fixed locking in NtGdiGetCharWidth32. This caused problems with AbiWord reported by Jason Filby. (Filip Navara)
  • Add IntEngCreateSrcMonoXlate. (Filip Navara)
  • Get rid of compiler warnings in Win32k. (Filip Navara)
  • Handle indexed palettes in IntEngCreateSrcMonoXlate. (Filip Navara)
  • Fix WS_CAPTION style handling. (Filip Navara)
  • Maintain higher internal precision during font rendering. (Filip Navara)
  • Honour bitmap->bitmap_left while rendering. (Filip Navara)
  • Correctly handle ClipCursor(NULL) case. (Filip Navara)
  • Implemented NtUserEnumDisplaySettings/IntEnumDisplaySettings (Gregor Anich)
  • Only accept matching palette (Gé van Geldorp)
  • FindWindow() should search the threads desktop, not the active one. (Gé van Geldorp)
  • Implement NtUserBuildNamesList() (Gé van Geldorp)
  • If SendMessageTimeout() times out, GetLastError() should return 0 (Gé van Geldorp)
  • Simplified assigning of DDI functions (Thomas Weidenmueller)
  • Fixed graphics (gui) checks (Thomas Weidenmueller)
  • Added support to paint and change desktop wallpapers (Thomas Weidenmueller)

ChangeLog-0.2.5

ChangeLog-0.2.6

  • Implement NtGdiDdGetDriverInfo and NtGdiDdWaitForVerticalBlank for directx. Untested yet. (Magnus Olsen)

ChangeLog-0.2.7

(Magnus Olsen)

  • Implemented NtGdiDdCanCreateSurface and NtGdiDdBlt for DirectX™ (untested)
  • Expanded StretchBitBlt to all bit-per-pixel (BPP) settings (not yet fully implemented; use the code as a reference)
  • partially implemented fullscreen in changedisplay setting—I can play winquake™ in fullscreen now :)
  • Implemented NtGdiGetSystemPaletteUse and NtGdiSetSystemPaletteUse (this code has been taken from Wine)
  • Fixed winquake color glitch bug—the text is now white instead of black (Magnus Olsen)
  • Implemented NtGdiAnimatePalette (partly ripped from Wine; does not animate 100% of the palette) (Hervé Poussineau)
  • Speed-optimized the bitblt (Magnus Olsen, Gregor Anich), Alex Ionescu), Gé van Geldorp) (see svn log)
  • Repaired GDI to handle debugging functionality (Filip Navara)
  • Implemented NtGdiUnrealizedObject (James Tabor)
  • Implemented WH_KEYBOARD_LL hook (Gé van Geldorp)