GLOW

Front page

Latest news

Download

Community
    SourceForge
    Forums
    Mailing lists
    Bug tracking
    CVS Repository

Documents
    Reference
    Tutorial
    Feature list
    Release notes

Features
    Demos
    Links

Dev Branch

GLOW release notes




[Newer releases]


Release notes 0.9.9

Version 0.9.9 was released on 14 June 2000.

This was the first version with a completed tutorial.

Features added

  • (none)

Features changed

  • (none)

Bugs fixed

  • GlowWidget::OnAutoPack() default method didn't properly check for noReshape option. Fixed.

Internal changes

  • Removed istream and stl_locale.h from the Compat-SGI folder. They were originally present to eliminate some compiler warnings on MIPSPro, but I removed them to make sure no one replaces newer versions of those headers.


Release notes 0.9.8

Version 0.9.8 was released on 25 May 2000.

Features added

  • Added Glow::NumToplevelWindows().
  • Added Glow::SetAutoQuitting() and Glow::IsAutoQuitting(). You can now set GLOW to automatically quit when the last toplevel window has been closed.
  • Added GlowComponent::Paint().
  • GlowSliderWidget can now handle maximum == minimum. In that case, the indicator is not drawn and does not respond to mouse clicks.
  • Added IsSpinning(), StartSpinning(), StopSpinning and StepSpin() to GlowViewTransform and GlowViewManipulator.
  • Added Glow::SetMenuStatusFunc(); updated lesson 6 to match.

Features changed

  • GlowCheckBoxWidget and GlowRadioButtonWidget's default heights are one pixel less.
  • Rolled GlowStickyButtonWidget interface into GlowPushButtonWidget. Removed GlowStickyButtonWidget.
  • Reordered the parameters of Set() in GlowTransformData and related classes to (translation, rotation, scale).

Bugs fixed

  • GlowLabelWidget's autopack wasn't honoring expandPreferredSize, which caused labeled widgets (esp. sliders) to pack incorrectly in certain cases. Fixed.
  • GlowWidget's destructor wasn't removing the widget from the widget notification list, which sometimes led to a crash. Fixed.
  • Hiding or deactivating a widget caused a temporary inconsistency in the widget's state that could cause crashes if the widget was deleted before the deferred event was handled. Fixed.
  • GlowWidget::OnGotKeyboardFocus() and OnLostKeyboardFocus() weren't being deferred. Fixed.
  • GlowQuickPalette wasn't honoring widget visibility, resulting in holes in palettes with invisible widgets. Fixed.
  • GlowCheckBoxWidget's mark appeared off-kilter under Mesa3D, and didn't scale well with widget size. Fixed.
  • glowUtilities.cpp didn't link in Codewarrior for Windows. I think this may be a result of a Codewarrior bug, but I found and put in a workaround anyway.
  • Multiple bugs and broken links in the reference fixed.
  • The reference didn't document the classes in glowVectorAlgebra. Fixed.
  • Tutorial lesson 7 said the wrong thing about the return value for event filters. Fixed.

Internal changes

  • (none)


Release notes 0.9.7

Version 0.9.7 was released on 1 May 2000.

Features added

  • Added Glow::RefreshGlutWindow().
  • Added GlowQuickPalette::QuickPaletteRoot().

Features changed

  • (none)

Bugs fixed

  • Vector algebra class operators now tend to return const objects for better optimization and error checking.
  • Apparently, some GL extension names are too long for the buffer that Glow::IsExtensionSupported() allocates. Fixed.
  • A bunch of reference fixes.

Internal changes

  • (none)


Release notes 0.9.6

Version 0.9.6 was released on 10 April 2000.

This release of GLOW focused on getting Microsoft Visual Dev Studio (Visual C++ 6.0) to work with GLOW, finishing up a few lingering unfinished features, and writing lesson 5.

In this release, most of the integer constants have been changed to enumerations. This was done so that more typechecking (correctness checking of parameters) can be done at compile time, and also because MSVC 6.0 didn't seem to like static const ints. For the most part, this shouldn't affect your usage, unless you used ints to store some of these values. However, there are two places where this will be visible to you and require code changes:

The OnMouseDown(), OnMouseUp() and OnKeyboard() methods, plus the corresponding widget methods, will need their parameter lists updated. For example, if you declared:

MyWindow::OnMouseDown(int button, int x, int y, int modifiers);

That needs to be changed to:

MyWindow::OnMouseDown(Glow::MouseButton button, int x, int y,
    Glow::Modifiers modifiers);

Note that, in addition to types, the order of the parameters for OnKeyboard() has been modified. So if you declared:

MyWindow::OnKeyboard(int key, int modifiers, int x, int y);

That needs to be changed to:

MyWindow::OnKeyboard(Glow::KeyCode key, int x, int y,
    Glow::Modifiers modifiers);

Second, the constant "parentSetting", used in the QuickPalette API, needs to be changed for arrangements and alignments. If you were using it for an arrangement setting, you need to change it to "parentArrangement". If you were using it for an alignment setting, it needs to be changed to "parentAlignment".

Features added

  • Added Glow::IsExtensionSupported(), Glow::IsBufferTypeSupported() and Glow::NumMouseButtons().
  • Added GlowSubwindow::BufferType().
  • Added GlowQuickPalette::AddDismissPushButton().
  • Added mouse and keyboard event filtering to Glow, and keyboard filtering to GlowWidgetRoot.
  • Added two widget filters: GlowWidgetTabFilter for tabbing between keyboard-handling widgets, and GlowWidgetMapToPushButtonFilter for mapping keypresses to buttons.
  • GlowMessageWindow and GlowTextFieldWindow can now automatically map return and escape keypresses to buttons.
  • Added GlowWidgetRoot::FindWidget().
  • Added GlowPushButtonWidget::Hit(), GlowStickyButtonWidget::Hit(), GlowCheckBoxWidget::ToggleState() and GlowCheckBoxWidget::Hit() and GlowStickyButtonWidget::ToggleState().
  • Added GlowDismissPushButtonWidget::SetToDismiss() and GlowDismissPushButtonWidget::GetToDismiss().
  • Added SetIdentity() method to GlowTransformData, GlowViewTransform and GlowViewManipulator.
  • Added ReceiverTracker class for tracking and automatic deletion of receivers. Added GlowReceiverTrackerComponent.
  • Added GlowComponent::ReorderChild().
  • Implemented a few additional hacks to get MSVC compatibility.

Features changed

  • Changed the order of parameters in GlowSubwindow::OnKeyboard() and GlowWidget::OnWidgetKeyboard() to (key, x, y, modifiers) for consistency with the mouse methods.
  • Renamed GlowPushButtonWidget::OnPressed() to OnHit(), GlowCheckBoxWidget::OnToggled() to OnHit() and GlowStickyButtonWidget::OnPressed() to OnHit().
  • Renamed ApplyGLMatrix() to ApplyToGLMatrix(), and ApplyGLMatrixInverse() to ApplyInverseToGLMatrix() in GlowTransformData, GlowViewTransform and GlowViewManipulator.
  • Renamed GlowViewManipulator::State() to GetState().
  • Implemented a different API for iterating over child components. Components are now directly members of a linked list and have next and prev pointers that can be accessed.
  • Implemented a better system for handling compilers that put the C++ standard library in namespace std but the C library in the global namespace (e.g. MIPSPro, MSVC). Now, #defining GLOW_COMPAT_CLIBNOSTDNAMESPACE causes glow to assume that only the C standard library functions are in the global namespace. The old method of using GLOW_COMPAT_INTERNALUSINGSTD is now deprecated and will probably go away soon.

Bugs fixed

  • GlowPopupMenuWidget constructor hung if the items field of the params was nonzero (nonempty). Introduced in 0.9.5 (oops!) Fixed.
  • Packing a QuickPanel arranged horizontally with alignExpand, containing labeled QuickPanels, caused the enclosed panels to end up too tall. Fixed.
  • Determining spin rate in GlowViewManipulator didn't work too well for very fast frame rates. Fixed.
  • GlowViewManipulator's constructor and initialization ignored the spinnable field in its params. Fixed.
  • Glow::Version() didn't return the correct value in 0.9.5. Fixed.
  • A call to std::find() in glowSenderReceiver.inl.h wasn't put into namespace std. Fixed.
  • Several references to std::vector in glowTextFieldWindow.cpp and glowMessageWindow.cpp weren't put into namespace std. Fixed.
  • Quaternion i/o operators were incorrectly defined inline in glowVectorAlgebra.cpp. Fixed.
  • A whole bunch of errors and broken links in the reference pages were fixed. (However, a bunch of changes were made as a result of the API adjustments for this version, and so new errors may have been introduced.)

Internal changes

  • Changed all the static constants from static const int to enum, for MSVC compatibility. Shouldn't really affect the interface.
  • GlowWidget no longer keeps an extra children list. (dynamic_cast is now used to iterate over child widgets.)
  • Switched around some of the internal classes in QuickPalette. Shouldn't really affect the user-level API.
  • Too many other changes to list...


Release notes 0.9.5

Version 0.9.5 was released on 27 March 2000.

The major change in this version is that GLOW has been extracted from its roots as part of Virtuoso Utilities. It is now a library independent of Virtuoso. As part of this move, the following changes have been made:

  • The files have been renamed. They no longer use the vA_ or vGL_ prefix.
  • All the classes have been renamed. For the most part, I simply removed the capital "V" from the start of the name. The namespace is now named "glow" rather than "Virtuoso".
  • The 3D geometry classes used by GlowViewTransform are renamed and made non-template. VVec3<> is now Vec3f. VQuat<> is now Quatf. VMat4<> is now Mat4f. VDir3<> is eliminated. All these classes are now defined in glowVectorAlgebra.* and the old files have been removed.
  • VSender renamed to TSender, and VReceiver renamed to TReceiver. The two classes are still templates.
  • Preprocessor symbols have been renamed, for the most part replacing the string "VIRTUOSO" with "GLOW". For example, to turn on debugging, you should #define GLOW_OPTION_DEBUG instead of VIRTUOSO_OPTION_DEBUG.

Features added

  • Added GlowMenu::InsertEntry() and GlowMenu::InsertSubmenu().
  • Added mouseButton field to widget event message types, and mouseButton parameter to corresponding virtual methods.
  • Added constructors for creating GlowMessageWindow and GlowTextFieldWindow with one line of code.

Features changed

  • Combined slider messages into one GlowSliderMessage. Similarly combined scroll bar messages into one GlowScrollBarMessage. This should make receiving slider and scroll bar messages easier.
  • Modified QuickPalette interfaces to match the above change.
  • Renamed a few fields in the widget message types for consistency. Primarily, renamed the widget pointers all to "widget".
  • Renamed some fields of widget params, and corresponding Get/Set methods of the widgets for consistency. Primarily, this involved renaming "Label" to "Text" in widgets such as push buttons and check boxes.
  • Renamed GlowRadioGroupWidget::OnToggled() to OnHit().
  • Renamed GlowStickyButtonWidget::checkBoxBehavior and GlowStickyButtonWidget::radioButtonBehavior to GlowStickyButtonWidget::toggleBehavior and GlowStickyButtonWidget::stickDownBehavior, respectively.
  • Changed the default element spacing in GlowMessageWindow and GlowTextFieldWindow from 20 to 10.
  • The buttonLabels field in GlowMessageWindowParams and GlowTextFieldWindowParams is now a tab-delimited string rather than a vector of strings. Similarly, the items field in GlowPopupMenuWidgetParams is also a tab-delimited string.

Bugs fixed

  • GlowMenu::RemoveItem() was off by one. Fixed.
  • GlowPanelWidget's autopack didn't throw errors if the requested preferredSize was less than the current size. Fixed.
  • GlowQuickPaletteWindow and GlowQuickPaletteSubwindow passed the wrong parameters to AddFixedPanel(), resulting in panels with the wrong width. Fixed.
  • glowVectorAlgebra.cpp wasn't #include-ing <cfloat>, resulting in compile problems on some systems. Fixed.

Internal changes

  • A bunch of minor modifications to support the new menu features and the adjustments to the widget API.


Release notes 0.9.1

Version 0.9.1 was released on 6 March 2000.

Features added

  • Added a VGlowComponent::Close(). This is a deferred close method (the destruction of the component doesn't happen until after your current event handler has finished) so it should be safer than directly deleting the object in some circumstances.
  • Added VGlowMenu::SetCodesToItemNumbers().

Features changed

  • Default buffer type for widget windows and subwindows is now VGlow::rgbaBuffer | VGlow::depthBuffer | VGlow::stencilBuffer | VGlow::doubleBuffer. (Was VGlow::rgbBuffer | VGlow::doubleBuffer.)
  • It is no longer necessary to #define VIRTUOSO_OPTION_GLOWWIDGETS to use widgets.

Bugs fixed

  • Deleting a widget with widget children caused a seg fault (whoops). Fixed.
  • Labeled sliders sometimes autopacked incorrectly, especially when using alignExpand in a QuickPalette. Fixed.
  • Nested VGlowQuickPanels didn't pack correctly when set on alignExpand. Fixed.
  • Connecting a VGlowViewTransform to itself caused an inconsistency which could eventually lead to a crash. Fixed.
  • VMat4 templates had some bugs in the template copy constructor and assignment that may have prevented it from compiling on some compilers. Fixed.
  • VVec3, VDir3, VMat4 and VQuat had duplicate copy assignment operators (both template and non-template). This was causing it to fail to compile on some compilers, but seems to be required for MIPSPro. I added another VIRTUOSO_COMPAT symbol to work around this.
  • VVec3, VDir3, VMat4 and VQuat assignment operators returned const references. I think this is wrong, so I changed it to non-const.
  • Added a few more internal includes-- some headers were still not being included in the right order. Aaargh... Fixed.

Internal changes

  • (none)


Release notes 0.9

Version 0.9 was released on 29 January 2000.

Features added

  • Released under GNU LGPL, and added appropriate text to the top of the source files.
  • Added VGlow::GetMilliseconds() and VGlow::SetIdleFunc().
  • Added a few more accessors to the VVec3 and VDir3 templates.

Features changed

  • Removed dependency on VMathUtils and removed VMathUtils from the GLOW distribution.
  • Default drawing state for VGlowViewTransform is now false.
  • Renamed BringToFront() and SendToBack() to Raise() and Lower(), respectively.

Bugs fixed

  • Several headers were still not being included in the right order. Fixed.

Internal changes

  • (none)


Daniel Azuma (dazuma@kagi.com)
Last updated 17 July 2000