• Advertisement
Sign in to follow this  

OpenGUI 0.7.7 (opensource gui library)

This topic is 4215 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I figured I might as well publicize the latest beta release of my free GUI library here. http://opengui.sourceforge.net/ Here's a quick rundown of the features:
* BSD licensed
* Written in C++
* Hierarchical widget layout with support for child widget draw operation clipping
* Message passing system that follows the widget hierarchy so that any parent
 widget (or event listener hook) can intercept (and even cancel) a message as
 it walks the tree toward its destination
* Fully featured input injection system, complete with automatic click and
 double click detection, as well as separate widget level input focusing
 (capturing) for both the keyboard and mouse. (Automated typematic keyboard
 event injection support is in the list of things to do.)
* Abstracted Rendering API, so it can be integrated into any existing game
 engine and work with any rendering system that is capable of drawing texture
 mapped polygons.
* Reference implementations for OpenGL and the OGRE rendering engine.
* Several base widgets, including StaticImage, FrameImage, SimpleButton,
 FrameButton, and TextLabel
 * Simple API for creating new custom widgets, and existing widgets are
 inheritable to allow for extension.
* Overloadable widget property system, so new widgets can be accessed using a
 standardized interface, and existing widgets can have their property handlers
 overloaded by their subclasses.
* Pixel aligned fonts, that can optionally auto scale with resolution changes
 to maintain layout
* Free form render operations to allow widget imagery to be rotated and scaled
 as your needs require
* Fully operational plugin system and widget factory to allow custom widgets
 (or entire widget libraries) to be loaded and created without ever having to
 directly link against the widget library.
* Complete XML based loading of plugins, creation of widget hierarchies,
 assignment of widget properties, definition of widget templates, font
 definitions, and imagery/imageset definitions.
* Project files and precompiled SDKs for VC++ 7.1 (Visual Studio .NET 2003)
 and VC++ 8 (Visual Studio 2005 and Express)

Share this post


Link to post
Share on other sites
Advertisement
Ok after reading the liscence page and seeing those 30 lines of text I see what BSD means.

Quote:

Copyright (c) 2006, Eric Shorkey
All rights reserved. (opengui.sourceforge.net)

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.

* Neither the name of OpenGUI nor the names of its contributors
may be used to endorse or promote products derived from this
software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Last Updated ( Wednesday, 26 July 2006 )

Share this post


Link to post
Share on other sites
BSD license means that you can do pretty much whatever you want with it. You can link directly against it, merge your own code into it, sell it, rebrand it. Pretty much all BSD does is ensure that people know that some part of the application is BSD licensed, and it protects the project contributers from having their names, or the project's name from being used to endorse a product without their approval.

The exact license is on the web site if you'd like to read it yourself. One nice thing about the BSD license is that it is very short.

Share this post


Link to post
Share on other sites
Nice! [smile] A mature game GUI library for OpenGL is definitely needed by the community in my opinion. I took a quick glance but I couldn't find any documentation for the library. [sad] Have you not written any yet, or is it just hidden away somewhere that I haven't found yet?



We actually went ahead and designed our own OpenGL GUI because our project has needs that no other library we could find appeared to statisfy. It might be good for you to check out the documentation for our GUI system to get some ideas for implementation: Hero of Allacrost Video Engine Documentation. Specifically look at the sections titled: # 6 The GUI System, # 7 Menu Windows, # 8 TextBox Object, # 9 OptionBox Object.



The code that implements these designs is licensed under the GPL, which unfortunately is not compatible with the BSD license as far as I understand. [sad] If you're interested in using the code though, I could ask our graphics programmer who write this implementation if he would be willing to share his code (I can't imagine why he would refuse) and we could work something out.


Keep up the great work in the meantime! I really hope that your project takes off. And don't forget that the documentation is just as important as the code. [wink]

Share this post


Link to post
Share on other sites
Sorry to hear that you missed the documentation, since it really is there. There's a rather large menu on the left side of the website that provides links to the documentation for both the latest official release, as well as nightly generated documentation from the SVN trunk.

Currently all official documentation is built using doxygen. Don't let that fool you, there's more than an API reference in there. The documentation is far from being finished, but it isn't exactly barren either. The API itself is entirely documented, and there are some logic explanations that have already been written. I intend on writing some step by step tutorials to assist new users, but haven't had the time to devote to such an endeavor yet.

The website itself also has a link to a Trac system, which provides a community wiki. As of yet there haven't been any community provided posts to the wiki, but the project is still quite young and I have high hopes that one day it will start receiving some use. Additionally there's a forum which, like the wiki, isn't seeing much use yet, but I do check it and answer any questions that come along.

If anyone has any suggestions, requests, or would like to assist in development or documentation, I encourage them to post in the OpenGUI forums. The wiki is open for anonymous editing at the moment, though I may later tie that in with the forum logins if defacement becomes a problem.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement