WinGdi

ABU 17-Apr-2020 - WinGdi 1.2 Released -- Now supporting TclTk 64bit, too.

ABU 24-Nov-2013 - WinGdi 1.1 Released -- Added a full TestSuite, Bitmasks, bugfixing plus some minor WIN-Api


WinGdi is a package providing access to Windows's Graphics Device Interface (GDI).

This library deals with Device Contexts (DC), Bitmaps (DIB & DDB), Brushes, World-Transformations (rotation, scaling,...in real time!), BitBlitting, AlphaBlending ...

Just a screenshot of an included demo app

Image WinGdi-screenshoot1

There's al lot of GDI stuff not included in Wingdi (graphics primitives, fonts, ...) just because WinGdi was developed as an experiment for playing with large/fullscreen images, trying to move, zoom, rotate and blend such images in real-time, without glitches and flickers.

And it works ! You can see some demos included within the pixmix package.

And the fun was it didn't require C-coding (*); thanks to ffidl, WinGdi was entirelly coded in Tcl.

(*) Actually, I wrote 10 lines of C-code ... (to be honest, WinGdi 1.1 comprises about 100 lines of C-code)

Download

WinGdi 1.2 [L1 ] 17-Apr-2020

WinGdi 1.1 [L2 ] 24-Nov-2013

WinGdi 1.0 [L3 ] 2-Oct-2013

Demos, TestSuite and full documentation included.

  WinGdi: What's New
1.0 -- First public version

1.1 -- TestSuite, Bitmasks, bugfixing and added  some minor WIN-Api

 * Added test suite
 * BUGFIX(minor)  - undefined var in WIN::GetObjectType
 * BUGFIX(severe) - TkPhoto2DIB and DIB2TkPhoto errors when DIB and TkPhoto
     have different dimensions.
     Note: this bug has no negative effects on pixmix package, since it always
      (internally) uses DIBs and TkPhotos with the same size
 *  Added  GetPixel/SetPixel
 *  Added  GetBkColor/GetBkColor
 *  Added  GetCurrentObject 
 *  Added  GetDCPenColor/SetDCPenColor
 *  Added  GetDCBrushColor
 *  GetDIBSectionInfo is now DEPRECATED ; use the new function "GetBitmapInfo" 
 *  GetDIBits/SetDIBits are now DEPRECATED; 
    use Tk2Photo2DIB/DIB2TkPhoto or load/saveBitmaskFile instead, or write a feature request.
 *  Added  InvertRect
 *  Added  CreateCompatibleBitmap 
 *  Added  MaskBlt
 *  Added  loadBitmaskData
 *  Added  loadBitmaskFile
 *  Added  GetBitmapData
 *  Added  saveBitmaskFile    

 * Added new package bitmask (object-oriented monochrome bitmaps)
  
 * QuickReference updates and corrections (Get/SetPixel, ...)