Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bcrist/fgui

Flexible Graphical User Interface for OpenGL
https://github.com/bcrist/fgui

Last synced: 21 days ago
JSON representation

Flexible Graphical User Interface for OpenGL

Awesome Lists containing this project

README

        

FGUI - Flexible Graphical User Interface for OpenGL

About:
FGUI is a C++ library for creating user interfaces rendered on an OpenGL
context. It is primarily designed for games and game-related projects
(level editors, etc.) for which common frameworks like Qt and wxWidgets may
be ill-suited or overly complex.

Planned Features:
* Cross-platform (all platform and library-specific code separated and
easily replaced with custom implemtations)
* Support for dirty-rectangle and full rerendering
* Support for cached rendering (framebuffer/texture rendering)
* Extensive built-int component library
* Customizable appearance via custom renderers
* Powerful keyboard-focus subsystem with events and FocusManagers
* Keyboard, mouse, and timer (simulation) events
* Mouse enter/leave/hover events for all components under the cursor, plus
variations for just the topmost one
* Support for automatic layout of components via LayoutManagers

License:
Copyright (c) 2012 Benjamin M. Crist

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.

Style:
FGUI adheres mostly to the Google Style Guide with a few modifications:

1. Indentation is three spaces, not two. Access modifier lines in class
declarations are not indented at all (Google specifies one space).
Multiline constructor initializer lists are indented six spaces:

ReallyLongConstructorNameIsReallyLong()
: some_member_variable_(NULL),
other_member_variable_(true)
{
...
}

2. Function names (including getters and setters) use camelCase, not
PascalCase or underscored_lowercase. Setter functions always begin with
"set" and getter functions always begin with "get" (except for boolean
getters, which may begin with "is").

3. Compile-time constants and enum values use the form "kCONSTANT_NAME"
instead of "kConstantName".

4. Except for empty blocks and short inline functions defined in one line,
block braces always appear alone on a separate line from control
structures, function signatures, etc.

The Google Style Guide can be found at:

http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml