Associate Professor of Computer Science
Graphix Windowing Toolkit
The Graphix Windowing Toolkit (Gwtk) extends the GLUT graphics toolkit for the development of cross platform GUI-based graphics applications. The new toolkit adds a complete set of widgets and controls for creating GUI based graphics programs.
The Open Graphics Language (OpenGL) is a cross-platform specification for producing 3D computer graphics. OpenGL is based on IRIS GL which was developed at Silicon Graphics in the 1980′s and has been available since 1992. Today, OpenGL is one of the premier graphics specifications and is supported by all major platforms and many video card manufacturers.
OpenGL defines graphics operations independent of the operating system or computer hardware. Additional hardware specific libraries are used to provide an interface between OpenGL and the hardware and between the user and the platform specific windowing system as illustrated below
An OpenGL program written for use on Microsoft Windows would use the WGL library for interfacing with the windowing system, while a program written for Linux and the X-Windows system would use the GLX library. The OpenGL code, however, would be the same for both systems.
The GL Utility Toolkit API (GLUT) was developed to provide an interface between OpenGL and the GLX graphics library on Unix systems. Today, it has become a standard part of OpenGL and is available as an interface on all major platforms including Microsoft Windows and Mac OS. GLUT provides the basic windowing environment needed to display graphical results from OpenGL. While it provides for keyboard, mouse and menu interaction, it lacks other common GUI components.
GLUT is one of the most commonly used toolkits when working with OpenGL, especially in the classroom due to it being available today on all major platforms. While GLUT is a good package and provides of the basic features for the creation of a an interactive graphics program, it lacks the basic tools for the creation of modern graphical user interface. While all major operating systems provide or make available the necessary API for the creation of GUI based interactive programs, they are not standard by any means. Some toolkits are available as platform dependent packages like Qt and wxWidgets. But, those were designed to be general purpose and are more complex than is typically needed with simple graphics programs.
The Graphix Windowing Toolkit (Gwtk) is built on top of both GLUT and OpenGL and encapsulates the many features of the Glut package in addition to providing many new improvements. The entire library is Object-Oriented and written in C++. Though, it can be used in procedural-style programs. Gwtk provides a more comprehensive and better organized interface which allows users to focus on OpenGL and the graphical component instead of the user-interface.
Some of the features of Gwtk include:
An online reference generated directly from the source files using Doxygen is available.
Necaise, R., Interactive Graphics using Open GL and the Graphix Windowing Toolkit. Journal of Computing Sciences in Colleges, vol. 22, no. 2, pp. 220 – 227, December 2006.
Necaise, R., The Graphix Windowing Toolkit, TARGUT 2006: Workshop on Undergraduate Teaching and Research in Graphics, June 2006, Denison University, Granville, OH.
Gwtk is released under the MIT X-Windows License and is freely available for download.