An extension to LibGGI blitting operations
Name
libggiblt : An extension to LibGGI blitting operations
Description
LibGGIBlt is an extension to LibGGI which adds functionality pertaining to blitting and management of blit data sources. LibGGI is a graphics library developed by the GGI Project (http://www.ggi-project.org/▸).
Blitting is the process of copying patterns and textures to a framebuffer, usually as a rectangle, trapezoid, or triangle, and applying a mathemetical or logical transformation on the data as it is being transferred. Many of these transforms enjoy widespread support in even not-so-modern video hardware, and many other APIs have offered functional interfaces to these operations. Forget what you know about those. The future is now. LibGGIBlt is likely NOT like any other previously developed interface to blitting operations you have seen.
In order to makes sense of LibGGIBlt's API, envision a spreadsheet. Along the top of the columns is a header for each column, designating the various parameters that you would normally send through a blitting library's functional interface, for example, x,y start point, widths and heights, clipping rectangles, colors, linear addresses of patterns, etc. etc. etc. Each column represents one of those parameters, and each row represents an invocation of a blitting operation. Once you have that picture painted in your head, LibGGIBlt's API will be easier to learn -- and to leverage.
LibGGIBlt's API helps you manage such a spreadsheet of graphics commands: altering rows and columns, and sending ranges of rows to the target for rendering. Since LibBlt actually keeps the rows you place into the spreadsheet in a form precompiled specially for the target, this can resuly in some very fast batch drawing operations. LibGGIBlt also provides a fallback mechanism which provides emulation on all supported LibGGI visuals, and a functionally oriented interface for those not feeling up for a paradigm shift.
Environment variables
The following outlines the environment variables, intended for the user, which affect the behaviour of LibGGIBlt:
- BLT_DEBUG
The debugging level for LibBlt:
- '0' or unset : debug output is off; debugging is off
- '255' : all debug output is on
You may also bitwise-or any of the following together:
- 2 : debug core
- 4 : debug mode setting
- 8 : debug color handling
- 16 : debug drawing
- 32 : misc debugging output
- 64 : debug dynamic library handling
The debugging output can be quite verbose and in most cases you should redirect stderr so that it does not interfere with your program's output.
- BLT_DEBUGSYNC
Turn on synchronous debugging output, flushing the output buffers before returning from DPRINT calls.
- GGI_CONFDIR
Override compiled-in path to global config files (Win32 only, but not Cygwin).
Note that the last environment variable really begin with GGI, and not BLT.