
- since 9. september 1999
NEW >>> OpenGUI FORUM <<< NEW
WHAT'S NEW:
Currently I'm trying add some METAFILEs feature and I'm writing docs - hardly ;-)
I added support for PNG & JPG files. These features don't work with WATCOM C++
compiler (because there isn't support for 16/32bit modes ). To support this I added
precompiled versions of libpng, libz and libjpeg for DJGPP & Borland C++ 5.5 . Sources
of ones are available too. These libs are included in the most of linux distributions as
know as libpng, libz and libjpeg. You must have installed these include headers (aka
develop versions). To disable JPG and PNG support you mus comment-in defines FG_PNG
and FG_JPEG in the file 'config.h'. Now I started with docs ;- ). Happy
christmas!
Download:
There are news/changes from last beta5 version:
- * added DrawBitmap::stretch(int new_width, int new_height)
* added DrawBitmap::stretch(float ratio_x, float ratio_y)
* added simple image viewer example: 'zgv'
* renamed DrawBuffer::pixel() to DrawBuffer::putpixel()
* migrated Window::WindowGetPixel() to DrawBuffer::getpixel()
* removed dependency between logical & physical width of the scan line
* improved mouse cursor for page flipping modes
* fixed flipping for 16/32 bit modes
I wrote some example of using jpg - 'fgv' - simple image viewer (for all supported
formats) with image stretching if needed (4KB cpp source :-) ). It simply slideshow files
from 'file.lst' file. Under LINUX, when 'file.lst' don't exist, one is created from ALL
images in current directory and subdirectories if any.
Just another example that I have written is intended to the new OpenGUI PAGE FLIPPING
features. These feature don't work with the WATCOM C++ (because of banked mode).
There are source for overview:
/*
* This example shows PAGE FLIPPING feature of OpenGUI library
*
* requirement: 1MB videocards (2MB for 16bit colors or 4MB for true
colors)
* FPS (frames per secs) is based on monitor frequency & CPU speed
heavily
*/
#include <fastgl/fastgl.h>
extern "C" int verbose; // be verbose, an internal var.
void animate(void)
{
static int i=0,j=200,l=2000;
set_ppop(_GSET);
clear_frame_buffer(CWHITE);
set_fcolor(CBLACK);
fill_ellipse(X_width/2, Y_width/2,i,j);
fill_ellipse(X_width/2, Y_width/2,j,i);
i++;
if (i==200) i=0;
j--;
if (j==0) j=200;
Flip();
if (l-- == 0) App::AppDone(); // return after 2000 frames
}
int main(int argc, char **argv)
{
verbose = 1;
App app(G640x480,argc,argv,0,APP_ALL);
// you can use FG_DOUBLEBUFFER or FG_QUADBUFFER too
// NOTE: DOUBLEBUFFER are flicker on some cards & drivers (nVIDIA)
EnableBuffering(FG_TRIPLEBUFFER);
// set main loop code
app.SetDelayProc(animate);
// GO! - 'ALT+X' to exit
app.Run();
DisableBuffering(); // only for convenience...
} |
3.0-beta5 - Bug fixes, stable DIRECTX port
(Borland BCB5 only), working Double/Triple Buffering (see examples), see changelog for all.
3.0-beta4 - Bug fixes, firts version ot a working
Win32 code and TAB key for switching between EditBoxes.
3.0-beta3 - Bug fixes, new Win32 code and added
new RTEMS platform code thanx to Rosimildo da
Silva.
3.0-beta1 - This is a preview version of the new
OOP API inspired by Borland VCL. You can derive a new classes from original App &
Window class. Also initial support for DirectX 5 are added (still don't work but compiles
with C++Builder 5). More info you can get in changelog
or newapi example. There are link for download the latest snapshot of OpenGUI 3.0 beta1.
2.99 - This version fixes some
bugs and is addressed as very stable. I recomend you to upgrade from any previous version
of OpenGUI. Only DGA2 support is under heavy development and will be updated as soon as. I
uploaded MSDOS version of libpng for future use with OpenGUI too. I can do massive update
of the docs (Slovak language) and then do translation of one to the english language.
After this I release version 3.0 as stable and very well documented library.
2.98.1- bug fixes and RedHat 7.0
updates, revert to the old "Sourcer v2.91". Upgrade is urgent if you have any
problems or new RH installation.
2.98 - this is a long waited
version with a new much sophisticated FGListBox class that will replace a legacy ListBox
class. It's more friendly to use and more powered than the old ListBox. The old FileDialog
class is rewrited for even easy use. MKDIR button has been added to one. Another new
container class is FGList class, inspired by the STL library list template. For this
reason you must use gcc version 2.91 and above. The FGString is very light implementation
of the standard string class. Another big changes is a new path for library header files.
You must use #include <fastgl/fastgl.h> , not <fastgl.h> like before. For
other changes and bugfixes see at the 'changes.txt' file.
The next release (2.99) would have
a new callback mechanism (together with current callback methods) as know as SIGNAL-SLOT
dogma. For more info read this document about callbacks.
Version 3.00 would have updated english docs. Uff. After this done, 3.x branch will
continue with better DGA2 and DirectX support, reimplemnting RAD, and more...
-
- What is OpenGUI library? [there is a Slovak INTRO]
-
- OpenGUI is a high-Level C/C++ graphics & windowing
library built upon a fast, low-level x86 asm graphics kernel. It is under LGPL license.
OpenGUI provides 2D drawing primitives and an event-driven windowing API for easy
application development, and it supports the BMP image file format. It's very powerful,
but very easy to use. You can write apps in the old Borland BGI style or in a windowed
style like QT. OpenGUI supports the keyboard and mouse as event sources, and the Linux
framebuffer/svgalib as drawing backends. Mesa3D is also supported under Linux. On now 8,
15, 16 and 32-bit color modes are available.
OpenGUI is a very fast multi-platform 32-bit graphics library/GUI
for MS-DOS (DPMI client/DJGPP), QNX (Watcom or GCC) and LINUX. It can be used to create
graphic applications and games for these Operating Systems. The library can be used with
GNU C++ (from ver. 2.7.2) or Watcom C++ (from 9.5) and NASM assembler (0.97). The library
is very stable and is ready for programs that require realtime drawing and Windows GUI.Features:
- LGPL
- ultra-fast (asm kernel & MMX support)
- the most robust library for the Linux FrameBuffer
- support for resolutions ranging from 320x200 to 1600x1200
- and 8, 15, 16 and 32 color depths
- windowing system...
- object-oriented multi-platform API (DJGPP, WATCOM, GCC,
LINUX, QNX)
- full application development framework (configuration file,
file & color dialogs, etc.)
- professionally tested & actively used for some years
(see examples)
- a tool for interactive code generation (draw & run)
- 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. The third layer implements
objects like input windows, buttons, menus, bitmaps etc, with addition of integrated mouse
& keyboards support.
-
- Screenshots:
-
-
Diagram of DrawBuffer class
inheritance:

Download:
Links to other libs:
|