Gel2D - The free/open source game creation suite


API Docs

    Tutorials

    FAQ

    Change Log

    Dev Log

Development Log


[ 2010-10-01 ]
- Began work on Gel2D.
- Set up file directories, API docs with doxygen, makefiles, compiling environment, test project, prototyped 
shared/static library framework, etc.

[ 2010-10-04 ] - [ 2010-10-07 ]
- Reorganized file directories, made numerous improvements to makefiles, compiling environment, API documentation 
structure, shared/static library framework, etc.

[ 2010-10-11 ] - [ 2010-10-15 ]
- Hooked up with GLFW for window creation, began prototyping engine framework.
- Created GelMath class, containing function for acquiring random integers.
- Continued to mature file dir layout, API docs, makefiles, compiling, etc.

[ 2010-10-18 ] - [ 2010-10-20 ]
- Created GelWindow and GelInput classes, encapsulating a lot of GLFW's window and input functionality.
- Prototyped vector and vertex structs, and object and rendering classes.
- Cleaned up GelEngine class, added function to get FPS.
- Added math functions to get distances between vectors and objects, etc.
- Documented alot of the new functionality.

[ 2010-10-21 ]
- Created GelObject class.
- Added ability to render TGA images using GLFW.
- Slightly improved rendering.

[ 2010-10-25 ] - [ 2010-10-29 ]
- Created Gel2dVec, Gel3dVec, and Gel4dVec classes.
- Created GelColor and GelTexture classes to use with GelObject.
- Cleaned up GelVert struct.
- Added alot of new functionality to GelObject, including positioning, rotating, scaling, changing color and/or 
texture, and getting distance to other objects and vectors.
- Extended GelRender to render GelObjects to the screen.
- Documented alot of the new functionality.

[ 2010-11-01 ]
- Improved GelTexture image loading and rendering.

[ 2010-11-02 ]
- Made a few changes to GelObject and GelRender to apply and render vertex colors.

[ 2010-11-03 ] - [ 2010-11-08 ]
- Created GelCamera and GelScene classes.
- Viewport is now setup and rendered in a new function that accepts a pointer to a GelCamera.
- Created GelTimer class that can get/set time, get/set fps, get delta, and sleep.
- Moved getFPS member function from GelEngine to GelTimer.

[ 2010-11-09 ] - [ 2010-11-10 ]
- Eliminated a few redundant functions in GelMath class.
- Added texture coordinates to GelObject, and support for them in GelRender.
- Further integrated Gel2dVec support in GelObject.

[ 2010-11-11 ] - [ 2010-11-14 ]
- Added support for multiple blending modes in GelObject, now supports alpha, add, and subtract.
- Added basic support for tile animations in GelObject class.

[ 2010-11-15 ]
- Extended tile animation capabilities.
- Added function to get texture's bpp.
- Improved functionality and accuracy of GelTimer.
- Various improvements to API documentation.

[ 2010-11-16 ]
- Added ability to choose different filter and wrapping modes for textures.
- Created GelTextureAni class to handle tile animation setup/data.
- Various improvements to tile animation functions.

[ 2010-11-17 ]
- Renamed class GelTextureAni to GelTileAnim.
- Divided up tile animation work between GelObject and GelTileAnim, making numerous improvements.

[ 2010-11-18 ] - [ 2010-11-19 ]
- Revamped GelObject's flipTexture function to work with tile animation.
- Improved GelTileAnim class, added support for different play states, etc.

[ 2010-11-22 ] - [ 2010-11-26 ]
- Created moveTo function, which adds delayed movement to objects, making animation smoother; added it to 
GelCamera class.
- Cleaned up Gel2dVec class, overloaded lots of operators.
- Added additional play states to tile animation and other improvements.

[ 2010-11-27 ] -[ 2010-12-01 ]
- Continued integrating GelTileAnim into GelObject class.
- Created my own routines for reading PNG and TGA image files, and integrated them into GelTexture.

[ 2010-12-02 ]
- Made various improvements to PNG and TGA image loading routines.

[ 2010-12-03 ] - [ 2010-12-06 ]
- Made a few improvements to PNG and TGA image loading routines.
- Upgraded Gel3dVec struct to class, overloaded operators like in Gel2dVec.
- Added various Gel2dVec and Gel3dVec member functions to get lengths and dot products, and to normalize 
vectors.
- Deleted Gel4dVec struct.
- Added function to free image data after texture creation.
- Created prototype for GelLine class.

[ 2010-12-07 ] - [ 2010-12-08 ]
- Made most accessor functions and constructors from all classes inline.
- Added alot of new functionality to GelLine.

[ 2010-12-09 ] - [ 2010-12-17 ]
- Further improved GelLine functions.
- Restructered GelTexture and GelTileAnim classes, GelTileAnim now inherits GelTexture, taking care of all 
tile animated stuff.
- GelObject now accepts pointers to textures instead of copying them.
- Moved tile animation accessor functions from GelObject to GelTileAnim.

[ 2010-12-20 ] - [ 2010-12-21 ]
- GelObject renamed to GelQuad, now inherits GelObject class.
- Restructered GelObject class, putting all general object code in GelObject, to be reused with other 
inherited members.
- GelCamera and GelLine also inherit GelObject now.
- Created new functions for parenting objects, but very crude.

[ 2010-12-22 ] - [ 2010-12-23 ]
- Removed a few useless and redundant functions from GelMath.
- Improved delayed parenting.
- GelLine, GelQuad, GelCamera are now responsible for rendering themselves, rather than GelRender class.

[ 2010-12-24 ]
- Changed image loading functions to flip image data, changed UV mapping in GelQuad accordingly, etc.

[ 2010-12-27 ]
- Created GelBmpFont class.
- Fixed a bug with loading textures.

[ 2011-02-04 ] - [ 2011-02-07 ]
- Completely overhauled GelWindow class, creating my own functions from scratch for creating/destroying window; 
getting/setting size, title, cursor position and window position; show/hide cursor; minimize, restore; getting 
screen resolution, and polling for events.

[ 2011-02-08 ]
- Added new functions for dynamically changing window mode and changing screen resolution.
- Improved GelWindow member functions for sizing, minimizing, restoring, showing/hiding cursor, setting/getting 
cursor position, event polling, and window creation.

[ 2011-02-09 ] - [ 2011-02-10 ]
- Began separating win32 specific code from platform independent code in GelWindow class.
- Made numerous improvements in all areas of GelWindow
- Created top-level makefile for building Gel2D.
- Made numerous other improvements to makefiles for library and examples, file dir organization, etc.

[ 2011-02-11 ]
- Continued organizing GelWindow class, fixing bugs, adding new functionality, etc.

[ 2011-02-14 ] - [ 2011-02-16 ]
- Improved makefiles and dir structure.
- Fixed nasty bugs with GelBmpFnt class, now you can actually use it to some useful effect.
- Did a little house cleaning in various classes including GelBmpFnt, GelCamera, GelRender, etc.
- Wrote my own functions for keyboard input, and put it in GelInput in replace of the GLFW wrappers.
- Significantly improved function for changing screen resolution.
- Added support for querying list of video modes.
- Various other improvements to window system.
- Replaced all remaining dependencies on GLFW with my own code, and completely removed GLFW from Gel2D.
- Made some improvements to API docs
- Windowing system is now pretty well stabilized.

[ 2011-02-17 ] - [ 2011-02-18 ]
- Added support for mouse input.
- Continued to fix bugs and improve GelWindow.

[ 2011-02-20 ]
- Created log function to output strings to file and console.

[ 2011-02-21 ]
- Made provisions for GelTexture to accept hard-coded image data.
- Added function to write PNG images, but limited and buggy.
- Added function to save screenshots of OpenGL buffer to PNG.

[ 2011-02-22 ]
- Spruced up video mode handling in GelWindow class.
- Created GelImage class, putting all image read/write operations in static member functions.
- Eliminated GelTileAnim class, moving all member functions and data to GelAnimQuad.
- Removed GelQuad's support for GelTileAnim (inherited from GelTexture) textures.
- GelAnimQuad class (inherited from GelQuad) is now responsible for tile animations, encapsulating most of 
what GelTileAnim used to do.
- Restructured GelTexture class, making it work more efficiently with GelImage, deleted all virtual funtions 
that existed solely for GelTileAnim class, etc.
- Fixed a few problems with writing PNG images.
- Made a few improvements to logging and API docs.

[ 2011-02-23 ]
- Made GelEngine member functions static.
- Made numerous improvements to the API docs, particularly GelWindow.
- Added OpenGL mipmapping, although slightly buggy.
- Numerous small changes to file directory structure and build system.
- Eliminated a few bugs in GelQuad, GelImage classes.

[ 2011-02-24 ]
- Made GelInput and GelWindow member functions static.
- Removed all platform specific code from GelWindow class and added more functionality.
- Restructured win32 window implementation in cooperation with GelWindow.

[ 2011-02-28 ]
- Finished organizing win32 window functions.
- Renamed GelBmpFnt class to GelText.
- Created GelChar class which is basically a stripped down version of GelQuad.
- Created GelFont class which now utilizes an array of GelChar objects to create a font, instead of every GelText 
object creating a series of display lists, which consumed an enormous amount of memory.
- Added more features to GelText including character and line spacing, orientation, etc.

[ 2011-03-01 ]
- Added GelText support for character skewing, positioning, rotating, and scaling.
- Removed render function for GelChar, GelText does all the rendering now.
- Made other small improvements to GelText to decrease the amount of CPU required to render.

[ 2011-03-02 ]
- Studied and constructed particle system prototype, including GelParticle and GelParticleSys classes.

[ 2011-03-03 ]
- Added alot of new functionality to GelParticleSys.

[ 2011-03-04 ]
- Hooked up Gel2D with the Qt toolkit, and began development of a particle editor application.

[ 2011-03-05 ] - [ 2011-03-10 ]
- Continued developing particle editor, fixing bugs and improving Gel2D particle system.

[ 2011-03-22 ]
- Added ability to read and write Gel2D Particle System description files.
- Integrated saving and loading particle systems in Gel2D Particle Editor.
- Made various other improvements and continued to stabilize the particle editor.

[ 2011-03-24 ]
- Improved GelParticleSys read/write functionality.
- Continued developing particle editor, fixing bugs.

[ 2011-03-30 ]
- Documented GelParticleSys class.
- Improved the way particles were created and updated in GelParticleSys class.
- Changed GelQuad and GelParticleSys rendering to map uv coordinates by pixel instead of typical 0-1 range.
- Added mapRect() function to GelQuad and GelParticleSys to enable easy uv mapping.

[ 2011-03-31 ]
- Made a few changes to GelParticleSys, including improving the way particles are created.
- Emission rate is now calculated in particles per second.
- Prototyped GelAppBase, which is an inheritable application base framework to make Gel2D game creation easier, 
more flexible, and powerful.

[ 2011-04-01 ]
- Particle system description file updated with new functionality.

[ 2011-04-07 ]
- Fixed a nasty bug in GelLine class.

[ 2011-04-20 ]
- Drafted function to setup GelFont from a font description file.

[ 2011-04-24 ]
- Finished function to setup GelFont from a font description file.

[ 2011-04-25 ]
- Improved many areas of GelText, including functions for getting the length of a string.
- Made provision for adding multiline support in GelText, although not functional at present.
- Added copy constructor for GelFont.
- Added width and height member data to GelChar.
- Documented most of GelText's member functions.

[ 2011-04-26 ]
- Improved some of the GelWindow documentation.
- Added alignment functionality to GelText
- Added some enumerations to the gel namespace.
- Made a few changes to GelCamera's render function.

[ 2011-05-01 ]
- Cleaned up and optimized a few old areas of code.
- Changed some #defines to enumerators and moved them into gel namespace
- Cloned Win32-specific window handling functions and began coding for X11 window system.

[ 2011-05-02 ]
- Continued writing X11-specific code for window manipulation, input, event polling, etc.

[ 2011-05-04 ]
- Finished migrating keyboard key #defines as enumerators into gel namespace.
- Added some more keyboard key enumerators for printable characters and others.
- Removed the last line of Win32-specific code from the cross-platform wrapper GelWindow.
- Added function in Win32 and X11 window implimentation for restoring original video mode.
- Made some improvements to existing X11 window handling.

[ 2011-05-05 ]
- Continued writing X11-specific code for window manipulation, input, event polling, etc.
- Began drafting functions for cross-platform joystick input.

[ 2011-05-09 ]
- Drafted functions for projecting local object coordinates to screen coordinates (via gluProject()) for mouse 
intersection testing.

[ 2011-05-10 ]
- Continued developing projection and mouse intersection code.

[ 2011-05-11 ]
- Reversed projection code; I'm now going from screen to local object coordinates, and doing intersection testing 
from there.
- Added new function and data members to GelObject, which now does most of the projection work.
- Integrated new functionality in Gel2D Particle Editor's UV Mapper.

[ 2011-05-12 ]
- Added support in GelObject (and inherited classes) for collision bounds and mouse cursor intersection testing 
via circle and axis-aligned bounding box algorithms.
- Overloaded most operators for GelColor.
- Created GelGUIWidget class, an inheritable base class for GUI widgets (inherits GelObject).
- Created GelGUIText, with almost complete functionality. This will be used on all other widgets that require text.

[ 2011-05-16 ]
- Created GelGUIButton class with limited functionality.

[ 2011-05-22 ]
- Created GelGUICheckBox class.
- Added new input functions for getting state of keys and mouse buttons: keyPressed(), keyReleased(), 
mouseBtnPressed(), mouseBtnReleased().

[ 2011-05-23 ]
- Created GelTextureObject class which encapsulates texture routines that other classes have in common.
- Removed texture functions from GelQuad, GelParticleSys, GelText, etc. They now inherit GelTextureObject.

[ 2011-05-26 ]
 - Began creation of a doubly-linked list template.

[ 2011-05-27 ]
- Continued developing GelLinkedList, fixing bugs.

[ 2011-05-31 ]
- Created GelCollision class with 2D algorithms for detecting collision between bounding boxes, circles, rays, etc.
- Fixed a few bugs with Gel2dVec's overloaded operators.

[ 2011-06-01 ]
- Overloaded more operators for Gel2dVec.
- Overloaded [] operator for GelLinkedList.
- Prototyped function for reversing items in linked list.
- Created stack and queue templates which inherit GelLinkedList.

[ 2011-06-02 ]
- Changed the parameters of many Gel2dVec overloaded operators to const.
- Fixed a few bugs in linked list template.

[ 2011-06-06 ]
- Created makefiles for Linux.
- Optimized some source code to make it compile on Linux.
- Cleaned up / fixed a few bugs in X11 window implementation.
- Added function to show/hide mouse cursor on X11.

[ 2011-06-07 ] - [ 2011-06-09 ]
- Improved Linux makefiles.
- Added more functions in X11 window implementation including querying / changing video modes, changing window mode 
and styles, etc.
- Fixed a few other bugs in X11 window implementation.

[ 2011-06-14 ]
- Fixed show/hide cursor function in X11.
- Added functions to set window cursor and icon on Win32 and X11.
- Introduced GelDir to manipulate directories.
- Cleaned up numerous areas of code, making things more portable, etc.

[ 2011-06-15 ]
- Wrote some joystick functions for Windows, although dysfunctional.

[ 2011-06-16 ]
- Prototyped GelResourcePack class.
- Prototyped GelDataStream class.

[ 2011-06-17 ]
- Created GelFileStream and GelMemoryStream to manage file and memory streams.
- Deleted GelDataStream.
- Overhauled TGA image loading functions, starting over from scratch with a more object-oriented design, utilizing 
GelFileStream.

[ 2011-06-20 ]
- Continued developing new TGA loading functions.

[ 2011-06-21 ]
- Cleaned up various areas of old code, particularly GelEngine.
- Added extra logging code for linux in GelEngine::start().
- Added functions in GelDir to create/remove directories, and set current directory (win32 and linux).
- Created 'imagen' library for image loading and linked to gel2d.
- Removed texture dir code from particle system.

[ 2011-06-23 ]
- Moved PNG loading code to the 'imagen' library.
- Made small changes to GelTexture class and documentation.

[ 2011-06-24 ]
- Wrote Gel3x3Matrix class with lots of overloaded operators and functions.

[ 2011-06-27 ]
- Add functions to allow multiple viewports in GelCamera.
- Documented camera class.
- Fixed getWindowWidth() and getWindowHeight() functions in GelWindow.
- Cloned Gel3x3Matrix and optimized to 4x4.

[ 2011-06-28 ]
- Added origin dispersal to particle system, changed parsys header name, and integrated in Gel2D Particle Editor.
- Made a few minor changes to matrices, prototyped functions for translating, rotating, and scaling.

[ 2011-06-29 ]
- Wrote Gel3x3Matrix functions for translating, rotating, and scaling; and vector transformation.
- Upgraded Gel4x4Matrix with same functionality.

[ 2011-06-30 ]
- Rewrote the way matrices are multiplied, it now works properly.
- Wrote Gel3x3Matrix functions for shearing and rotating by degrees and radians.
- OpenGL-specific code will be abstracted from core engine, making it more portable (perhaps to support DirectX 
in the future?) - begun by writing OpenGL texture object code.

[ 2011-07-11 ]
- Wrote OpenGL blending function for alpha, add, subtract, screen, and difference blending.
- Began rewrite of GelQuad's rendering function to draw arrays instead of slow glBegin() and glEnd() functions.
- Added functions in Gel4x4Matrix for rotating and shearing.

[ 2011-07-12 ]
- Did a little cleanup in matrix classes.
- Wrote OpenGL texture functions for changing filter and wrap modes.
- Renamed GelChar to GelFontChar, and made necessary changes in classes that use it.
- Drafted GelChar and GelString functions.

[ 2011-07-13 ]
- Made various improvements to linux build system and library linking.
- Fixed a coding error pertaining to cursor on X11.

[ 2011-07-14 ]
- Restructered win32 joystick, mouse, keyboard, directory, and window implementations into classes, much more 
object-oriented.

[ 2011-07-15 ]
- Continued restructuring win32 joystick, mouse, keyboard, directory, and window classes.
- Wrote win32 OpenGL context handling class.
- Added renderAPI enumeration and GelEngine functions for selecting different APIs for rendering.
- Drafted GelViewport and GelRenderSystem classes.
- Wrote simple GelRect class.

[ 2011-07-18 ]
- Overloaded a few operators in GelRect.
- Continued writing GelViewport, added support for relative and absolute sizing, etc.
- Added viewport setup code in OGLdraw and render system.
- GelScene is now obsolete.
- Added swapBuffers() to win32 OpenGL context.
- Removed _resizeOpenGL() and all other OpenGL-specific functions from win32 implementation.

[ 2011-07-19 ]
- Fixed a few bugs, made numerous small changes to GelViewport.
- Finished abstracting win32 window, OpenGL context, mouse and keyboard input, and video mode handling.
- Added support for changing cursor to numerous system standard shapes on win32.
- Added CursorShape enum.
- Cleaned up GelCamera class, integrated better with GelViewport.
- Documented GelCamera and GelViewport.

[ 2011-07-20 ]
- Fixed a bug with OGL texture wrapping.
- Wrote GelTexture functions for setting filter and wrap modes, and loading overlay images.
- Made numerous small changes to GelTexture code and docs.
- Moved all window-related #defines to enums in gel namespace.
- Fixed bug in GelRect overloaded operator = .
- Fixed all GelColor overloaded operators.
- Fixed bugs, made numerous improvements to GelViewport.
- Moved the rest of all possible #defines to enums in gel namespace.
- Began restructuring X11 joystick, mouse, keyboard, directory, and window implementations.

[ 2011-07-21 ]
- Continued restructuring X11/linux-specific code.

[ 2011-07-22 ]
- Finished abstracting all X11/linux-specific code.
- Made a few small improvements to X11 fullscreen handling, although it still doesn't work properly.

[ 2011-07-23 ]
- Made a few small changes to X11 system code, making it more organized.

[ 2011-07-27 ]
- Re-prototyped GelScene class. It will now be a game state object.
- Prototyped GelSceneManager to manage game states.

[ 2011-08-04 ]
- Finished writing X11 window style code for switching between fullscreen and windowed mode.
- Particle system now uses glDrawArrays() for rendering.
- Fixed bug which caused crash when objects were rendered when no texture had been assigned.

[ 2011-08-05 ]
- Added functions for converting mouse cursor location to world coordinates.
- Added matrix functions for converting to and from OpenGL-style matrices.

[ 2011-08-09 ]
- Moved resetRot() function from GelObject to GelMath and renamed to clampDeg().
- Added GelMath function sqr() for squaring floats
- Added functions for getting square lengths of vectors.
- Improved a few collision detection algorithms.

[ 2011-08-10 ]
- Added GelRectf class for floats, and documented rect classes.
- Made a few improvements to GelViewport, fixing relative sizing with GelRectf.
- Wrote OGL code for changing texture functions ( glTexEnv ).

[ 2011-08-14 ]
- Wrote batch process for rendering particles.
- Reduced particle system CPU usage by approximately 25%.
- In GelAABB: renamed 'pos' to 'min' and 'extent' to 'max', it now behaves differently.
- Rewrote AABB collision algorithms to accommodate new AABB design.
- Added function to get quad's axis-aligned bounding box and bounding circle for collision testing.
- Added GelObject getAABB() and getCircle() virtual functions.

[ 2011-08-15 ]
- Began prototyping GelKeyFrame.

[ 2011-08-16 ]
- Wrote basic keyframe and animation classes.
- Organized classes into groups with doxygen tags.

[ 2011-08-31 ]
- Added function to write TGA images in GelImage class.
- Added write function in GelFileStream.
- GelParticleSys now uses GelFileStream to read and write particle description files.

[ 2011-09-01 ]
- Fixed GelTexture function for loading raw image data.

[ 2011-09-02 ]
- Added support for loading non-power-of-2 images.
- Fixed nasty texture bug.

[ 2011-09-06 ]
- Fixed function for taking screenshots, it can now save TGA and PNG files in RGB and RGBA modes.
- Made numerous improvements to imagen, and integrated in Gel2D.

[ 2011-09-07 ]
- Made numerous improvements to GelImage and GelTexture classes.
- Drafted DirectX9 context support.

[ 2011-09-08 ]
- Finished writing DirectX9 context class, integrated into engine.
- Made numerous changes to context creation and scene handling to accommodate multiple rendering APIs.
- Moved OGL swapbuffers from GelWindow to render API-specific classes.
- Added start and end scene functions in OGLdraw, D3D9draw, and GelEngine classes.

[ 2011-09-09 ]
- Moved start and end scene functions from GelEngine to GelRenderSystem.
- Added #define _GEL_DIRECTX9, making it easy compile Gel2D without DirectX 9 support if you so choose.
- Renamed GelWindow::swapBuffers() to pollEvents(), it now only polls for events.

[ 2011-09-12 ]
- Fixed texture bug in GelParticleSys destructor.
- Wrote various functions in GelScene and GelSceneManager classes.
- Wrote code to save DirectX9 surface to disk in TGA and PNG image formats.

[ 2011-09-13 ]
- Added GelVideo class to handle video modes, etc.
- Moved all non-window related functions out of GelWindow, renamed some functions.
- Fixed a few GelDir functions for getting directories.

[ 2011-09-14 ]
- Wrote GelSize class with several useful functions and overloaded operators.
- Fixed GelMath::clampDeg() to work with numbers higher than 360*2.
- Prototyped event classes.
- Moved frame and render callbacks into GelEngine class.
- Made numerous changes to GelEngine, particularly game loop related stuff.
- Wrote functions for getting number and type of processors (win32).
- Wrote numerous functions for getting system power information (win32).

[ 2011-09-15 ]
- Improved functions for getting system power information.
- Fixed GelAnimQuad to work with non-power-of-2 textures.
- Wrote full set of functions for managing GelScenes.
- Wrote GelKeyEvent class.

[ 2011-09-16 ]
- Improved set / get color functions in GelQuad.
- Cleaned up and improved GelObject class.
- Moved all typedefs into gel namespace.
- Wrote GelRGBA and GelHSVA color classes.
- Wrote GelColorTools class with functions to convert between DWORD, scalar, and RGBA colors.

[ 2011-09-20 ]
- Fixed a few bugs in new color classes, wrote many more functions.
- Wrote mouse event class.
- Renamed GelPoint class to GelCdtPoint.
- Wrote new GelPoint class for storing integer coordinates.

[ 2011-09-21 ]
- Added function to get size of file, memory, and text streams.
- Added function to write data to memory stream.
- Added ability to delete buffer when memory stream is closed.
- Added flush function to file and text streams.
- Added much more functionality to GelTextStream class.
- Added timer to GelAppBase and GelEngine, with functions to get & set FPS.
- Added GelSceneManager functions to add sprites & cameras, and to draw scene.
- Made a few improvements to logging function.

[ 2011-09-22 ]
- Wrote GelChar functions isLetter(), isSpace(), toUpper(), toLower(), and toAscii().
- Wrote GelString functions toAscii(), fromAscii(), getLength(), and getData().
- Added GelString = operator for GelString and C string.

[ 2011-09-23 ]
- Made numerous improvements and bug fixes to GelLinkedList.
- Changed GelAppBase::update() return type to bool; update() must return false to exit game loop.
- Fixed GelTextStream to use GelString and GelChar, instead of const char* and char.

[ 2011-09-24 ]
- Made numerous improvements and bug fixes to GelString and GelTextStream.

[ 2011-09-25 ]
- Made a few improvements to GelChar.
- Wrote basic GelUChar class, which represents a Unicode character.
- Improved error handling in GelFileStream.
- Wrote GelCString class, an abstraction of the classic C string (char*) array.
- Fixed memory leak in GelString::toAscii() function.
- Wrote string resize and append functions, and overloaded some operators.

[ 2011-09-26 ]
- Made numerous improvements and bug fixes to string classes.
- Wrote many more string functions and operators.
- Added GelDir functions for getting application directory and filename (Windows only).

[ 2011-09-27 ]
- Added more features and operators to string classes.
- Renamed GelQuad to GelSprite, and GelAnimQuad to GelAnimSprite.
- Fixed a few memory leaks, bugs, and header inclusions that broke Linux compatibility.
- Removed needless copy contructors in numerous classes.

[ 2011-09-28 ]
- Wrote a few more useful functions in string and character classes.

[ 2011-09-29 ]
- Cleaned up GelTextStream::read() and wrote readAll() function to read entire file.
- Wrote GelEventReceiver, an inheritable base for other classes to receive events.
- Wrote GelEventDispatcher which can register event receivers and send events.
- GelAppBase now inherits GelEventReceiver.
- Began integrating event dispatching into win32 event loop.

[ 2011-09-30 ]
- Continued integrating event dispatching into win32 event loop.

[ 2011-10-03 ]
- Continued integrating event dispatching into win32 event loop.
- Began integrating event dispatching into X11 event loop.

[ 2011-10-04 ]
- Made a few enhancements in GelText class.
- Added basic precaching to GelString to avoid monotonous reallocation.
- Added ability to safely remove event receivers from event dispatcher.
- Began integrating FreeType 2 support into GelText class.

[ 2011-10-04 ]
- Continued writing FreeType font loading code in GelText class.
- Made numerous other improvements in GelText class.

[ 2011-10-07 ]
- Added a lot of new functionality to GelFont FreeType implementation, including the ability to save and load 
Gel2D Bitmap Fonts.
- Made a few enhancements to GelText class to support new GelFont functionality.

[ 2011-10-08 ]
- Made provision to support monochrome fonts in GelFont FreeType implementation, although it doesn't work 
correctly yet.
- Continued adding features and fixing bugs in GelFont class.

[ 2011-10-09 ]
- Added character padding to GelFont.
- Fixed GelImage color mode bug that caused incorrect info to be sent to imagen PNG and TGA writers.
- Bitmap font description reading and writing has been completely overhauled, the old system is now obsolete.
- Continued adding features and fixing bugs in GelFont class.

[ 2011-10-10 ]
- Wrote GelFont functions for reading and writing font description files to load fonts with FreeType.
- Continued adding features and fixing bugs in GelFont class.

[ 2011-10-11 ]
- GelGameState now inherits GelEventReceiver.
- Added line height to GelFont.
- Made numerous improvements to GelText, particularly line breaking.
- Fixed GelGUIText to work with new font system.

[ 2011-10-12 ]
- Made numerous improvements to GelText, GelGUIText, and GelGUICheckbox.

[ 2011-10-17 ]
- Fixed viewport rendering to only update when window is resized or viewport changes.
- Fixed GelObject intersection testing bug related to viewports.
- Added focus in and out events.

[ 2011-10-27 ]
- Improved random float generator.

[ 2011-11-21 ]
- Added constructors to GelImageData struct.

[ 2011-11-22 ]
- Inlined all vector functions.
- Changed many functions to use const addresses to vectors instead of pointers.

[ 2011-11-23 ]
- Improved constructors in many classes to use the constructor initializer list to initialize variables.
- Added constructors to GelVideoMode struct.
- Changed GelVideo::getScreenRes() to return a GelSize object.

[ 2011-11-28 ]
 - Made improvements to argument passing in overloaded operators for GelPoint, GelSize, Gel3x3Matrix, Gel4x4Matrix, 
 GelChar, GelUChar, GelRect, and GelRectf.

[ 2011-12-12 ]
- Fixed type conversion constructors in all color classes to use const references.

[ 2011-12-13 ]
- Overhauled GelRenderSystem, making it an inheritable base for multiple graphics APIs.
- Rewrote OGLdraw and D3D9draw classes as OGLRenderSystem and D3D9RenderSystem, inherited from GelRenderSystem.
- Made neccessary changes in other classes to use new render system.
- Made win32 SysOpenGLContext and SysD3D9Context fully object-oriented, removing all static members.
- Renamed SysD3D9Context to SysD3D9Device.

[ 2011-12-14 ]
- Moved takeScreenshot() from GelWindow to GelRenderSystem.
- Made X11 SysOpenGLContext fully object-oriented, removing all static members.
- Integrated new render system into X11 window implementation.

[ 2011-12-15 ]
- Cleaned up numerous areas of code, replacing integer arguments, etc. with proper enumerators.

[ 2011-12-16 ]
- Cleaned up numerous poorly written function declarations, making many of them const, etc.
- GelDir and GelFileStream now accept const &GelString instead of const *char in their member functions.
- Added operator() to GelCString, now it can be passed as a const char* without calling getData().
- Made many small improvements to all classes, replacing integer arguments with proper enumerators, etc.