OpenGUI Website
 
Main Menu
Home
Forums
Screenshots
Downloads
License
Wiki/Trac
FAQ
Sitemap
Documentation
Current (v0.8 Kunzite)
OpenGUI
Renderer_Ogre
SVN Trunk - Nightly
OpenGUI
Renderer_Ogre
Related Links


SourceForge.net Logo

Ogre3D

OpenGL
0.8 Kunzite Released!
Friday, 05 January 2007

ImageThe final build of OpenGUI 0.8 [Kunzite] has been released! If you've been waiting for the final 0.8 build, this is it! Since 0.7.7, so much has changed that it's barely recognizable.

Read the rest of the post for some highlights of the changes. When you're done, be sure to download either the SDK or the Zipped Source and try it out for yourself!


New core Widget classes

The old design expected every widget to be a container, and this caused many problems for creating simple widgets like buttons that do not normally expect to also have to deal with bearing children. The new design removes this issue by introducing 4 base classes, completely rewritten from the ground up, each inheriting from the previous class.
  • Widget: A basic entity with no size or position that can receive all input events and draw anywhere within its container.
  • Control: With a size and a position, this widget type exposes several new events and properties, useful for buttons, scrollbars, and other common non-child-bearing entities.
  • ContainerControl: The first level that accepts children, and also provides docking and anchoring support to all widgets based on Control or higher.
  • Window: A container that also provides built in methods for automatically handling mouse driven moves and resizes. All you need to to is tell it when to start and stop, it handles the rest.

New event system

The old event system has been replaced with a more usable system, now propagating events using a system originally inspired by the Windows.Forms .Net assembly from Microsoft. Events travel to their destination faster and incur far less overhead than the 0.7 series.

Screens

In most systems, you're bound to using a single viewport for displaying your GUI. Back in the 0.7.7 days this was also true for OpenGUI, but no more! In OpenGUI 0.8 and beyond, all GUIs are built into Screens, which are like virtual displays that can be applied to any viewport, automatically stretching your GUI contents to fit. This means that not only can you choose a single Screen size to build your GUI and have it automatically scale to all resolutions, but you can also render directly to textures that can be used within your 3D scene. Combined with the Screen level input injection, you could create a virtual computer displayed on a monitor in your game level, complete with user interaction.

Brush System

In the 0.7.7 series, widgets were expected to create their own render operations, archaically constructing them manually. The introduction of the Brush system completely alleviates this burden, instead presenting a clean and consistent method for widgets to draw to the screen, complete with a stack based modifier system to provide offsets, rotations and color/alpha control.

Less dependencies

OpenGUI 0.8 has less dependencies, now only requiring Freetype2 and TinyXML for bare minimum operation. All other dependencies have been moved out of the core library and are only necessary in the plugins that directly use them.

SCons

OpenGUI 0.8 officially drops maintenance of the Visual Studio .Net 2003 project files, and has instead adopted SCons as the official build system. If you're a VS .Net 2003 user, don't fret! SCons will automatically build OpenGUI from source using the latest VS compiler chain detected on your system, including VC7.1. You can also specifically request a compiler version on the command line, so if you have both, you still get to choose which you want to use.
 
Next >