<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <title>GG: Design</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">GG </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.1 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li class="current"><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">Design </div> </div> </div><!--header--> <div class="contents"> <div class="textblock"><h1><a class="anchor" id="design_purpose"></a> Purpose</h1> <p><a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a> is designed to achieve several goals:</p> <ul> <li>Platform-independence: <a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a> should be buildable on any platform that supports OpenGL</li> <li>Driver-independence: <a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a> should be a standalone GUI framework that does not require any particular application framework; though SDL and Ogre drivers are supplied, <a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a> should be usable with any driver code the user wishes to supply</li> <li>Easy extensibility: new controls and GUI behavior should be easy to incorporate</li> <li>Complete graphical control for the user/designer: the user should not be limited by the author's lack of artistic skill!</li> <li>Independence of UI elements from the source code: <a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a> UI elements should be configurable as text files, so that UI design and alteration should not require a recompilation</li> <li>Overall time efficiency: an application with a reasonable number of <a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a> UI elements should not slow down significantly because of the rendering or handling of those elements</li> <li>Overall space efficiency: each <a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a> UI element should have a reasonably small data size</li> <li>Efficient mixture of 2D and 3D graphical elements: it should be appropriate to use <a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a> in any frame-based 3D application, even a realtime 3D video game</li> <li>Simplicity of use: <a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a> UI elements should be able to send arbitrary messages when manipulated by the user; there should be no message passing hierarchy imposed on the user</li> </ul> <h1><a class="anchor" id="design_features"></a> Features</h1> <p><a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a> has the following features and services:</p> <ul> <li>Communication of UI controls via signals and slots</li> <li>Support for 2D-, 3D-, and mixed-mode rendering</li> <li>Managment of textures and fonts</li> <li>Serialization of UI elements</li> </ul> <h1><a class="anchor" id="nonfeatures"></a> Non-Features</h1> <ul> <li><a class="el" href="namespaceGG.html" title="The namespace that encloses all GG classes, functions, typedefs, enums, etc.">GG</a> is not fully threadsafe, due to its use of signals and slots</li> <li>No sound support is provided </li> </ul> </div></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Fri Jun 15 2012 15:13:31 for GG by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.1 </small></address> </body> </html>