Hi,
To understand the meaning of this package is necessary to know the history behind it.
When i started the (new) port of VirtualTreeView, a 30kb piece of code that explores at maximum Delphi/winapi, i decided initially to remove the minimum of code necessary to make work so i wrote DelphiCompat that is simply a wrapper around winapi functions that does not exist (at that time) in LCL. This makes possible to get working under win32 faster.
As soon as i started to port to Gtk i found some bugs and started implementing the missing functions or creating workarounds. So there's a reason for each one:
OptimalPixelFormat: VTV requires 32bit bitmaps (pf32bit) to do alpha blending. But under Gtk is not possible to BitBlt a pf32bit bitmap on a 24bit or 16bit screen (
http://bugs.freepascal.org/view.php?id=8553). This is my solution to not loose the alpha blending on not 32bit screens under win32 (pfDevice <> pf32bit) and at the same time working on non win32.
Also i found that some LCL features were not implemented yet like creating a mask for a bitmap so the reason for CreateBitmapMask (it would have the benefit of being a one pass process but there are some technical reasons why it can't be a generic approach). Now that is implemented in LCL i switched the code that was using it use TBitmap.Mask instead.
Even some LCL equivalents to winapi was not working correctly even in win32, so the reason for DrawFrameEdge (already fixed). This same function until recently was crashing on gtk (
http://bugs.freepascal.org/view.php?id=9234). Some other functions were added or fixed in LCL at the mean time like FrameRect and *MapMode
OSSupportsUTF16 is used in ATBinHEX that cannot be converted to UTF-8. I don't remember where is used exactly.
DirectMaskBlt is just an win32 specific performance optimization where i know in advance that is not necessary to check the alpha channel.
All those limitations were reported to LCL. See
http://bugs.freepascal.org/view_all_set.php?type=1&temporary=y&reporter_id=34In summary this package is intended to give to developers that are porting code from Delphi (mostly me) a bridge to get the port done while the bug/feature is not fixed/implemented in LCL and to slowly replace the functions too win32 specific by LCL ones.
I never intended to create a full working library so did not ask for merging into LCL or advertised much.