Starting from release 2.6.0, SDL_bgi has its own web page.
The libXbgi project is no longer being maintained. Please update your bookmarks! Files will remain available for those interested.
This site provides binaries and documentation for libXbgi. This is a port of the old Borland Graphics Interface (graphics.h), originally written for DOS, to X11.
libXbgi is the predecessor to a better port, SDL_bgi, which is more complete and is portable to any platform supported by SDL2 (Windows, OS X, GNU/Linux, Android, Emscripten). libXbgi is based on Xlib, so it only runs on X11.
These compatibility libraries can be used to port old programs written for Turbo/Borland C to Linux, other Unix-like systems, macOS, and Windows. And, of course, to write new graphics programs with minimal effort: BGI, once extremely popular, was probably the simplest way to implement presentation graphics in C programs. The same ease of programming can be obtained on modern systems. Programming fractals, cellular automata, geometry, physics models etc. is a breeze with SDL_bgi or libXbgi.
libXbgi is part of Ptoc, a Pascal to C converter written by Dr. Konstantin Knizhnik. SDL_bgi was written by me, Dr. Guido Gonzato.
Documentation and sample BGI programs are available at this address: https://winbgim.codecutter.org/V6_0/doc/index.html. Most programs can be compiled with libXbgi.
libXbgi is released under a generic free software license; please read License.txt.
Please note that libXbgi is much less complete than SDL_bgi; besides, it's unsupported and it's only provided in its present state. Bugs will not be fixed unless you provide the fix!
The current release of libXbgi is 365. To compile it from sources, you will need a compiler (gcc or clang are fine) and the X11 development packages; on Debian-like distributions, it's 'libx11-dev' and its depencencies.
To compile a program using libXbgi, make sure that it includes the 'graphics.h' header file. Then:
gcc -o program program.c /usr/lib/libXbgi.a -lX11 -lm
In most cases, all you have to do to compile an old program is comment out the lines
#include <conio.h> #include <dos.h>
if they're present. Alternatively, you may create dummy (empty) conio.h and dos.h file, if you wish.
Please consult the enclosed documentation for more information.
Nearly all graphics functions work correctly; basic mouse support and RGB extensions, as described here, are also implemented. Most old programs should compile with no modification.
Other similar implementations are:
Brought to you by Guido Gonzato, PhD.
To contact me: guido dot gonzato at gmail dot com
Last modified: May 31, 2022