Front page

Latest news


    Mailing lists
    Bug tracking
    CVS Repository

    Feature list
    Release notes


Dev Branch

Back to
Dev Branch information

GLOW release notes

Release notes 1.1.2dev

Version 1.1.2dev was released on 7 August 2000. These are the differences between versions 1.1.1dev and 1.1.2dev.

Features added

  • Added GlowComponent::IsInitialized() and GlowComponent::IsClosed()
  • GlowLabelWidget can now align text center and right.
  • Added TGlowImage::GrabArray() and TGlowImage::ReleaseArray().
  • Added GlowColorImage::Scale().
  • Added GlowButtonWidget class. GlowPushButtonWidget now inherits from GlowButtonWidget.
  • Added GlowTextAreaWidget class.

Features changed

  • Widget windows and subwindows now default to requesting a mode of Glow::rgbBuffer | Glow::doubleBuffer. (also in 1.0.2)
  • Debug mode is now the default. To disable debug code, you now define GLOW_OPTION_NODEBUG. The older symbol GLOW_OPTION_DEBUG is no longer used.
  • Removed conversion from Vec3f and Quatf to const GLfloat* and replaced with method Array().
  • Renamed GlowImage, GlowPNMReader and GlowPNMWriter to TGlowImage, TGlowPNMReader and TGlowPNMWriter, respectively.

Bugs fixed

  • QuickPalette included widgets that were deferred-deleted using Close(), resulting in blank areas when repacking a palette with closed widgets. Fixed. (also in 1.0.2)
  • GlowLabelWidget didn't draw strings with Mac-style newlines correctly. Fixed. (also in 1.0.2)
  • Several classes in the tutorial weren't cleaning up all their resources if they were deleted. Fixed. (also in 1.0.2)
  • GlowScrollBarWidget incorrectly raised an assertion if min or max was set such that min + span == max. Fixed. (also in 1.0.2)
  • GlowTextFieldWidget's OnAutoPack wasn't reporting an error if the width was too small. Fixed. (also in 1.0.3)
  • GlowSubwindow::OnJoystick() was missing. Fixed.
  • Several more reference fixes.

Internal changes

  • When compiling under MSVC, now disables warning 4786 (long debug symbols) and locally disables warning 4355 (passing "this" to a member constructor). (also in 1.0.2)
  • GlowTextData contains rather than inherits from std::string.
  • Fixed underscores (changed from leading to trailing) for private class members in the tutorial.

To-do list

  • Support for autoconfig. This will probably involve, among other things, ditching the current makefile system, as well as ditching the idea of using GLOW as source code.
  • GlowTabbedPanelWidget class.
  • Add image capability to GlowPushButtonWidget
  • GlowGeneralListWidget hierarchy. GlowTextListWidget will be a major subclass.
  • Add support for "either-or" to QuickPalette.
  • GlowComboBoxWidget class? May use GlowTextListWidget.
  • GlowScrollableWindow class? Not sure how to design this.
  • Add stroke fonts to GlowFont? Not sure how to design this.
  • Add TGlowImage, TGlowPNMReader and TGlowPNMWriter info to the reference.
  • Add GlowTextAreaWidget info to the reference.
  • Add GlowButtonWidget to the reference and update reference for GlowPushButtonWidget.
  • Update tutorial.
  • Test.

Known issues

  • Not really heavily tested, so compilation issues may be present with MSVC and MIPSPro. I also have no idea whether joystick events really work, since I don't have a joystick to test it with...
  • I don't think it's currently possible to compile a Win32 DLL of GLOW using MSVC++ 6.0 because of the heavy use of templates and STL. If you succeed in building a DLL for GLOW, I'd appreciate finding out how you did it.
  • Under certain conditions, GLUT can lose track of some of its windows. This is most commonly manifested as windows or subwindows which unexpectedly stop redrawing. The presence of the GLOW library seems to exacerbate the problem. I'm fairly certain this is due to a bug in GLUT, and I've contacted Mark Kilgard concerning it. There is no known complete workaround short of applying a fix to GLUT and recompiling it, but GLOW now provides an optional partial workaround that can be activated by defining the symbol GLOW_OPTION_GLUTREDISPLAYFIX.
  • Because of the continuing incomplete state of GLUT in the Mac OS OpenGL SDK, many features of GLOW are still unusable on the Mac. I do have it on good authority that it is being worked on, so I'm hopeful that this will be resolved soon.
  • Because of GLOW's heavy ANSI dependence, there are some issues with various compilers, especially older ones. If you've worked on getting GLOW to build on a compiler that isn't on my supported compilers list, please let me know of any changes you needed to make, so I can get them merged into the main code base.

Release notes 1.1.1dev

Version 1.1.1dev was released on 24 July 2000. These are the differences between versions 1.0.0 and 1.1.1dev.

Features added

  • Added a makefile for compiling unix shared and static libraries of GLOW. Also added support for linking with a GLOW library in the tutorial makefiles. (Also in 1.0.1)
  • Added a bunch of features that depend on GLUT 4 APIs (currently, GLUT 3.7 or later is sufficient). The features listed below that are marked "GLUT4" can be disabled, and the dependency on GLUT 3.7 or later removed, by defining the symbol GLOW_OPTION_STRICTGLUT3.
  • Added GlowSubwindowParams::modeString to specify buffer features using GLUT 4's new string interface. Also added constructors and Init() methods to GlowSubwindow and GlowWindow that take mode strings. (GLUT4)
  • Subwindows and windows can now receive keyboard-up events by overriding the OnKeyboardUp() method. Also, GlowKeyboardData now has a "type" field specifying the type of keyboard event (key down or key up). Added Glow::keyboardUpEvents mask. (GLUT4)
  • Added IsKeyRepeatEnabled() and SetKeyRepeatEnabled() to subwindows and windows for controlling key repeat. (GLUT4)
  • Added joystick support. Receive joystick events by overriding OnJoystick(). Also added ReadJoystick(), SetJoystickPollInterval() and GetJoystickPollInterval() and to subwindow and window classes. Added Glow::joystickEvents mask. Added Glow static methods for determining joystick capability. (GLUT4)
  • Added GlowSubwindow::WarpCursor(). (GLUT4)
  • Added GlowImage template. Added GlowColorImage, GlowUcharImage and GlowGLfloatImage classes.
  • Added GlowPNMReader and GlowPNMWriter templates. (Available in the glowImageFile module.

Features changed

  • Specifying the DEBUG file-option in the makefile now adds -g by default. (Also in 1.0.1)
  • Cursors should now be specified by enumeration Glow::Cursor.
  • gcc now needs GLOW_COMPAT_USEOLDSTREAMPOS defined for successful compilation. The library makefile has been updated accordingly.
  • GlowWidgetWindow and GlowWidgetSubwindow now use Glow::rgbBuffer | Glow::doubleBuffer by default. (Version 1.0 also included alpha, accumulation and stencil.)

Bugs fixed

  • LINK_(uname) didn't work in the makefile. Fixed. (Also in 1.0.1)
  • Several reference fixes.

Internal changes

  • Renamed VIRTUOSO_INTERNAL_MINMAXDEFINED (defined in glowHeader.h when std::min and std::max are defined while compiling for Win32) to GLOW_INTERNAL_MINMAXDEFINED. (Also in 1.0.1)
  • Private class members now named with a trailing underscore rather than a leading underscore, to conform to current C++ style recommendations.
  • A bunch of template-related optimizations (e.g. preincrementing iterators, eliminating temporaries) done.
  • Removed some unnecessary recursion and virtual methods. (Replaced with iteration and RTTI.)

Back to
Dev Branch information

Daniel Azuma (
Last updated 7 August 2000