OpenGUI  5.5.14
About: OpenGUI is a high-level C/C++ graphics & windowing library.
  Fossies Dox: OpenGUI-5.5.14.tar.gz  ("inofficial" and yet experimental doxygen-generated source code documentation)  

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
OpenGUI API & programers guide
Copyright 1996-2005 Marian Krivos
LGPL License


  • the Fast Graphics & Windowing Library
  • the lightweight multi-platform library
  • for GUI applications and games development with C++ on LINUX, WIN32 and SOLARIS
  • the OpenGUI is fast, multi-platform, thread-safe 32-bit windowing/graphics library for LINUX, WIN32 and SOLARIS. It can be used to create graphics applications and games for these Operating Systems. This one can be used with GNU C++ (from ver. 2.95.1 up to 3.3), Visual C++ 6.0 or Borland C++ (from 5.0) C++ compilers. The library is robust, stable and is ready for applications that requires fast drawing.


  • fast, complex and orthogonal implementation of GUI
  • dynamic GUI creating via XML file format description (look for fgx module)
  • multi-platform and standard ISO C++ code without RTTI and Exceptions (templates are used marginally)
  • thread-safe and reentrant code
  • windowed or full-screen mode (win32 & linux)
  • support for resolutions ranging from 320x200 up to 1600x1200
  • the complete windowing system with buttons, menus, editboxes ...
  • object-oriented and well designed API
  • supports many common image formats: BMP, PCX, TGA, PNG, JPG, TIFF
  • supports TTF fonts via TRUETYPE2 library
  • full application development environment (configuration files, application object, ...)
  • configuration files are implemented in separated library (tincfg) via simple XML file format (look at Config module)
  • common dialog boxes for colors, fonts and file management
  • professionally tested & actively used for many year (since 1996)
  • and much more

The library consists of three layers. The first layer is a hand-coded and fast assembler kernel. This layer does the biggest piece of hard work. The second layer implements the API for drawing graphics primitives like lines, rectangles, circles etc. This layer is comparable to Borland BGI API. The third layer is written with C++ and offers a complete object set for the GUI developer. This layer implements objects like edit boxes, windows, buttons, menus, bitmaps etc, with addition of integrated mouse & keyboards support. To create a simple demonstration that draws on the screen a window captioned "HELLO WORLD", a button labelled "Finish" and shows a mouse pointer only, these few lines are required:

#include <fastgl/fastgl.h>
using namespace fgl;
int main(int argc, char **argv )
FGApp MyApp(3,argc,argv,CDARK,APP_ENABLEALTX);
FGWindow *MyWindow = new FGWindow(&MyWindow, 100, 100,200,100, "Window");
MyWindow->printf(54,15,"Hello World!\n");
MyWindow->AddPushButton(60,45,80,21,"Exit app",'F', FGControl::Quit);
return 0;