OGLCONSOLE is a versatile drop-down console for OpenGL applications that use SDL, GLUT, GtkGlArea, QGLWidget, and more. (Currently only SDL support is implemented.)
Email, continued development, and money
It ought to be noted to some of you that I have not had access to the email address listed here previously. I have updated it today (5/18/06) to reflect the only email address that I will be using until I can pay to have my computer repaired. That address is email@example.com, you can click "Contact" for a link. Thanks for your interest in OGLCONSOLE. I would very much like to see it reach greater maturity, and will work on it as soon as I am able. Features planned for the near future include the possibility of full terminal emulation including color and bold text, GLUT integration, support for "placing" the terminal in virtual space, loading your own fonts at runtime, and creating terminals of different dimensions. Your donations will go a long way to getting my computer running again. Please consider making a donation by visiting the following site: metascape.afraid.org:13666/donate
It should also be noted that the current CVS version of OGLCONSOLE fixes many simple bugs that cause corruption of the command input line.
OGLCONSOLE version 0.2 is now available, click download to get it. The changes are pretty small, as the aim of this library is pretty small:
- Delete key added
- Page up / down keys added
- Left / right keys now copy history items into your line-edit buffer
- Delete / backspace also copy history items into your line-edit buffer
I developed a 2D game using SDL
and decided to use SDL_console
as a way to achieve rich control over my application without the extra effort of having to create a GUI element for each function which could more easily be defined as a command-line interaction.
I communicated frequently with the maintainer of SDL_console and studied the code and the design extensively. The experience of that SDL_console has gone into OGLCONSOLE, and many lessons learned in the former have served very well in designing and implementing the latter.
From that time I decided I would never write another game without an interactive console. So I created OGLCONSOLE to meet the following requirements:
- It never fails: the console exists in part to help troubleshoot your application, not to create bugs. OGLCONSOLE is simple enough to hold to strict guidelines for stability. OGLCONSOLE even has a tiny font built into your application's binary so that even if your application cannot find or load its graphical resources for some reason, OGLCONSOLE comes to the rescue.
- It's simple: the EXTREME simplicity of OGLCONSOLE is paramount to its purpose: it is meant to accelerate your development, not inhibit it. Typically, OGLCONSOLE can be added to your application with about five ultra-simple lines of code (plus your interaction code.) The source code is contained in two files and can easily be dropped into the source code base of other open source applications, making it extremely easy to add to your application.
- It's small: its built-in font will soon be compressed into a two-tone bitmap that fits in at under 494 bytes.
- It's fast: the drawing code is optimized to render extremely fast so as to not interfere with the operation of your application when high-performance is a must.
- It's versatile: it has been designed to be flexible enough to accomodate many OpenGL-capable environments such as SDL, GLUT, GtkGlArea, QGLWidget and others. Support for SDL is already fully implemented, and GLUT is following close behind.
- It's powerful: the console supports command history, console output scrollback, tab completion, and error feedback. OGLCONSOLE even supports creating more than one console, or even creating consoles as simulated terminals within a 3D environment (imagine walking up to a computer in a first-person shooter and actually interacting with a bash shell!)