Lehm2000/OpenGLSuperBible
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
OpenGLSuperBible Author: Jeffrey Adams Purpose: This is a project to practice the tutorials found in the OpenGL Super Bible Dependencies: glfw 3.0.4 glew 1.10.0 glm Notes: Compiler must support C++0x. For the gcc compiler use the -std=gnu++0x option. Linux/Mac Include Paths: /usr/local/include/GLFW /usr/local/lib/ /usr/include/GL /usr/lib/ Must use preprocessor definition: GL_GLEXT_PROTOTYPES Updates ============================================================= 2014-12-27 v0.0.3 -Added bounding boxes to the MUMesh and GEMesh classes. Added ability to render them in the render options. -Added ability to change render modes, currently support Full and Wireframe. -Created new class InfoGameEngineSettings to hold settings for the GameEngine such as render mode. -Created new class Info to be the base class for all Info classes. -Merged InfoViewport into InfoGameEngineSettings. Removed Infoviewport -Encapsulated the controllers for GEObjects. Direct access is not allowed. Modified all Objects that had custom properties to this new paradigm. -Added a new GEObject, Orbiter to replace functionality of GEControllerOrbiter Functionality. GEControllerOrbiter removed as a result. -Added new class GESetting to enable controllable settings, similar to how GEControllers work. Created new child Classes GESettingConstant, GESettingCycleInputToggle and GESettingSelectMouseState. -Added new class of input to GEInputState GE_ENGINE_ACTION. These are combinations of keys/buttons that an object can look for, rather than looking for specific key presses. These are given names so it is more flexible. These are held in a new class GEInputAction. -Created class InputStateHolder to allow GEInputState to be placed in the gameEntities once again. -Added new mouseMode settings. Mouse can now be used as a pointer or as movement input. -Targa image loading works again. -Font rendering now supports alpha channel. -Converted the struct GEBoundingBox into a class. -Created the classes GEPlane and GERay. -Added a togglable option for multisampling rendering. -Started work on deflate decompression for PNG image file format. -Removed the gameEntities member ofthe GEObject and GEController classes. gameEntities is now passed to the functions that need it instead. v0.0.2b -Added class GEProperty to make it easier to make object properties controllable. All controllable object members were converted to this type. -Converted Most GEControllers to be templates so that they could be used on different types of properties. LookAt was not templated, it requires a vec3. v0.0.2 -Converted ImageUtilities to a class. -Added class GEObject to act as base class for all objects -Added class GameEngine as the base of the game engine -Added classes CameraObject and CameraPerspective to hold camera settings -Switched the math library to GLM -Added class ViewportInfo to hold viewport options such has height and width -Added material loading functions -Added class GEShader to hold misc functions that don't have another home. -Templated IUImage class to allow different image formats to be loaded using this same class -Added class GEController to handle how object settings are manipulated. These can be stacked on the object -Added classes GEController, GEControllerConstant, GEControllerInputKey, GEControllerMousePositionX, GEControllerMousePositionY, GEControllerInputMouseScrollY, GEControllerLookAt and GEControllerOscillator. -Added added text rendering function with shader -Added InputItem to hold a single user input. -Added GEInputState to hold the current state of all input. Updates: 2014-08-26 Started work on the game objects. Created GEObject as the base object class. Created a few camera object types. Switched math library to glm. 2014-08-20 Converted ImageUtilites into a class. Made getter methods in all classes const. 2014-08-17 Removed references to GEImage from the Image Utilities. Created new class (IUImage) for texture loading in Image Utilities. Improved how textures are loaded. Made paths relative 2014-08-14 Have gone back to compiling on Windows as OpenGL support on the Mac is a bit iffy. 2014-08-12 Successfully compiled on MacOSX 10.8.4 using eclipse. Turns out this version of OSX only supports OpenGL 3.2. Project is 4.3. Might need to switch. 2014-08-11 Working to get project compiling on MacOS 10.8 using eclipse IDE.