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)  

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;
static void Quit(CallBack cb)
Definition: fgcontrols.cpp:445
Definition: fgwindow.h:35
Definition: fgapp.h:25
const FGPixel CDARK
Definition: fgcolor.h:95
FGPushButton * AddPushButton(int xs, int ys, int ws, int hs, const char *nm, int key=0, ControlCall f=0, void *user_data=UNDEFINED_USER_DATA)
Definition: fastgl.cpp:2198
const unsigned APP_ENABLEALTX
Enable The ALT+X hotkey to terminates your application.
Definition: fastgl.h:72
#define fgl
Definition: fgbase.h:50
void FGAPI set_fcolor(FGPixel val)
Definition: fgdrawbuffer.h:311
int printf(const char *,...)
A traditional printf in window form.
Definition: fastgl.cpp:197
int main(int argc, char **argv)
Definition: textto.c:39
const FGPixel CRED
Definition: fgcolor.h:104