Skip to content

Lehm2000/OpenGLSuperBible

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 

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.

About

Project following the OpenGL Super Bible book.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors