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
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)
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, ...)