Forráskód Böngészése

SDL_image is from now on history. Apparently it was loading SDL version 1.2 and generally it was causing many problems when building AnKi. I wrote my own code for loading PNGs using libpng. Needs testing
- Image uses custom code for loading PNGs
- Updating makefiles
- Updating docs
- Removing dev files from extern

Panagiotis Christopoulos Charitos 15 éve
szülő
commit
a6eb7aa8fc

+ 45 - 74
build/debug/Makefile

@@ -3,7 +3,7 @@
 CXX = g++
 CFLAGS = -DDEBUG_ENABLED -DPLATFORM_LINUX -DREVISION=\"`svnversion -c ../..`\" -c -pedantic-errors -pedantic -ansi -Wall -Wextra -W -pipe -O0 -g3 -pg -fsingle-precision-constant
 PHFLAGS = -DDEBUG_ENABLED -DPLATFORM_LINUX -DREVISION=\"`svnversion -c ../..`\" -c -pedantic-errors -pedantic -ansi -Wall -Wextra -W -pipe -O0 -g3 -pg
-LFLAGS = -rdynamic -L../../extern/lib-x86-64-linux -Wl,-Bstatic -lBulletSoftBody -lBulletDynamics -lBulletCollision -lLinearMath -lGLEW -lGLU -lboost_system -lboost_filesystem -Wl,-Bdynamic -lGL -ljpeg -lSDL_image -lSDL -pg
+LFLAGS = -rdynamic -L../../extern/lib-x86-64-linux -Wl,-Bstatic -lBulletSoftBody -lBulletDynamics -lBulletCollision -lLinearMath -lGLEW -lGLU -lboost_system -lboost_filesystem -Wl,-Bdynamic -lGL -ljpeg -lSDL -lpng -pg
 EXECUTABLE = anki
 INCPATH = -I./ -I../../src/Math/ -I../../src/Util/Tokenizer/ -I../../src/Misc/ -I../../src/ -I../../src/Renderer/ -I../../src/Scene/ -I../../src/Ui/ -I../../src/Resources/ -I../../src/Util/ -I../../src/Scene/Controllers/ -I../../src/Physics/ -I../../src/Renderer/BufferObjects/ -I../../src/Resources/Helpers/ -I../../src/Resources/Core/ -I../../extern/include -I../../extern/include/bullet 
 SOURCES = ../../src/Util/Tokenizer//Scanner.cpp ../../src/Misc//skybox.cpp ../../src/Misc//memory.cpp ../../src/Misc//collision.cpp ../../src/Misc//map.cpp ../../src/Misc//TestHeader.cpp ../../src//Main.cpp ../../src/Renderer//Smo.cpp ../../src/Renderer//Ez.cpp ../../src/Renderer//Ms.cpp ../../src/Renderer//Sm.cpp ../../src/Renderer//Pps.cpp ../../src/Renderer//Ssao.cpp ../../src/Renderer//Renderer.cpp ../../src/Renderer//Is.cpp ../../src/Renderer//MainRenderer.cpp ../../src/Renderer//Dbg.cpp ../../src/Renderer//Hdr.cpp ../../src/Renderer//Bs.cpp ../../src/Scene//MeshNode.cpp ../../src/Scene//SceneNode.cpp ../../src/Scene//SkelNode.cpp ../../src/Scene//Light.cpp ../../src/Scene//SkelModelNode.cpp ../../src/Scene//Camera.cpp ../../src/Scene//ParticleEmitter.cpp ../../src/Scene//Scene.cpp ../../src/Ui//Ui.cpp ../../src/Resources//ShaderProg.cpp ../../src/Resources//Material.cpp ../../src/Resources//Texture.cpp ../../src/Resources//SkelAnim.cpp ../../src/Resources//Extension.cpp ../../src/Resources//Skeleton.cpp ../../src/Resources//LightProps.cpp ../../src/Resources//Mesh.cpp ../../src/Resources//ParticleEmitterProps.cpp ../../src/Util//Input.cpp ../../src/Util//App.cpp ../../src/Util//Common.cpp ../../src/Util//Util.cpp ../../src/Scene/Controllers//Controller.cpp ../../src/Scene/Controllers//SkelAnimCtrl.cpp ../../src/Physics//Physics.cpp ../../src/Physics//RigidBody.cpp ../../src/Physics//PhyCharacter.cpp ../../src/Resources/Helpers//Image.cpp ../../src/Resources/Helpers//ShaderPrePreprocessor.cpp ../../src/Resources/Core//RsrcPtr.cpp ../../src/Resources/Core//RsrcContainers.cpp 
@@ -654,7 +654,7 @@ Main.o: ../../src//Main.cpp ../../src/Util/Common.h \
  ../../src/Physics/PhyCharacter.h ../../src/Physics/Physics.h \
  ../../src/Renderer/RendererInitializer.h \
  ../../src/Renderer/MainRenderer.h ../../src/Renderer/Renderer.h \
- ../../src/Physics/DebugDrawer.h
+ ../../src/Physics/DebugDrawer.h ../../src/Physics/RigidBody.h
 	@echo Compiling ../../src//Main.cpp...
 	@$(CXX) $(INCPATH) $(CFLAGS) ../../src//Main.cpp -o Main.o
 
@@ -2600,31 +2600,6 @@ Camera.o: ../../src/Scene//Camera.cpp ../../src/Scene//Camera.h \
 	@$(CXX) $(INCPATH) $(CFLAGS) ../../src/Scene//Camera.cpp -o Camera.o
 
 ParticleEmitter.o: ../../src/Scene//ParticleEmitter.cpp \
- ../../src/Scene//ParticleEmitter.h ../../src/Util/Common.h \
- ../../src/Scene//SceneNode.h ../../src/Util/Vec.h \
- ../../src/Util/Common.h ../../src/Math/Math.h ../../src/Math/Vec2.h \
- ../../src/Math/MathForwardDecls.h ../../src/Math/Vec2.inl.h \
- ../../src/Math/MathDfltHeader.h ../../src/Math/Vec3.h \
- ../../src/Math/Vec3.inl.h ../../src/Math/Vec4.h \
- ../../src/Math/Vec4.inl.h ../../src/Math/Quat.h \
- ../../src/Math/Quat.inl.h ../../src/Math/Axisang.h \
- ../../src/Math/Axisang.inl.h ../../src/Math/Euler.h \
- ../../src/Math/Euler.inl.h ../../src/Math/Mat3.h \
- ../../src/Math/Mat3.inl.h ../../src/Math/Mat4.h \
- ../../src/Math/Mat4.inl.h ../../src/Math/MathFuncs.h \
- ../../src/Math/MathFuncs.inl.h ../../src/Math/Transform.h \
- ../../src/Math/Transform.inl.h ../../src/Scene//MeshNode.h \
- ../../src/Resources/Material.h ../../src/Resources/Core/Resource.h \
- ../../src/Util/Util.h ../../src/Util/Vec.h \
- ../../src/Resources/ShaderProg.h ../../extern/include/GL/glew.h \
- ../../src/Resources/Texture.h ../../src/Resources/Core/RsrcPtr.h \
- ../../src/Resources/Mesh.h ../../src/Renderer/BufferObjects/Vbo.h \
- ../../src/Renderer/BufferObjects/BufferObject.h \
- ../../src/Misc/collision.h \
- ../../src/Scene/Controllers/MeshSkelNodeCtrl.h \
- ../../src/Scene/Controllers/Controller.h ../../src/Scene//GhostNode.h \
- ../../src/Resources/ParticleEmitterProps.h ../../src/Physics/RigidBody.h \
- ../../extern/include/bullet/btBulletDynamicsCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -2688,7 +2663,7 @@ ParticleEmitter.o: ../../src/Scene//ParticleEmitter.cpp \
  ../../extern/include/bullet/LinearMath/btSerializer.h \
  ../../extern/include/bullet/LinearMath/btStackAlloc.h \
  ../../extern/include/bullet/LinearMath/btHashMap.h \
- ../../src/Misc/memory.h \
+ ../../src/Misc/memory.h ../../src/Util/Common.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleMeshShape.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btCompoundShape.h \
@@ -2717,6 +2692,8 @@ ParticleEmitter.o: ../../src/Scene//ParticleEmitter.cpp \
  ../../extern/include/bullet/LinearMath/btQuickprof.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../extern/include/bullet/LinearMath/btSerializer.h \
+ ../../extern/include/bullet/btBulletDynamicsCommon.h \
+ ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btDynamicsWorld.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
@@ -2751,7 +2728,29 @@ ParticleEmitter.o: ../../src/Scene//ParticleEmitter.cpp \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/btBulletCollisionCommon.h \
+ ../../src/Scene//ParticleEmitter.h ../../src/Scene//SceneNode.h \
+ ../../src/Util/Vec.h ../../src/Util/Common.h ../../src/Math/Math.h \
+ ../../src/Math/Vec2.h ../../src/Math/MathForwardDecls.h \
+ ../../src/Math/Vec2.inl.h ../../src/Math/MathDfltHeader.h \
+ ../../src/Math/Vec3.h ../../src/Math/Vec3.inl.h ../../src/Math/Vec4.h \
+ ../../src/Math/Vec4.inl.h ../../src/Math/Quat.h \
+ ../../src/Math/Quat.inl.h ../../src/Math/Axisang.h \
+ ../../src/Math/Axisang.inl.h ../../src/Math/Euler.h \
+ ../../src/Math/Euler.inl.h ../../src/Math/Mat3.h \
+ ../../src/Math/Mat3.inl.h ../../src/Math/Mat4.h \
+ ../../src/Math/Mat4.inl.h ../../src/Math/MathFuncs.h \
+ ../../src/Math/MathFuncs.inl.h ../../src/Math/Transform.h \
+ ../../src/Math/Transform.inl.h ../../src/Scene//MeshNode.h \
+ ../../src/Resources/Material.h ../../src/Resources/Core/Resource.h \
+ ../../src/Util/Util.h ../../src/Util/Vec.h \
+ ../../src/Resources/ShaderProg.h ../../extern/include/GL/glew.h \
+ ../../src/Resources/Texture.h ../../src/Resources/Core/RsrcPtr.h \
+ ../../src/Resources/Mesh.h ../../src/Renderer/BufferObjects/Vbo.h \
+ ../../src/Renderer/BufferObjects/BufferObject.h \
+ ../../src/Misc/collision.h \
+ ../../src/Scene/Controllers/MeshSkelNodeCtrl.h \
+ ../../src/Scene/Controllers/Controller.h ../../src/Scene//GhostNode.h \
+ ../../src/Resources/ParticleEmitterProps.h ../../src/Physics/RigidBody.h \
  ../../src/Renderer/MainRenderer.h ../../src/Renderer/Renderer.h \
  ../../src/Renderer/BufferObjects/Fbo.h ../../src/Resources/Texture.h \
  ../../src/Resources/ShaderProg.h ../../src/Util/App.h \
@@ -3792,24 +3791,29 @@ SkelAnimCtrl.o: ../../src/Scene/Controllers//SkelAnimCtrl.cpp \
 	@echo Compiling ../../src/Scene/Controllers//SkelAnimCtrl.cpp...
 	@$(CXX) $(INCPATH) $(CFLAGS) ../../src/Scene/Controllers//SkelAnimCtrl.cpp -o SkelAnimCtrl.o
 
-Physics.o: ../../src/Physics//Physics.cpp ../../src/Physics//Physics.h \
- ../../extern/include/bullet/btBulletCollisionCommon.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
+Physics.o: ../../src/Physics//Physics.cpp \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h \
+ ../../extern/include/bullet/LinearMath/btTransform.h \
+ ../../extern/include/bullet/LinearMath/btMatrix3x3.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
  ../../extern/include/bullet/LinearMath/btScalar.h \
  ../../extern/include/bullet/LinearMath/btMinMax.h \
  ../../extern/include/bullet/LinearMath/btScalar.h \
- ../../extern/include/bullet/LinearMath/btTransform.h \
- ../../extern/include/bullet/LinearMath/btMatrix3x3.h \
- ../../extern/include/bullet/LinearMath/btVector3.h \
  ../../extern/include/bullet/LinearMath/btQuaternion.h \
  ../../extern/include/bullet/LinearMath/btQuadWord.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h \
  ../../extern/include/bullet/LinearMath/btMotionState.h \
  ../../extern/include/bullet/LinearMath/btTransform.h \
  ../../extern/include/bullet/LinearMath/btAlignedAllocator.h \
  ../../extern/include/bullet/LinearMath/btAlignedObjectArray.h \
  ../../extern/include/bullet/LinearMath/btAlignedAllocator.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h \
+ ../../extern/include/bullet/LinearMath/btVector3.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h \
  ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btDispatcher.h \
  ../../extern/include/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h \
@@ -3819,10 +3823,9 @@ Physics.o: ../../src/Physics//Physics.cpp ../../src/Physics//Physics.h \
  ../../extern/include/bullet/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h \
  ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
+ ../../src/Physics//Physics.h \
+ ../../extern/include/bullet/btBulletCollisionCommon.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btBoxShape.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h \
@@ -4259,44 +4262,12 @@ PhyCharacter.o: ../../src/Physics//PhyCharacter.cpp \
  ../../src/Resources/ShaderProg.h ../../src/Renderer/BufferObjects/Vbo.h \
  ../../src/Renderer/BufferObjects/BufferObject.h \
  ../../src/Resources/Core/RsrcPtr.h ../../src/Physics//MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Util/Vec.h
+ ../../src/Scene/SceneNode.h ../../src/Util/Vec.h \
+ ../../src/Physics//RigidBody.h
 	@echo Compiling ../../src/Physics//PhyCharacter.cpp...
 	@$(CXX) $(INCPATH) $(CFLAGS) ../../src/Physics//PhyCharacter.cpp -o PhyCharacter.o
 
 Image.o: ../../src/Resources/Helpers//Image.cpp \
- ../../extern/include/SDL/SDL_image.h ../../extern/include/SDL/SDL.h \
- ../../extern/include/SDL/SDL_main.h \
- ../../extern/include/SDL/SDL_stdinc.h \
- ../../extern/include/SDL/SDL_config.h \
- ../../extern/include/SDL/SDL_platform.h \
- ../../extern/include/SDL/begin_code.h \
- ../../extern/include/SDL/close_code.h \
- ../../extern/include/SDL/SDL_atomic.h \
- ../../extern/include/SDL/SDL_audio.h \
- ../../extern/include/SDL/SDL_error.h \
- ../../extern/include/SDL/SDL_endian.h \
- ../../extern/include/SDL/SDL_mutex.h \
- ../../extern/include/SDL/SDL_thread.h \
- ../../extern/include/SDL/SDL_rwops.h \
- ../../extern/include/SDL/SDL_clipboard.h \
- ../../extern/include/SDL/SDL_cpuinfo.h \
- ../../extern/include/SDL/SDL_events.h \
- ../../extern/include/SDL/SDL_video.h \
- ../../extern/include/SDL/SDL_pixels.h \
- ../../extern/include/SDL/SDL_rect.h \
- ../../extern/include/SDL/SDL_surface.h \
- ../../extern/include/SDL/SDL_keyboard.h \
- ../../extern/include/SDL/SDL_keysym.h \
- ../../extern/include/SDL/SDL_scancode.h \
- ../../extern/include/SDL/SDL_mouse.h \
- ../../extern/include/SDL/SDL_joystick.h \
- ../../extern/include/SDL/SDL_quit.h \
- ../../extern/include/SDL/SDL_loadso.h \
- ../../extern/include/SDL/SDL_power.h \
- ../../extern/include/SDL/SDL_timer.h \
- ../../extern/include/SDL/SDL_version.h \
- ../../extern/include/SDL/SDL_revision.h \
- ../../extern/include/SDL/SDL_compat.h \
  ../../src/Resources/Helpers//Image.h ../../src/Util/Common.h \
  ../../src/Util/Vec.h ../../src/Util/Common.h ../../src/Util/Util.h \
  ../../src/Util/Vec.h

+ 1 - 1
build/debug/gen.cfg.py

@@ -18,4 +18,4 @@ precompiledHeadersFlags = defines__ + " -c -pedantic-errors -pedantic -ansi -Wal
 
 compilerFlags = precompiledHeadersFlags + " -fsingle-precision-constant"
 
-linkerFlags = "-rdynamic -L../../extern/lib-x86-64-linux -Wl,-Bstatic -lBulletSoftBody -lBulletDynamics -lBulletCollision -lLinearMath -lGLEW -lGLU -lboost_system -lboost_filesystem -Wl,-Bdynamic -lGL -ljpeg -lSDL_image -lSDL -pg"
+linkerFlags = "-rdynamic -L../../extern/lib-x86-64-linux -Wl,-Bstatic -lBulletSoftBody -lBulletDynamics -lBulletCollision -lLinearMath -lGLEW -lGLU -lboost_system -lboost_filesystem -Wl,-Bdynamic -lGL -ljpeg -lSDL -lpng -pg"

+ 261 - 283
build/release/Makefile

@@ -3,11 +3,11 @@
 CXX = g++
 CFLAGS = -DPLATFORM_LINUX -DREVISION=\"`svnversion -c ../..`\" -c -pedantic-errors -pedantic -ansi -Wall -Wextra -W -pipe -s -msse3 -O3 -mtune=core2 -ffast-math -fsingle-precision-constant
 PHFLAGS = -DPLATFORM_LINUX -DREVISION=\"`svnversion -c ../..`\" -c -pedantic-errors -pedantic -ansi -Wall -Wextra -W -pipe -s -msse3 -O3 -mtune=core2 -ffast-math
-LFLAGS = -rdynamic -L../../extern/lib-x86-64-linux -Wl,-Bstatic -lBulletSoftBody -lBulletDynamics -lBulletCollision -lLinearMath -lGLEW -lSDL_image -lGLU -lSDL -lboost_system -lboost_filesystem -Wl,-Bdynamic -lGL -ljpeg -lpng -ltiff
+LFLAGS = -rdynamic -L../../extern/lib-x86-64-linux -Wl,-Bstatic -lBulletSoftBody -lBulletDynamics -lBulletCollision -lLinearMath -lGLEW -lGLU -lboost_system -lboost_filesystem -Wl,-Bdynamic -lSDL -lGL -ljpeg -lpng -ltiff
 EXECUTABLE = anki
 INCPATH = -I./ -I../../src/Math/ -I../../src/Util/Tokenizer/ -I../../src/Misc/ -I../../src/ -I../../src/Renderer/ -I../../src/Scene/ -I../../src/Ui/ -I../../src/Resources/ -I../../src/Util/ -I../../src/Scene/Controllers/ -I../../src/Physics/ -I../../src/Renderer/BufferObjects/ -I../../src/Resources/Helpers/ -I../../src/Resources/Core/ -I../../extern/include -I../../extern/include/bullet 
-SOURCES = ../../src/Util/Tokenizer//Scanner.cpp ../../src/Misc//skybox.cpp ../../src/Misc//memory.cpp ../../src/Misc//collision.cpp ../../src/Misc//map.cpp ../../src/Misc//TestHeader.cpp ../../src//Main.cpp ../../src/Renderer//Smo.cpp ../../src/Renderer//Ez.cpp ../../src/Renderer//Ms.cpp ../../src/Renderer//Sm.cpp ../../src/Renderer//Pps.cpp ../../src/Renderer//Ssao.cpp ../../src/Renderer//Renderer.cpp ../../src/Renderer//Is.cpp ../../src/Renderer//MainRenderer.cpp ../../src/Renderer//Dbg.cpp ../../src/Renderer//Hdr.cpp ../../src/Renderer//Bs.cpp ../../src/Scene//MeshNode.cpp ../../src/Scene//SceneNode.cpp ../../src/Scene//SkelNode.cpp ../../src/Scene//Light.cpp ../../src/Scene//SkelModelNode.cpp ../../src/Scene//Camera.cpp ../../src/Scene//ParticleEmitter.cpp ../../src/Scene//Scene.cpp ../../src/Ui//Ui.cpp ../../src/Resources//ShaderProg.cpp ../../src/Resources//Material.cpp ../../src/Resources//Texture.cpp ../../src/Resources//SkelAnim.cpp ../../src/Resources//Extension.cpp ../../src/Resources//Skeleton.cpp ../../src/Resources//LightProps.cpp ../../src/Resources//Mesh.cpp ../../src/Resources//ParticleEmitterProps.cpp ../../src/Util//Input.cpp ../../src/Util//App.cpp ../../src/Util//Common.cpp ../../src/Util//Util.cpp ../../src/Scene/Controllers//Controller.cpp ../../src/Scene/Controllers//SkelAnimCtrl.cpp ../../src/Physics//Physics.cpp ../../src/Physics//RigidBody.cpp ../../src/Resources/Helpers//Image.cpp ../../src/Resources/Helpers//ShaderPrePreprocessor.cpp ../../src/Resources/Core//RsrcPtr.cpp ../../src/Resources/Core//RsrcContainers.cpp 
-OBJECTS = Scanner.o skybox.o memory.o collision.o map.o TestHeader.o Main.o Smo.o Ez.o Ms.o Sm.o Pps.o Ssao.o Renderer.o Is.o MainRenderer.o Dbg.o Hdr.o Bs.o MeshNode.o SceneNode.o SkelNode.o Light.o SkelModelNode.o Camera.o ParticleEmitter.o Scene.o Ui.o ShaderProg.o Material.o Texture.o SkelAnim.o Extension.o Skeleton.o LightProps.o Mesh.o ParticleEmitterProps.o Input.o App.o Common.o Util.o Controller.o SkelAnimCtrl.o Physics.o RigidBody.o Image.o ShaderPrePreprocessor.o RsrcPtr.o RsrcContainers.o 
+SOURCES = ../../src/Util/Tokenizer//Scanner.cpp ../../src/Misc//skybox.cpp ../../src/Misc//memory.cpp ../../src/Misc//collision.cpp ../../src/Misc//map.cpp ../../src/Misc//TestHeader.cpp ../../src//Main.cpp ../../src/Renderer//Smo.cpp ../../src/Renderer//Ez.cpp ../../src/Renderer//Ms.cpp ../../src/Renderer//Sm.cpp ../../src/Renderer//Pps.cpp ../../src/Renderer//Ssao.cpp ../../src/Renderer//Renderer.cpp ../../src/Renderer//Is.cpp ../../src/Renderer//MainRenderer.cpp ../../src/Renderer//Dbg.cpp ../../src/Renderer//Hdr.cpp ../../src/Renderer//Bs.cpp ../../src/Scene//MeshNode.cpp ../../src/Scene//SceneNode.cpp ../../src/Scene//SkelNode.cpp ../../src/Scene//Light.cpp ../../src/Scene//SkelModelNode.cpp ../../src/Scene//Camera.cpp ../../src/Scene//ParticleEmitter.cpp ../../src/Scene//Scene.cpp ../../src/Ui//Ui.cpp ../../src/Resources//ShaderProg.cpp ../../src/Resources//Material.cpp ../../src/Resources//Texture.cpp ../../src/Resources//SkelAnim.cpp ../../src/Resources//Extension.cpp ../../src/Resources//Skeleton.cpp ../../src/Resources//LightProps.cpp ../../src/Resources//Mesh.cpp ../../src/Resources//ParticleEmitterProps.cpp ../../src/Util//Input.cpp ../../src/Util//App.cpp ../../src/Util//Common.cpp ../../src/Util//Util.cpp ../../src/Scene/Controllers//Controller.cpp ../../src/Scene/Controllers//SkelAnimCtrl.cpp ../../src/Physics//Physics.cpp ../../src/Physics//RigidBody.cpp ../../src/Physics//PhyCharacter.cpp ../../src/Resources/Helpers//Image.cpp ../../src/Resources/Helpers//ShaderPrePreprocessor.cpp ../../src/Resources/Core//RsrcPtr.cpp ../../src/Resources/Core//RsrcContainers.cpp 
+OBJECTS = Scanner.o skybox.o memory.o collision.o map.o TestHeader.o Main.o Smo.o Ez.o Ms.o Sm.o Pps.o Ssao.o Renderer.o Is.o MainRenderer.o Dbg.o Hdr.o Bs.o MeshNode.o SceneNode.o SkelNode.o Light.o SkelModelNode.o Camera.o ParticleEmitter.o Scene.o Ui.o ShaderProg.o Material.o Texture.o SkelAnim.o Extension.o Skeleton.o LightProps.o Mesh.o ParticleEmitterProps.o Input.o App.o Common.o Util.o Controller.o SkelAnimCtrl.o Physics.o RigidBody.o PhyCharacter.o Image.o ShaderPrePreprocessor.o RsrcPtr.o RsrcContainers.o 
 PRECOMPILED_HEADERS = 
 
 all: $(PRECOMPILED_HEADERS) $(SOURCES) $(EXECUTABLE)
@@ -44,7 +44,7 @@ skybox.o: ../../src/Misc//skybox.cpp ../../src/Misc//skybox.h \
  ../../src/Renderer/BufferObjects/BufferObject.h ../../src/Scene/Camera.h \
  ../../src/Misc/collision.h ../../src/Scene/SceneNode.h \
  ../../src/Util/Vec.h ../../src/Scene/Scene.h ../../src/Misc/skybox.h \
- ../../src/Physics/Physics.h ../../src/Physics/PhyCommon.h \
+ ../../src/Physics/Physics.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -173,14 +173,7 @@ skybox.o: ../../src/Misc//skybox.cpp ../../src/Misc//skybox.h \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Physics/Physics.h \
- ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Util/App.h ../../extern/include/SDL/SDL.h \
  ../../extern/include/SDL/SDL_main.h \
@@ -519,7 +512,6 @@ Main.o: ../../src//Main.cpp ../../src/Util/Common.h \
  ../../src/Resources/Texture.h ../../src/Resources/Material.h \
  ../../src/Resources/ShaderProg.h ../../src/Scene/Scene.h \
  ../../src/Misc/skybox.h ../../src/Physics/Physics.h \
- ../../src/Physics/PhyCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -648,14 +640,7 @@ Main.o: ../../src//Main.cpp ../../src/Util/Common.h \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Physics/Physics.h \
- ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Util/Tokenizer/Scanner.h ../../src/Misc/map.h \
  ../../src/Scene/MeshNode.h \
@@ -663,14 +648,13 @@ Main.o: ../../src//Main.cpp ../../src/Util/Common.h \
  ../../src/Scene/Controllers/Controller.h ../../src/Scene/SkelModelNode.h \
  ../../src/Scene/MeshNode.h ../../src/Resources/SkelAnim.h \
  ../../src/Scene/Controllers/SkelAnimCtrl.h ../../src/Scene/SkelNode.h \
- ../../src/Resources/Skeleton.h ../../src/Physics/PhyCommon.h \
- ../../src/Util/Tokenizer/Parser.h ../../src/Util/Tokenizer/Scanner.h \
- ../../src/Scene/ParticleEmitter.h ../../src/Scene/GhostNode.h \
- ../../src/Resources/ParticleEmitterProps.h ../../src/Physics/RigidBody.h \
- ../../src/Physics/PhyCharacter.h \
+ ../../src/Resources/Skeleton.h ../../src/Util/Tokenizer/Parser.h \
+ ../../src/Util/Tokenizer/Scanner.h ../../src/Scene/ParticleEmitter.h \
+ ../../src/Scene/GhostNode.h ../../src/Resources/ParticleEmitterProps.h \
+ ../../src/Physics/PhyCharacter.h ../../src/Physics/Physics.h \
  ../../src/Renderer/RendererInitializer.h \
  ../../src/Renderer/MainRenderer.h ../../src/Renderer/Renderer.h \
- ../../src/Physics/DebugDrawer.h
+ ../../src/Physics/DebugDrawer.h ../../src/Physics/RigidBody.h
 	@echo Compiling ../../src//Main.cpp...
 	@$(CXX) $(INCPATH) $(CFLAGS) ../../src//Main.cpp -o Main.o
 
@@ -757,7 +741,6 @@ Ez.o: ../../src/Renderer//Ez.cpp ../../src/Renderer//Renderer.h \
  ../../src/Scene/Controllers/MeshSkelNodeCtrl.h \
  ../../src/Scene/Controllers/Controller.h ../../src/Scene/Scene.h \
  ../../src/Misc/skybox.h ../../src/Physics/Physics.h \
- ../../src/Physics/PhyCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -886,14 +869,7 @@ Ez.o: ../../src/Renderer//Ez.cpp ../../src/Renderer//Renderer.h \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Physics/Physics.h \
- ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Renderer/Renderer.h
 	@echo Compiling ../../src/Renderer//Ez.cpp...
@@ -951,7 +927,6 @@ Ms.o: ../../src/Renderer//Ms.cpp ../../src/Renderer//Renderer.h \
  ../../extern/include/SDL/SDL_revision.h \
  ../../extern/include/SDL/SDL_compat.h ../../src/Scene/Scene.h \
  ../../src/Misc/skybox.h ../../src/Physics/Physics.h \
- ../../src/Physics/PhyCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -1080,20 +1055,13 @@ Ms.o: ../../src/Renderer//Ms.cpp ../../src/Renderer//Renderer.h \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Util/Vec.h \
- ../../src/Physics/Physics.h ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Renderer/Renderer.h ../../src/Scene/Camera.h \
  ../../src/Misc/collision.h ../../src/Scene/SceneNode.h \
- ../../src/Scene/MeshNode.h ../../src/Resources/Material.h \
- ../../src/Resources/ShaderProg.h ../../src/Resources/Texture.h \
- ../../src/Resources/Mesh.h \
+ ../../src/Util/Vec.h ../../src/Scene/MeshNode.h \
+ ../../src/Resources/Material.h ../../src/Resources/ShaderProg.h \
+ ../../src/Resources/Texture.h ../../src/Resources/Mesh.h \
  ../../src/Scene/Controllers/MeshSkelNodeCtrl.h \
  ../../src/Scene/Controllers/Controller.h
 	@echo Compiling ../../src/Renderer//Ms.cpp...
@@ -1151,7 +1119,6 @@ Sm.o: ../../src/Renderer//Sm.cpp ../../src/Renderer//Renderer.h \
  ../../extern/include/SDL/SDL_revision.h \
  ../../extern/include/SDL/SDL_compat.h ../../src/Scene/Scene.h \
  ../../src/Misc/skybox.h ../../src/Physics/Physics.h \
- ../../src/Physics/PhyCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -1280,19 +1247,13 @@ Sm.o: ../../src/Renderer//Sm.cpp ../../src/Renderer//Renderer.h \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Util/Vec.h \
- ../../src/Physics/Physics.h ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Renderer/Renderer.h ../../src/Scene/MeshNode.h \
- ../../src/Scene/SceneNode.h ../../src/Resources/Material.h \
- ../../src/Resources/ShaderProg.h ../../src/Resources/Texture.h \
- ../../src/Resources/Mesh.h ../../src/Misc/collision.h \
+ ../../src/Scene/SceneNode.h ../../src/Util/Vec.h \
+ ../../src/Resources/Material.h ../../src/Resources/ShaderProg.h \
+ ../../src/Resources/Texture.h ../../src/Resources/Mesh.h \
+ ../../src/Misc/collision.h \
  ../../src/Scene/Controllers/MeshSkelNodeCtrl.h \
  ../../src/Scene/Controllers/Controller.h \
  ../../src/Resources/LightProps.h
@@ -1402,7 +1363,6 @@ Renderer.o: ../../src/Renderer//Renderer.cpp \
  ../../extern/include/SDL/SDL_revision.h \
  ../../extern/include/SDL/SDL_compat.h ../../src/Scene/Scene.h \
  ../../src/Misc/skybox.h ../../src/Physics/Physics.h \
- ../../src/Physics/PhyCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -1531,14 +1491,7 @@ Renderer.o: ../../src/Renderer//Renderer.cpp \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Physics/Physics.h \
- ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Renderer/Renderer.h
 	@echo Compiling ../../src/Renderer//Renderer.cpp...
@@ -1600,7 +1553,6 @@ Is.o: ../../src/Renderer//Is.cpp ../../src/Renderer//Renderer.h \
  ../../extern/include/SDL/SDL_revision.h \
  ../../extern/include/SDL/SDL_compat.h ../../src/Scene/Scene.h \
  ../../src/Misc/skybox.h ../../src/Physics/Physics.h \
- ../../src/Physics/PhyCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -1729,14 +1681,7 @@ Is.o: ../../src/Renderer//Is.cpp ../../src/Renderer//Renderer.h \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Physics/Physics.h \
- ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Renderer/Renderer.h
 	@echo Compiling ../../src/Renderer//Is.cpp...
@@ -1850,7 +1795,6 @@ Dbg.o: ../../src/Renderer//Dbg.cpp ../../src/Renderer//Renderer.h \
  ../../extern/include/SDL/SDL_revision.h \
  ../../extern/include/SDL/SDL_compat.h ../../src/Scene/Scene.h \
  ../../src/Misc/skybox.h ../../src/Physics/Physics.h \
- ../../src/Physics/PhyCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -1979,17 +1923,11 @@ Dbg.o: ../../src/Renderer//Dbg.cpp ../../src/Renderer//Renderer.h \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Util/Vec.h \
- ../../src/Physics/Physics.h ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Renderer/Renderer.h ../../src/Scene/SkelNode.h \
- ../../src/Scene/SceneNode.h ../../src/Scene/Controllers/SkelAnimCtrl.h \
+ ../../src/Scene/SceneNode.h ../../src/Util/Vec.h \
+ ../../src/Scene/Controllers/SkelAnimCtrl.h \
  ../../src/Scene/Controllers/Controller.h ../../src/Resources/Skeleton.h \
  ../../src/Scene/Camera.h ../../src/Misc/collision.h \
  ../../src/Resources/LightProps.h ../../src/Resources/Texture.h
@@ -2070,7 +2008,6 @@ Bs.o: ../../src/Renderer//Bs.cpp ../../src/Renderer//Renderer.h \
  ../../extern/include/SDL/SDL_revision.h \
  ../../extern/include/SDL/SDL_compat.h ../../src/Scene/Scene.h \
  ../../src/Misc/skybox.h ../../src/Physics/Physics.h \
- ../../src/Physics/PhyCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -2199,19 +2136,13 @@ Bs.o: ../../src/Renderer//Bs.cpp ../../src/Renderer//Renderer.h \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Util/Vec.h \
- ../../src/Physics/Physics.h ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Renderer/Renderer.h ../../src/Scene/MeshNode.h \
- ../../src/Scene/SceneNode.h ../../src/Resources/Material.h \
- ../../src/Resources/ShaderProg.h ../../src/Resources/Texture.h \
- ../../src/Resources/Mesh.h ../../src/Misc/collision.h \
+ ../../src/Scene/SceneNode.h ../../src/Util/Vec.h \
+ ../../src/Resources/Material.h ../../src/Resources/ShaderProg.h \
+ ../../src/Resources/Texture.h ../../src/Resources/Mesh.h \
+ ../../src/Misc/collision.h \
  ../../src/Scene/Controllers/MeshSkelNodeCtrl.h \
  ../../src/Scene/Controllers/Controller.h
 	@echo Compiling ../../src/Renderer//Bs.cpp...
@@ -2301,7 +2232,6 @@ SceneNode.o: ../../src/Scene//SceneNode.cpp ../../src/Scene//SceneNode.h \
  ../../src/Resources/Core/RsrcPtr.h ../../src/Misc/collision.h \
  ../../src/Scene/Controllers/Controller.h ../../src/Scene//Scene.h \
  ../../src/Misc/skybox.h ../../src/Physics/Physics.h \
- ../../src/Physics/PhyCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -2430,14 +2360,7 @@ SceneNode.o: ../../src/Scene//SceneNode.cpp ../../src/Scene//SceneNode.h \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Physics/Physics.h \
- ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Util/App.h ../../extern/include/SDL/SDL.h \
  ../../extern/include/SDL/SDL_main.h \
@@ -2677,31 +2600,6 @@ Camera.o: ../../src/Scene//Camera.cpp ../../src/Scene//Camera.h \
 	@$(CXX) $(INCPATH) $(CFLAGS) ../../src/Scene//Camera.cpp -o Camera.o
 
 ParticleEmitter.o: ../../src/Scene//ParticleEmitter.cpp \
- ../../src/Scene//ParticleEmitter.h ../../src/Util/Common.h \
- ../../src/Scene//SceneNode.h ../../src/Util/Vec.h \
- ../../src/Util/Common.h ../../src/Math/Math.h ../../src/Math/Vec2.h \
- ../../src/Math/MathForwardDecls.h ../../src/Math/Vec2.inl.h \
- ../../src/Math/MathDfltHeader.h ../../src/Math/Vec3.h \
- ../../src/Math/Vec3.inl.h ../../src/Math/Vec4.h \
- ../../src/Math/Vec4.inl.h ../../src/Math/Quat.h \
- ../../src/Math/Quat.inl.h ../../src/Math/Axisang.h \
- ../../src/Math/Axisang.inl.h ../../src/Math/Euler.h \
- ../../src/Math/Euler.inl.h ../../src/Math/Mat3.h \
- ../../src/Math/Mat3.inl.h ../../src/Math/Mat4.h \
- ../../src/Math/Mat4.inl.h ../../src/Math/MathFuncs.h \
- ../../src/Math/MathFuncs.inl.h ../../src/Math/Transform.h \
- ../../src/Math/Transform.inl.h ../../src/Scene//MeshNode.h \
- ../../src/Resources/Material.h ../../src/Resources/Core/Resource.h \
- ../../src/Util/Util.h ../../src/Util/Vec.h \
- ../../src/Resources/ShaderProg.h ../../extern/include/GL/glew.h \
- ../../src/Resources/Texture.h ../../src/Resources/Core/RsrcPtr.h \
- ../../src/Resources/Mesh.h ../../src/Renderer/BufferObjects/Vbo.h \
- ../../src/Renderer/BufferObjects/BufferObject.h \
- ../../src/Misc/collision.h \
- ../../src/Scene/Controllers/MeshSkelNodeCtrl.h \
- ../../src/Scene/Controllers/Controller.h ../../src/Scene//GhostNode.h \
- ../../src/Resources/ParticleEmitterProps.h ../../src/Physics/RigidBody.h \
- ../../extern/include/bullet/btBulletDynamicsCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -2765,7 +2663,7 @@ ParticleEmitter.o: ../../src/Scene//ParticleEmitter.cpp \
  ../../extern/include/bullet/LinearMath/btSerializer.h \
  ../../extern/include/bullet/LinearMath/btStackAlloc.h \
  ../../extern/include/bullet/LinearMath/btHashMap.h \
- ../../src/Misc/memory.h \
+ ../../src/Misc/memory.h ../../src/Util/Common.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleMeshShape.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btCompoundShape.h \
@@ -2794,6 +2692,8 @@ ParticleEmitter.o: ../../src/Scene//ParticleEmitter.cpp \
  ../../extern/include/bullet/LinearMath/btQuickprof.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../extern/include/bullet/LinearMath/btSerializer.h \
+ ../../extern/include/bullet/btBulletDynamicsCommon.h \
+ ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btDynamicsWorld.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
@@ -2828,20 +2728,32 @@ ParticleEmitter.o: ../../src/Scene//ParticleEmitter.cpp \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/btBulletCollisionCommon.h \
+ ../../src/Scene//ParticleEmitter.h ../../src/Scene//SceneNode.h \
+ ../../src/Util/Vec.h ../../src/Util/Common.h ../../src/Math/Math.h \
+ ../../src/Math/Vec2.h ../../src/Math/MathForwardDecls.h \
+ ../../src/Math/Vec2.inl.h ../../src/Math/MathDfltHeader.h \
+ ../../src/Math/Vec3.h ../../src/Math/Vec3.inl.h ../../src/Math/Vec4.h \
+ ../../src/Math/Vec4.inl.h ../../src/Math/Quat.h \
+ ../../src/Math/Quat.inl.h ../../src/Math/Axisang.h \
+ ../../src/Math/Axisang.inl.h ../../src/Math/Euler.h \
+ ../../src/Math/Euler.inl.h ../../src/Math/Mat3.h \
+ ../../src/Math/Mat3.inl.h ../../src/Math/Mat4.h \
+ ../../src/Math/Mat4.inl.h ../../src/Math/MathFuncs.h \
+ ../../src/Math/MathFuncs.inl.h ../../src/Math/Transform.h \
+ ../../src/Math/Transform.inl.h ../../src/Scene//MeshNode.h \
+ ../../src/Resources/Material.h ../../src/Resources/Core/Resource.h \
+ ../../src/Util/Util.h ../../src/Util/Vec.h \
+ ../../src/Resources/ShaderProg.h ../../extern/include/GL/glew.h \
+ ../../src/Resources/Texture.h ../../src/Resources/Core/RsrcPtr.h \
+ ../../src/Resources/Mesh.h ../../src/Renderer/BufferObjects/Vbo.h \
+ ../../src/Renderer/BufferObjects/BufferObject.h \
+ ../../src/Misc/collision.h \
+ ../../src/Scene/Controllers/MeshSkelNodeCtrl.h \
+ ../../src/Scene/Controllers/Controller.h ../../src/Scene//GhostNode.h \
+ ../../src/Resources/ParticleEmitterProps.h ../../src/Physics/RigidBody.h \
  ../../src/Renderer/MainRenderer.h ../../src/Renderer/Renderer.h \
  ../../src/Renderer/BufferObjects/Fbo.h ../../src/Resources/Texture.h \
- ../../src/Resources/ShaderProg.h ../../src/Physics/PhyCommon.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Physics/PhyCommon.h ../../src/Scene/SceneNode.h \
- ../../src/Physics/Physics.h ../../src/Physics/DebugDrawer.h \
- ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
- ../../src/Renderer/Renderer.h ../../src/Util/App.h \
+ ../../src/Resources/ShaderProg.h ../../src/Util/App.h \
  ../../extern/include/SDL/SDL.h ../../extern/include/SDL/SDL_main.h \
  ../../extern/include/SDL/SDL_stdinc.h \
  ../../extern/include/SDL/SDL_config.h \
@@ -2874,7 +2786,10 @@ ParticleEmitter.o: ../../src/Scene//ParticleEmitter.cpp \
  ../../extern/include/SDL/SDL_version.h \
  ../../extern/include/SDL/SDL_revision.h \
  ../../extern/include/SDL/SDL_compat.h ../../src/Scene//Scene.h \
- ../../src/Misc/skybox.h ../../src/Physics/Physics.h
+ ../../src/Misc/skybox.h ../../src/Physics/Physics.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
+ ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
+ ../../src/Renderer/Renderer.h
 	@echo Compiling ../../src/Scene//ParticleEmitter.cpp...
 	@$(CXX) $(INCPATH) $(CFLAGS) ../../src/Scene//ParticleEmitter.cpp -o ParticleEmitter.o
 
@@ -2895,7 +2810,6 @@ Scene.o: ../../src/Scene//Scene.cpp ../../src/Scene//Scene.h \
  ../../src/Math/MathFuncs.inl.h ../../src/Math/Transform.h \
  ../../src/Math/Transform.inl.h ../../src/Resources/Core/RsrcPtr.h \
  ../../src/Resources/ShaderProg.h ../../src/Physics/Physics.h \
- ../../src/Physics/PhyCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -3024,20 +2938,13 @@ Scene.o: ../../src/Scene//Scene.cpp ../../src/Scene//Scene.h \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Util/Vec.h \
- ../../src/Physics/Physics.h ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Renderer/Renderer.h ../../src/Renderer/BufferObjects/Fbo.h \
  ../../src/Renderer/BufferObjects/Vbo.h \
  ../../src/Renderer/BufferObjects/BufferObject.h \
  ../../src/Scene//SkelNode.h ../../src/Scene//SceneNode.h \
- ../../src/Scene/Controllers/SkelAnimCtrl.h \
+ ../../src/Util/Vec.h ../../src/Scene/Controllers/SkelAnimCtrl.h \
  ../../src/Scene/Controllers/Controller.h ../../src/Resources/Skeleton.h \
  ../../src/Scene//Camera.h ../../src/Misc/collision.h \
  ../../src/Scene//MeshNode.h ../../src/Resources/Material.h \
@@ -3047,7 +2954,7 @@ Scene.o: ../../src/Scene//Scene.cpp ../../src/Scene//Scene.h \
  ../../src/Resources/LightProps.h \
  ../../src/Scene/Controllers/Controller.h \
  ../../src/Scene//ParticleEmitter.h ../../src/Scene//GhostNode.h \
- ../../src/Resources/ParticleEmitterProps.h ../../src/Physics/RigidBody.h
+ ../../src/Resources/ParticleEmitterProps.h
 	@echo Compiling ../../src/Scene//Scene.cpp...
 	@$(CXX) $(INCPATH) $(CFLAGS) ../../src/Scene//Scene.cpp -o Scene.o
 
@@ -3460,7 +3367,6 @@ App.o: ../../src/Util//App.cpp ../../extern/include/GL/glew.h \
  ../../src/Math/MathFuncs.inl.h ../../src/Math/Transform.h \
  ../../src/Math/Transform.inl.h ../../src/Resources/Core/RsrcPtr.h \
  ../../src/Resources/ShaderProg.h ../../src/Physics/Physics.h \
- ../../src/Physics/PhyCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -3589,14 +3495,7 @@ App.o: ../../src/Util//App.cpp ../../extern/include/GL/glew.h \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Util/Vec.h \
- ../../src/Physics/Physics.h ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Renderer/Renderer.h ../../src/Renderer/BufferObjects/Fbo.h \
  ../../src/Renderer/BufferObjects/Vbo.h \
@@ -3666,7 +3565,6 @@ Controller.o: ../../src/Scene/Controllers//Controller.cpp \
  ../../src/Math/MathFuncs.inl.h ../../src/Math/Transform.h \
  ../../src/Math/Transform.inl.h ../../src/Resources/Core/RsrcPtr.h \
  ../../src/Resources/ShaderProg.h ../../src/Physics/Physics.h \
- ../../src/Physics/PhyCommon.h \
  ../../extern/include/bullet/btBulletCollisionCommon.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
@@ -3795,14 +3693,7 @@ Controller.o: ../../src/Scene/Controllers//Controller.cpp \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/MotionState.h \
- ../../src/Scene/SceneNode.h ../../src/Util/Vec.h \
- ../../src/Physics/Physics.h ../../src/Physics/DebugDrawer.h \
+ ../../src/Physics/BtAndAnkiConvertors.h ../../src/Physics/DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Renderer/Renderer.h ../../src/Renderer/BufferObjects/Fbo.h \
  ../../src/Renderer/BufferObjects/Vbo.h \
@@ -3900,25 +3791,29 @@ SkelAnimCtrl.o: ../../src/Scene/Controllers//SkelAnimCtrl.cpp \
 	@echo Compiling ../../src/Scene/Controllers//SkelAnimCtrl.cpp...
 	@$(CXX) $(INCPATH) $(CFLAGS) ../../src/Scene/Controllers//SkelAnimCtrl.cpp -o SkelAnimCtrl.o
 
-Physics.o: ../../src/Physics//Physics.cpp ../../src/Physics//Physics.h \
- ../../src/Util/Common.h ../../src/Physics//PhyCommon.h \
- ../../extern/include/bullet/btBulletCollisionCommon.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
+Physics.o: ../../src/Physics//Physics.cpp \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h \
+ ../../extern/include/bullet/LinearMath/btTransform.h \
+ ../../extern/include/bullet/LinearMath/btMatrix3x3.h \
  ../../extern/include/bullet/LinearMath/btVector3.h \
  ../../extern/include/bullet/LinearMath/btScalar.h \
  ../../extern/include/bullet/LinearMath/btMinMax.h \
  ../../extern/include/bullet/LinearMath/btScalar.h \
- ../../extern/include/bullet/LinearMath/btTransform.h \
- ../../extern/include/bullet/LinearMath/btMatrix3x3.h \
- ../../extern/include/bullet/LinearMath/btVector3.h \
  ../../extern/include/bullet/LinearMath/btQuaternion.h \
  ../../extern/include/bullet/LinearMath/btQuadWord.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h \
  ../../extern/include/bullet/LinearMath/btMotionState.h \
  ../../extern/include/bullet/LinearMath/btTransform.h \
  ../../extern/include/bullet/LinearMath/btAlignedAllocator.h \
  ../../extern/include/bullet/LinearMath/btAlignedObjectArray.h \
  ../../extern/include/bullet/LinearMath/btAlignedAllocator.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h \
+ ../../extern/include/bullet/LinearMath/btVector3.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h \
  ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btDispatcher.h \
  ../../extern/include/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h \
@@ -3928,10 +3823,9 @@ Physics.o: ../../src/Physics//Physics.cpp ../../src/Physics//Physics.h \
  ../../extern/include/bullet/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h \
  ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
+ ../../src/Physics//Physics.h \
+ ../../extern/include/bullet/btBulletCollisionCommon.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
  ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btBoxShape.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h \
@@ -3965,7 +3859,7 @@ Physics.o: ../../src/Physics//Physics.cpp ../../src/Physics//Physics.h \
  ../../extern/include/bullet/LinearMath/btSerializer.h \
  ../../extern/include/bullet/LinearMath/btStackAlloc.h \
  ../../extern/include/bullet/LinearMath/btHashMap.h \
- ../../src/Misc/memory.h \
+ ../../src/Misc/memory.h ../../src/Util/Common.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleMeshShape.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h \
  ../../extern/include/bullet/BulletCollision/CollisionShapes/btCompoundShape.h \
@@ -4030,15 +3924,10 @@ Physics.o: ../../src/Physics//Physics.cpp ../../src/Physics//Physics.h \
  ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
  ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
- ../../src/Math/Math.h ../../src/Math/Vec2.h \
- ../../src/Math/MathForwardDecls.h ../../src/Math/Vec2.inl.h \
- ../../src/Math/MathDfltHeader.h ../../src/Math/Vec3.h \
- ../../src/Math/Vec3.inl.h ../../src/Math/Vec4.h \
+ ../../src/Physics//BtAndAnkiConvertors.h ../../src/Math/Math.h \
+ ../../src/Math/Vec2.h ../../src/Math/MathForwardDecls.h \
+ ../../src/Math/Vec2.inl.h ../../src/Math/MathDfltHeader.h \
+ ../../src/Math/Vec3.h ../../src/Math/Vec3.inl.h ../../src/Math/Vec4.h \
  ../../src/Math/Vec4.inl.h ../../src/Math/Quat.h \
  ../../src/Math/Quat.inl.h ../../src/Math/Axisang.h \
  ../../src/Math/Axisang.inl.h ../../src/Math/Euler.h \
@@ -4046,18 +3935,17 @@ Physics.o: ../../src/Physics//Physics.cpp ../../src/Physics//Physics.h \
  ../../src/Math/Mat3.inl.h ../../src/Math/Mat4.h \
  ../../src/Math/Mat4.inl.h ../../src/Math/MathFuncs.h \
  ../../src/Math/MathFuncs.inl.h ../../src/Math/Transform.h \
- ../../src/Math/Transform.inl.h ../../src/Physics//BtAndAnkiConvertors.h \
- ../../src/Physics//MotionState.h ../../src/Scene/SceneNode.h \
- ../../src/Util/Vec.h ../../src/Util/Common.h \
- ../../src/Physics//DebugDrawer.h \
+ ../../src/Math/Transform.inl.h ../../src/Physics//DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Renderer/Renderer.h ../../src/Renderer/BufferObjects/Fbo.h \
  ../../extern/include/GL/glew.h ../../src/Resources/Texture.h \
  ../../src/Resources/Core/Resource.h ../../src/Util/Util.h \
- ../../src/Util/Vec.h ../../src/Resources/ShaderProg.h \
- ../../src/Renderer/BufferObjects/Vbo.h \
+ ../../src/Util/Common.h ../../src/Util/Vec.h \
+ ../../src/Resources/ShaderProg.h ../../src/Renderer/BufferObjects/Vbo.h \
  ../../src/Renderer/BufferObjects/BufferObject.h \
- ../../src/Resources/Core/RsrcPtr.h
+ ../../src/Resources/Core/RsrcPtr.h ../../src/Physics//PhyCharacter.h \
+ ../../src/Physics//MotionState.h ../../src/Scene/SceneNode.h \
+ ../../src/Util/Vec.h
 	@echo Compiling ../../src/Physics//Physics.cpp...
 	@$(CXX) $(INCPATH) $(CFLAGS) ../../src/Physics//Physics.cpp -o Physics.o
 
@@ -4202,94 +4090,184 @@ RigidBody.o: ../../src/Physics//RigidBody.cpp \
  ../../src/Math/Mat3.inl.h ../../src/Math/Mat4.h \
  ../../src/Math/Mat4.inl.h ../../src/Math/MathFuncs.h \
  ../../src/Math/MathFuncs.inl.h ../../src/Math/Transform.h \
- ../../src/Math/Transform.inl.h ../../src/Util/App.h \
- ../../extern/include/SDL/SDL.h ../../extern/include/SDL/SDL_main.h \
- ../../extern/include/SDL/SDL_stdinc.h \
- ../../extern/include/SDL/SDL_config.h \
- ../../extern/include/SDL/SDL_platform.h \
- ../../extern/include/SDL/begin_code.h \
- ../../extern/include/SDL/close_code.h \
- ../../extern/include/SDL/SDL_atomic.h \
- ../../extern/include/SDL/SDL_audio.h \
- ../../extern/include/SDL/SDL_error.h \
- ../../extern/include/SDL/SDL_endian.h \
- ../../extern/include/SDL/SDL_mutex.h \
- ../../extern/include/SDL/SDL_thread.h \
- ../../extern/include/SDL/SDL_rwops.h \
- ../../extern/include/SDL/SDL_clipboard.h \
- ../../extern/include/SDL/SDL_cpuinfo.h \
- ../../extern/include/SDL/SDL_events.h \
- ../../extern/include/SDL/SDL_video.h \
- ../../extern/include/SDL/SDL_pixels.h \
- ../../extern/include/SDL/SDL_rect.h \
- ../../extern/include/SDL/SDL_surface.h \
- ../../extern/include/SDL/SDL_keyboard.h \
- ../../extern/include/SDL/SDL_keysym.h \
- ../../extern/include/SDL/SDL_scancode.h \
- ../../extern/include/SDL/SDL_mouse.h \
- ../../extern/include/SDL/SDL_joystick.h \
- ../../extern/include/SDL/SDL_quit.h \
- ../../extern/include/SDL/SDL_loadso.h \
- ../../extern/include/SDL/SDL_power.h \
- ../../extern/include/SDL/SDL_timer.h \
- ../../extern/include/SDL/SDL_version.h \
- ../../extern/include/SDL/SDL_revision.h \
- ../../extern/include/SDL/SDL_compat.h ../../src/Util/Common.h \
- ../../src/Physics//Physics.h ../../src/Physics//PhyCommon.h \
- ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
- ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
- ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
- ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
+ ../../src/Math/Transform.inl.h ../../src/Physics//Physics.h \
  ../../src/Physics//BtAndAnkiConvertors.h \
- ../../src/Physics//MotionState.h ../../src/Scene/SceneNode.h \
- ../../src/Util/Vec.h ../../src/Physics//DebugDrawer.h \
+ ../../src/Physics//DebugDrawer.h \
  ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
  ../../src/Renderer/Renderer.h ../../src/Renderer/BufferObjects/Fbo.h \
  ../../extern/include/GL/glew.h ../../src/Resources/Texture.h \
  ../../src/Resources/Core/Resource.h ../../src/Util/Util.h \
- ../../src/Util/Vec.h ../../src/Resources/ShaderProg.h \
- ../../src/Renderer/BufferObjects/Vbo.h \
+ ../../src/Util/Common.h ../../src/Util/Vec.h \
+ ../../src/Resources/ShaderProg.h ../../src/Renderer/BufferObjects/Vbo.h \
  ../../src/Renderer/BufferObjects/BufferObject.h \
  ../../src/Resources/Core/RsrcPtr.h ../../src/Scene/Scene.h \
- ../../src/Misc/skybox.h ../../src/Physics/Physics.h
+ ../../src/Misc/skybox.h ../../src/Physics/Physics.h \
+ ../../src/Physics//MotionState.h ../../src/Scene/SceneNode.h \
+ ../../src/Util/Vec.h
 	@echo Compiling ../../src/Physics//RigidBody.cpp...
 	@$(CXX) $(INCPATH) $(CFLAGS) ../../src/Physics//RigidBody.cpp -o RigidBody.o
 
+PhyCharacter.o: ../../src/Physics//PhyCharacter.cpp \
+ ../../extern/include/bullet/btBulletCollisionCommon.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
+ ../../extern/include/bullet/LinearMath/btVector3.h \
+ ../../extern/include/bullet/LinearMath/btScalar.h \
+ ../../extern/include/bullet/LinearMath/btMinMax.h \
+ ../../extern/include/bullet/LinearMath/btScalar.h \
+ ../../extern/include/bullet/LinearMath/btTransform.h \
+ ../../extern/include/bullet/LinearMath/btMatrix3x3.h \
+ ../../extern/include/bullet/LinearMath/btVector3.h \
+ ../../extern/include/bullet/LinearMath/btQuaternion.h \
+ ../../extern/include/bullet/LinearMath/btQuadWord.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h \
+ ../../extern/include/bullet/LinearMath/btMotionState.h \
+ ../../extern/include/bullet/LinearMath/btTransform.h \
+ ../../extern/include/bullet/LinearMath/btAlignedAllocator.h \
+ ../../extern/include/bullet/LinearMath/btAlignedObjectArray.h \
+ ../../extern/include/bullet/LinearMath/btAlignedAllocator.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btDispatcher.h \
+ ../../extern/include/bullet/BulletCollision/NarrowPhaseCollision/btPersistentManifold.h \
+ ../../extern/include/bullet/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h \
+ ../../extern/include/bullet/LinearMath/btTransformUtil.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btManifoldResult.h \
+ ../../extern/include/bullet/BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseInterface.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btBroadphaseProxy.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btBoxShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btPolyhedralConvexShape.h \
+ ../../extern/include/bullet/LinearMath/btMatrix3x3.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btConvexInternalShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btConvexShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btCollisionShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btCollisionMargin.h \
+ ../../extern/include/bullet/LinearMath/btAabbUtil2.h \
+ ../../extern/include/bullet/LinearMath/btMinMax.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btSphereShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btCapsuleShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btCylinderShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btBoxShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btConeShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btStaticPlaneShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btConcaveShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleCallback.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btConvexHullShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleMesh.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btStridingMeshInterface.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleMeshShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btOptimizedBvh.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btQuantizedBvh.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleInfoMap.h \
+ ../../extern/include/bullet/LinearMath/btHashMap.h \
+ ../../extern/include/bullet/LinearMath/btAlignedObjectArray.h \
+ ../../extern/include/bullet/LinearMath/btSerializer.h \
+ ../../extern/include/bullet/LinearMath/btStackAlloc.h \
+ ../../extern/include/bullet/LinearMath/btHashMap.h \
+ ../../src/Misc/memory.h ../../src/Util/Common.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleMeshShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btCompoundShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btTetrahedronShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btEmptyShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btMultiSphereShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionShapes/btUniformScalingShape.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionCreateFunc.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionConfiguration.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionDispatcher.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btSimpleBroadphase.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btAxisSweep3.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btDbvt.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btDbvtBroadphase.h \
+ ../../extern/include/bullet/LinearMath/btQuaternion.h \
+ ../../extern/include/bullet/LinearMath/btTransform.h \
+ ../../extern/include/bullet/LinearMath/btDefaultMotionState.h \
+ ../../extern/include/bullet/LinearMath/btMotionState.h \
+ ../../extern/include/bullet/LinearMath/btQuickprof.h \
+ ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
+ ../../extern/include/bullet/LinearMath/btSerializer.h \
+ ../../extern/include/bullet/btBulletDynamicsCommon.h \
+ ../../extern/include/bullet/btBulletCollisionCommon.h \
+ ../../extern/include/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h \
+ ../../extern/include/bullet/BulletDynamics/Dynamics/btDynamicsWorld.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btContactSolverInfo.h \
+ ../../extern/include/bullet/BulletDynamics/Dynamics/btContinuousDynamicsWorld.h \
+ ../../extern/include/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h \
+ ../../extern/include/bullet/BulletDynamics/Dynamics/btSimpleDynamicsWorld.h \
+ ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btJacobianEntry.h \
+ ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btSolverConstraint.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btSolverBody.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btHingeConstraint.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btConeTwistConstraint.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btSliderConstraint.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btUniversalConstraint.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btHinge2Constraint.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btConstraintSolver.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btContactConstraint.h \
+ ../../extern/include/bullet/BulletCollision/NarrowPhaseCollision/btManifoldPoint.h \
+ ../../extern/include/bullet/BulletDynamics/Vehicle/btRaycastVehicle.h \
+ ../../extern/include/bullet/BulletDynamics/ConstraintSolver/btTypedConstraint.h \
+ ../../extern/include/bullet/BulletDynamics/Vehicle/btVehicleRaycaster.h \
+ ../../extern/include/bullet/BulletDynamics/Vehicle/btWheelInfo.h \
+ ../../extern/include/bullet/BulletDynamics/Dynamics/btActionInterface.h \
+ ../../extern/include/bullet/BulletDynamics/Dynamics/btRigidBody.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btGhostObject.h \
+ ../../extern/include/bullet/BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \
+ ../../extern/include/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.h \
+ ../../extern/include/bullet/BulletDynamics/Character/btKinematicCharacterController.h \
+ ../../extern/include/bullet/BulletDynamics/Character/btCharacterControllerInterface.h \
+ ../../src/Physics//PhyCharacter.h ../../src/Physics//Physics.h \
+ ../../src/Physics//BtAndAnkiConvertors.h ../../src/Math/Math.h \
+ ../../src/Math/Vec2.h ../../src/Math/MathForwardDecls.h \
+ ../../src/Math/Vec2.inl.h ../../src/Math/MathDfltHeader.h \
+ ../../src/Math/Vec3.h ../../src/Math/Vec3.inl.h ../../src/Math/Vec4.h \
+ ../../src/Math/Vec4.inl.h ../../src/Math/Quat.h \
+ ../../src/Math/Quat.inl.h ../../src/Math/Axisang.h \
+ ../../src/Math/Axisang.inl.h ../../src/Math/Euler.h \
+ ../../src/Math/Euler.inl.h ../../src/Math/Mat3.h \
+ ../../src/Math/Mat3.inl.h ../../src/Math/Mat4.h \
+ ../../src/Math/Mat4.inl.h ../../src/Math/MathFuncs.h \
+ ../../src/Math/MathFuncs.inl.h ../../src/Math/Transform.h \
+ ../../src/Math/Transform.inl.h ../../src/Physics//DebugDrawer.h \
+ ../../extern/include/bullet/LinearMath/btIDebugDraw.h \
+ ../../src/Renderer/Renderer.h ../../src/Renderer/BufferObjects/Fbo.h \
+ ../../extern/include/GL/glew.h ../../src/Resources/Texture.h \
+ ../../src/Resources/Core/Resource.h ../../src/Util/Util.h \
+ ../../src/Util/Common.h ../../src/Util/Vec.h \
+ ../../src/Resources/ShaderProg.h ../../src/Renderer/BufferObjects/Vbo.h \
+ ../../src/Renderer/BufferObjects/BufferObject.h \
+ ../../src/Resources/Core/RsrcPtr.h ../../src/Physics//MotionState.h \
+ ../../src/Scene/SceneNode.h ../../src/Util/Vec.h \
+ ../../src/Physics//RigidBody.h
+	@echo Compiling ../../src/Physics//PhyCharacter.cpp...
+	@$(CXX) $(INCPATH) $(CFLAGS) ../../src/Physics//PhyCharacter.cpp -o PhyCharacter.o
+
 Image.o: ../../src/Resources/Helpers//Image.cpp \
- ../../extern/include/SDL/SDL_image.h ../../extern/include/SDL/SDL.h \
- ../../extern/include/SDL/SDL_main.h \
- ../../extern/include/SDL/SDL_stdinc.h \
- ../../extern/include/SDL/SDL_config.h \
- ../../extern/include/SDL/SDL_platform.h \
- ../../extern/include/SDL/begin_code.h \
- ../../extern/include/SDL/close_code.h \
- ../../extern/include/SDL/SDL_atomic.h \
- ../../extern/include/SDL/SDL_audio.h \
- ../../extern/include/SDL/SDL_error.h \
- ../../extern/include/SDL/SDL_endian.h \
- ../../extern/include/SDL/SDL_mutex.h \
- ../../extern/include/SDL/SDL_thread.h \
- ../../extern/include/SDL/SDL_rwops.h \
- ../../extern/include/SDL/SDL_clipboard.h \
- ../../extern/include/SDL/SDL_cpuinfo.h \
- ../../extern/include/SDL/SDL_events.h \
- ../../extern/include/SDL/SDL_video.h \
- ../../extern/include/SDL/SDL_pixels.h \
- ../../extern/include/SDL/SDL_rect.h \
- ../../extern/include/SDL/SDL_surface.h \
- ../../extern/include/SDL/SDL_keyboard.h \
- ../../extern/include/SDL/SDL_keysym.h \
- ../../extern/include/SDL/SDL_scancode.h \
- ../../extern/include/SDL/SDL_mouse.h \
- ../../extern/include/SDL/SDL_joystick.h \
- ../../extern/include/SDL/SDL_quit.h \
- ../../extern/include/SDL/SDL_loadso.h \
- ../../extern/include/SDL/SDL_power.h \
- ../../extern/include/SDL/SDL_timer.h \
- ../../extern/include/SDL/SDL_version.h \
- ../../extern/include/SDL/SDL_revision.h \
- ../../extern/include/SDL/SDL_compat.h \
  ../../src/Resources/Helpers//Image.h ../../src/Util/Common.h \
  ../../src/Util/Vec.h ../../src/Util/Common.h ../../src/Util/Util.h \
  ../../src/Util/Vec.h

+ 1 - 1
build/release/gen.cfg.py

@@ -18,4 +18,4 @@ precompiledHeadersFlags = defines__ + " -c -pedantic-errors -pedantic -ansi -Wal
 
 compilerFlags = precompiledHeadersFlags + " -fsingle-precision-constant"
 
-linkerFlags = "-rdynamic -L../../extern/lib-x86-64-linux -Wl,-Bstatic -lBulletSoftBody -lBulletDynamics -lBulletCollision -lLinearMath -lGLEW -lSDL_image -lGLU -lSDL -lboost_system -lboost_filesystem -Wl,-Bdynamic -lGL -ljpeg -lpng -ltiff"
+linkerFlags = "-rdynamic -L../../extern/lib-x86-64-linux -Wl,-Bstatic -lBulletSoftBody -lBulletDynamics -lBulletCollision -lLinearMath -lGLEW -lGLU -lboost_system -lboost_filesystem -Wl,-Bdynamic -lSDL -lGL -ljpeg -lpng -ltiff"

+ 13 - 12
docs/manual

@@ -40,27 +40,25 @@ AnKi requires a few up to date versions of some libraries. The libraries are:
   
 - Bullet Physics
 - SDL ver 1.3
-- SDL_image
 - GLEW
 - boost
+- libpng
+- libjpeg
 
-Normally in order to build AnKi you have to download (from the revision control
-repositories) and build some of the above libraries. To ease the building
+Normally, in order to build AnKi you have to download (from the revision control
+repositories) and build some of the above libraries because they are not
+provided in most Linux distros or they are old versions. To ease the building
 process and to save you some time some of the above libraries are already backed
-and installed in the extern directory. The backed libraries are for Linux and 
+and placed inside the extern directory. The backed libraries are for Linux and
 for x86-64 architecture. If you dont trust my binaries and/or you want to build
-the libs yourselves you have to download, build and install the libs in the 
+the libs yourselves you have to download, build and install the libs in the
 extern directory manually. The script *download-externs.sh* downloads the
 libraries (it requires SVN, mercurial, CMake, autoconf) and the *do-externs.sh*
 builds the libraries and installs them in the extern directory. Open the files
 and see how it is done.
 
-Boost is pretty big to download and build from SVN, also it doesnt need to be in
-the lattest version. That's why you wont find it inside the extern. The version
-provided by your Linux distribution's will do the trick so install it using the
-packet manager.
-
-In Ubuntu type: $ sudo apt-get install libboost<version>-dev-all
+You wont find any development files for boost, libpng and libjpeg inside the
+extern dir. Get them using your Linux distribution's packet manager.
 
 
 Building AnKi and optionally generating makefiles
@@ -92,7 +90,10 @@ following:
 
 #) $ cd <path to anki>/build/debug
 #) $ <path to gBuildSystem>/gbs.py
-#) $ make
+
+To build:
+
+$ make
 
 And the build process will begin. 
   

+ 10 - 10
docs/manual.html

@@ -337,25 +337,24 @@ also requires a few extra development libraries.</p>
 <ul class="simple">
 <li>Bullet Physics</li>
 <li>SDL ver 1.3</li>
-<li>SDL_image</li>
 <li>GLEW</li>
 <li>boost</li>
+<li>libpng</li>
+<li>libjpeg</li>
 </ul>
-<p>Normally in order to build AnKi you have to download (from the revision control
-repositories) and build some of the above libraries. To ease the building
+<p>Normally, in order to build AnKi you have to download (from the revision control
+repositories) and build some of the above libraries because they are not
+provided in most Linux distros or they are old versions. To ease the building
 process and to save you some time some of the above libraries are already backed
-and installed in the extern directory. The backed libraries are for Linux and
+and placed inside the extern directory. The backed libraries are for Linux and
 for x86-64 architecture. If you dont trust my binaries and/or you want to build
 the libs yourselves you have to download, build and install the libs in the
 extern directory manually. The script <em>download-externs.sh</em> downloads the
 libraries (it requires SVN, mercurial, CMake, autoconf) and the <em>do-externs.sh</em>
 builds the libraries and installs them in the extern directory. Open the files
 and see how it is done.</p>
-<p>Boost is pretty big to download and build from SVN, also it doesnt need to be in
-the lattest version. That's why you wont find it inside the extern. The version
-provided by your Linux distribution's will do the trick so install it using the
-packet manager.</p>
-<p>In Ubuntu type: $ sudo apt-get install libboost&lt;version&gt;-dev-all</p>
+<p>You wont find any development files for boost, libpng and libjpeg inside the
+extern dir. Get them using your Linux distribution's packet manager.</p>
 </div>
 <div class="section" id="building-anki-and-optionally-generating-makefiles">
 <h2><a class="toc-backref" href="#id4">Building AnKi and optionally generating makefiles</a></h2>
@@ -379,8 +378,9 @@ following:</p>
 <ol class="arabic simple">
 <li>$ cd &lt;path to anki&gt;/build/debug</li>
 <li>$ &lt;path to gBuildSystem&gt;/gbs.py</li>
-<li>$ make</li>
 </ol>
+<p>To build:</p>
+<p>$ make</p>
 <p>And the build process will begin.</p>
 </div>
 </div>

+ 0 - 10
extern/do-externs.sh

@@ -23,16 +23,6 @@ cd $EXTERN_DIR
 rsync -avuzb --exclude .hg ../../SDL/install/include/* include
 rsync -avuzb --exclude .hg ../../SDL/install/lib/* lib-x86-64-linux
 
-
-cd ../../SDL_image
-hg pull
-./autogen.sh
-./configure --prefix=$PWD/install
-nice make -j `cat /proc/cpuinfo | grep processor | wc -l`
-cd $EXTERN_DIR
-rsync -avuzb --exclude .hg ../../SDL_image/install/include/* include
-rsync -avuzb --exclude .hg ../../SDL_image/install/lib/* lib-x86-64-linux
-
 cd ../../glew
 svn update
 cd auto

+ 0 - 1
extern/download-externs.sh

@@ -5,4 +5,3 @@ cd ../../
 svn checkout http://bullet.googlecode.com/svn/trunk/ bullet
 hg clone http://hg.libsdl.org/SDL SDL
 svn checkout https://glew.svn.sourceforge.net/svnroot/glew/trunk/glew glew
-hg clone http://hg.libsdl.org/SDL_image SDL_image

+ 0 - 136
extern/include/SDL/SDL_image.h

@@ -1,136 +0,0 @@
-/*
-    SDL_image:  An example image loading library for use with SDL
-    Copyright (C) 1997-2009 Sam Lantinga
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-    Sam Lantinga
-    [email protected]
-*/
-
-/* A simple library to load images of various formats as SDL surfaces */
-
-#ifndef _SDL_IMAGE_H
-#define _SDL_IMAGE_H
-
-#include "SDL.h"
-#include "SDL_version.h"
-#include "begin_code.h"
-
-/* Set up for C function definitions, even when using C++ */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
-*/
-#define SDL_IMAGE_MAJOR_VERSION	1
-#define SDL_IMAGE_MINOR_VERSION	2
-#define SDL_IMAGE_PATCHLEVEL	10
-
-/* This macro can be used to fill a version structure with the compile-time
- * version of the SDL_image library.
- */
-#define SDL_IMAGE_VERSION(X)						\
-{									\
-	(X)->major = SDL_IMAGE_MAJOR_VERSION;				\
-	(X)->minor = SDL_IMAGE_MINOR_VERSION;				\
-	(X)->patch = SDL_IMAGE_PATCHLEVEL;				\
-}
-
-/* This function gets the version of the dynamically linked SDL_image library.
-   it should NOT be used to fill a version structure, instead you should
-   use the SDL_IMAGE_VERSION() macro.
- */
-extern DECLSPEC const SDL_version * SDLCALL IMG_Linked_Version(void);
-
-typedef enum
-{
-    IMG_INIT_JPG = 0x00000001,
-    IMG_INIT_PNG = 0x00000002,
-    IMG_INIT_TIF = 0x00000004
-} IMG_InitFlags;
-
-/* Loads dynamic libraries and prepares them for use.  Flags should be
-   one or more flags from IMG_InitFlags OR'd together.
-   It returns the flags successfully initialized, or 0 on failure.
- */
-extern DECLSPEC int SDLCALL IMG_Init(int flags);
-
-/* Unloads libraries loaded with IMG_Init */
-extern DECLSPEC void SDLCALL IMG_Quit(void);
-
-/* Load an image from an SDL data source.
-   The 'type' may be one of: "BMP", "GIF", "PNG", etc.
-
-   If the image format supports a transparent pixel, SDL will set the
-   colorkey for the surface.  You can enable RLE acceleration on the
-   surface afterwards by calling:
-	SDL_SetColorKey(image, SDL_RLEACCEL, image->format->colorkey);
- */
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadTyped_RW(SDL_RWops *src, int freesrc, char *type);
-/* Convenience functions */
-extern DECLSPEC SDL_Surface * SDLCALL IMG_Load(const char *file);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_Load_RW(SDL_RWops *src, int freesrc);
-
-/* Invert the alpha of a surface for use with OpenGL
-   This function is now a no-op, and only provided for backwards compatibility.
-*/
-extern DECLSPEC int SDLCALL IMG_InvertAlpha(int on);
-
-/* Functions to detect a file type, given a seekable source */
-extern DECLSPEC int SDLCALL IMG_isICO(SDL_RWops *src);
-extern DECLSPEC int SDLCALL IMG_isCUR(SDL_RWops *src);
-extern DECLSPEC int SDLCALL IMG_isBMP(SDL_RWops *src);
-extern DECLSPEC int SDLCALL IMG_isGIF(SDL_RWops *src);
-extern DECLSPEC int SDLCALL IMG_isJPG(SDL_RWops *src);
-extern DECLSPEC int SDLCALL IMG_isLBM(SDL_RWops *src);
-extern DECLSPEC int SDLCALL IMG_isPCX(SDL_RWops *src);
-extern DECLSPEC int SDLCALL IMG_isPNG(SDL_RWops *src);
-extern DECLSPEC int SDLCALL IMG_isPNM(SDL_RWops *src);
-extern DECLSPEC int SDLCALL IMG_isTIF(SDL_RWops *src);
-extern DECLSPEC int SDLCALL IMG_isXCF(SDL_RWops *src);
-extern DECLSPEC int SDLCALL IMG_isXPM(SDL_RWops *src);
-extern DECLSPEC int SDLCALL IMG_isXV(SDL_RWops *src);
-
-/* Individual loading functions */
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadICO_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadCUR_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadBMP_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadGIF_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadJPG_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadLBM_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadPCX_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadPNG_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadPNM_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadTGA_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadTIF_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadXCF_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadXPM_RW(SDL_RWops *src);
-extern DECLSPEC SDL_Surface * SDLCALL IMG_LoadXV_RW(SDL_RWops *src);
-
-extern DECLSPEC SDL_Surface * SDLCALL IMG_ReadXPMFromArray(char **xpm);
-
-/* We'll use SDL for reporting errors */
-#define IMG_SetError	SDL_SetError
-#define IMG_GetError	SDL_GetError
-
-/* Ends C function definitions when using C++ */
-#ifdef __cplusplus
-}
-#endif
-#include "close_code.h"
-
-#endif /* _SDL_IMAGE_H */

+ 0 - 1
extern/lib-x86-64-linux/libSDL_image-1.2.so.0

@@ -1 +0,0 @@
-libSDL_image-1.2.so.0.8.2

BIN
extern/lib-x86-64-linux/libSDL_image-1.2.so.0.8.2


+ 0 - 1
extern/lib-x86-64-linux/libSDL_image.so

@@ -1 +0,0 @@
-libSDL_image-1.2.so.0.8.2

+ 209 - 44
src/Resources/Helpers/Image.cpp

@@ -1,4 +1,4 @@
-#include <SDL/SDL_image.h>
+#include <png.h>
 #include <boost/filesystem.hpp>
 #include <boost/algorithm/string.hpp>
 #include <fstream>
@@ -6,6 +6,10 @@
 #include "Util.h"
 
 
+#define IMG_ERROR(x) ERROR("File \"" << filename << "\": " << x)
+#define IMG_WARNING(x) WARNING("File \"" << filename << "\": " << x)
+
+
 uchar Image::tgaHeaderUncompressed[12] = {0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0};
 uchar Image::tgaHeaderCompressed[12]   = {0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0};
 
@@ -13,24 +17,24 @@ uchar Image::tgaHeaderCompressed[12]   = {0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0};
 //======================================================================================================================
 // loadUncompressedTga                                                                                                 =
 //======================================================================================================================
-bool Image::loadUncompressedTga(const char* filename, fstream& fs)
+bool Image::loadUncompressedTga(const char* filename, fstream& fs, uint& bpp)
 {
 	// read the info from header
-	unsigned char header6[6];
+	uchar header6[6];
 	fs.read((char*)&header6[0], sizeof(header6));
 	if(fs.gcount() != sizeof(header6))
 	{
-		ERROR("File \"" << filename << "\": Cannot read info header");
+		IMG_ERROR("Cannot read info header");
 		return false;
 	}
 
 	width  = header6[1] * 256 + header6[0];
 	height = header6[3] * 256 + header6[2];
-	bpp	= header6[4];
+	bpp = header6[4];
 
 	if((width <= 0) || (height <= 0) || ((bpp != 24) && (bpp !=32)))
 	{
-		ERROR("File \"" << filename << "\": Invalid image information");
+		IMG_ERROR("Invalid image information");
 		return false;
 	}
 
@@ -39,10 +43,10 @@ bool Image::loadUncompressedTga(const char* filename, fstream& fs)
 	int imageSize = bytesPerPxl * width * height;
 	data.resize(imageSize);
 
-	fs.read(&data[0], imageSize);
+	fs.read(reinterpret_cast<char*>(&data[0]), imageSize);
 	if(fs.gcount() != imageSize)
 	{
-		ERROR("File \"" << filename << "\": Cannot read image data");
+		IMG_ERROR("Cannot read image data");
 		return false;
 	}
 
@@ -61,13 +65,13 @@ bool Image::loadUncompressedTga(const char* filename, fstream& fs)
 //======================================================================================================================
 // loadCompressedTga                                                                                                   =
 //======================================================================================================================
-bool Image::loadCompressedTga(const char* filename, fstream& fs)
+bool Image::loadCompressedTga(const char* filename, fstream& fs, uint& bpp)
 {
 	unsigned char header6[6];
 	fs.read((char*)&header6[0], sizeof(header6));
 	if(fs.gcount() != sizeof(header6))
 	{
-		ERROR("File \"" << filename << "\": Cannot read info header");
+		IMG_ERROR("Cannot read info header");
 		return false;
 	}
 
@@ -77,7 +81,7 @@ bool Image::loadCompressedTga(const char* filename, fstream& fs)
 
 	if((width <= 0) || (height <= 0) || ((bpp != 24) && (bpp !=32)))
 	{
-		ERROR("File \"" << filename << "\": Invalid texture information");
+		IMG_ERROR("Invalid texture information");
 		return false;
 	}
 
@@ -98,7 +102,7 @@ bool Image::loadCompressedTga(const char* filename, fstream& fs)
 		fs.read((char*)&chunkheader, sizeof(unsigned char));
 		if(fs.gcount() != sizeof(unsigned char))
 		{
-			ERROR("File \"" << filename << "\": Cannot read RLE header");
+			IMG_ERROR("Cannot read RLE header");
 			return false;
 		}
 
@@ -110,7 +114,7 @@ bool Image::loadCompressedTga(const char* filename, fstream& fs)
 				fs.read((char*)&colorbuffer[0], bytesPerPxl);
 				if(fs.gcount() != bytesPerPxl)
 				{
-					ERROR("File \"" << filename << "\": Cannot read image data");
+					IMG_ERROR("Cannot read image data");
 					return false;
 				}
 
@@ -128,7 +132,7 @@ bool Image::loadCompressedTga(const char* filename, fstream& fs)
 
 				if(currentpixel > pixelcount)
 				{
-					ERROR("File \"" << filename << "\": Too many pixels read");
+					IMG_ERROR("Too many pixels read");
 					return false;
 				}
 			}
@@ -139,7 +143,7 @@ bool Image::loadCompressedTga(const char* filename, fstream& fs)
 			fs.read((char*)&colorbuffer[0], bytesPerPxl);
 			if(fs.gcount() != bytesPerPxl)
 			{
-				ERROR("File \"" << filename << "\": Cannot read from file");
+				IMG_ERROR("Cannot read from file");
 				return false;
 			}
 
@@ -159,7 +163,7 @@ bool Image::loadCompressedTga(const char* filename, fstream& fs)
 
 				if(currentpixel > pixelcount)
 				{
-					ERROR("File \"" << filename << "\": Too many pixels read");
+					IMG_ERROR("Too many pixels read");
 					return false;
 				}
 			}
@@ -178,17 +182,18 @@ bool Image::loadTga(const char* filename)
 	fstream fs;
 	char myTgaHeader[12];
 	fs.open(filename, ios::in|ios::binary);
+	uint bpp;
 
 	if(!fs.good())
 	{
-		ERROR("File \"" << filename << "\": Cannot open file");
+		IMG_ERROR("Cannot open file");
 		return false;
 	}
 
 	fs.read(&myTgaHeader[0], sizeof(myTgaHeader));
 	if(fs.gcount() != sizeof(myTgaHeader))
 	{
-		ERROR("File \"" << filename << "\": Cannot read file header");
+		IMG_ERROR("Cannot read file header");
 		fs.close();
 		return false;
 	}
@@ -196,18 +201,23 @@ bool Image::loadTga(const char* filename)
 	bool funcsReturn;
 	if(memcmp(tgaHeaderUncompressed, &myTgaHeader[0], sizeof(myTgaHeader)) == 0)
 	{
-		funcsReturn = loadUncompressedTga(filename, fs);
+		funcsReturn = loadUncompressedTga(filename, fs, bpp);
 	}
 	else if(memcmp(tgaHeaderCompressed, &myTgaHeader[0], sizeof(myTgaHeader)) == 0)
 	{
-		funcsReturn = loadCompressedTga(filename, fs);
+		funcsReturn = loadCompressedTga(filename, fs, bpp);
 	}
 	else
 	{
-		ERROR("File \"" << filename << "\": Invalid image header");
+		IMG_ERROR("Invalid image header");
 		funcsReturn = false;
 	}
 
+	if(bpp == 32)
+		type == T_RGBA;
+	else
+		type == T_RGB;
+
 	fs.close();
 	return funcsReturn;
 }
@@ -218,42 +228,197 @@ bool Image::loadTga(const char* filename)
 //======================================================================================================================
 bool Image::loadPng(const char* filename)
 {
-	SDL_Surface *sdli;
-	sdli = IMG_Load(filename);
-	if(!sdli)
+	/*
+	 * Data
+	 */
+	const uint PNG_SIG_SIZE = 8;
+	FILE* file = NULL;
+	png_structp pngPtr = NULL;
+	png_infop infoPtr = NULL;
+	bool ok = false;
+	size_t charsRead;
+	uint bitDepth;
+	uint channels;
+	uint rowbytes;
+	uint colorType;
+	vector<png_bytep> rowPointers;
+
+	/*
+	 * Open file
+	 */
+	file = fopen(filename, "rb");
+	if(file == NULL)
 	{
-		ERROR("File \"" << filename << "\": " << IMG_GetError());
-		return false;
+		IMG_ERROR("Cannot open file");
+		goto cleanup;
 	}
 
-	width = sdli->w;
-	height = sdli->h;
+	/*
+	 * Validate PNG header
+	 */
+	png_byte pngsig[PNG_SIG_SIZE];
+	charsRead = fread(pngsig, 1, PNG_SIG_SIZE, file);
+	if(charsRead != PNG_SIG_SIZE)
+	{
+		IMG_ERROR("Cannot read PNG header");
+		goto cleanup;
+	}
+
+	if(png_sig_cmp(pngsig, 0, PNG_SIG_SIZE) != 0)
+	{
+		IMG_ERROR("File not PNG image");
+		goto cleanup;
+	}
 
-	bpp = sdli->format->BitsPerPixel;
+	/*
+	 * Crete some PNG structs
+	 */
+	pngPtr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+	if(!pngPtr)
+	{
+		IMG_ERROR("png_create_read_struct failed");
+		goto cleanup;
+	}
 
-	if(bpp != 24 && bpp != 32)
+	infoPtr = png_create_info_struct(pngPtr);
+	if(!infoPtr)
 	{
-		ERROR("File \"" << filename << "\": The image must be 24 or 32 bits");
-		SDL_FreeSurface(sdli);
-		return false;
+		IMG_ERROR("png_create_info_struct failed");
+		goto cleanup;
 	}
 
-	int bytespp = bpp / 8;
-	int bytes = width * height * bytespp;
-	data.resize(bytes);
+	/*
+	 * Set error handling
+	 */
+	if(setjmp(png_jmpbuf(pngPtr)))
+	{
+		IMG_ERROR("Reading PNG file failed");
+		goto cleanup;
+	}
 
-	// copy and flip height
-	for(uint w=0; w<width; w++)
+	/*
+	 * Init io
+	 */
+	png_init_io(pngPtr, file);
+	png_set_sig_bytes(pngPtr, PNG_SIG_SIZE); // PNG lib knows that we allready have read the header
+
+	/*
+	 * Read info and make conversions
+	 * This loop reads info, if not acceptable it calls libpng funcs to change them and re-runs the loop
+	 */
+	png_read_info(pngPtr, infoPtr);
+	while(true)
 	{
-		for(uint h=0; h<height; h++)
+		width = png_get_image_width(pngPtr, infoPtr);
+		height = png_get_image_height(pngPtr, infoPtr);
+		bitDepth = png_get_bit_depth(pngPtr, infoPtr);
+		channels = png_get_channels(pngPtr, infoPtr);
+		colorType = png_get_color_type(pngPtr, infoPtr);
+
+		// 1) Convert the color types
+		switch(colorType)
+		{
+			case PNG_COLOR_TYPE_PALETTE:
+				IMG_WARNING("Converting PNG_COLOR_TYPE_PALETTE to PNG_COLOR_TYPE_RGB or PNG_COLOR_TYPE_RGBA");
+				png_set_palette_to_rgb(pngPtr);
+				goto again;
+				break;
+			case PNG_COLOR_TYPE_GRAY:
+				// do nothing
+				break;
+			case PNG_COLOR_TYPE_GRAY_ALPHA:
+				IMG_WARNING("Cannot accept PNG_COLOR_TYPE_GRAY_ALPHA. Converting to PNG_COLOR_TYPE_GRAY");
+				png_set_strip_alpha(pngPtr);
+				goto again;
+				break;
+			case PNG_COLOR_TYPE_RGB:
+				// do nothing
+				break;
+			case PNG_COLOR_TYPE_RGBA:
+				// do nothing
+				break;
+			default:
+				FATAL("Forgot to handle a color type");
+				break;
+		}
+
+		// 2) Convert the bit depths
+		if(colorType == PNG_COLOR_TYPE_GRAY && bitDepth < 8)
+		{
+			IMG_WARNING("Converting bit depth");
+			png_set_gray_1_2_4_to_8(pngPtr);
+			goto again;
+		}
+
+		if(bitDepth > 8)
 		{
-			memcpy( &data[(width * h + w) * bytespp], &((char*)sdli->pixels)[(width * (height -h - 1) + w) * bytespp],
-			        bytespp);
+			IMG_WARNING("Converting bit depth");
+			png_set_strip_16(pngPtr);
 		}
+
+		break;
+
+		again:
+			png_read_update_info(pngPtr, infoPtr);
 	}
 
-	SDL_FreeSurface(sdli);
-	return true;
+	// Sanity checks
+	if((bitDepth != 8) ||
+		 (colorType != PNG_COLOR_TYPE_GRAY && colorType != PNG_COLOR_TYPE_RGB && colorType != PNG_COLOR_TYPE_RGBA))
+	{
+		IMG_ERROR("Sanity checks failed");
+		goto cleanup;
+	}
+
+	/*
+	 * Read this sucker
+	 */
+	rowbytes = png_get_rowbytes(pngPtr, infoPtr);
+
+	rowPointers.resize(height * sizeof(png_bytep));
+
+	data.resize(rowbytes * height);
+
+	for (uint i = 0; i < height; ++i)
+		rowPointers[height - 1 - i] = &data[i * rowbytes];
+
+	png_read_image(pngPtr, &rowPointers[0]);
+
+	/*
+	 * Finalize
+	 */
+	switch(colorType)
+	{
+		case PNG_COLOR_TYPE_GRAY:
+			type = T_R;
+			break;
+		case PNG_COLOR_TYPE_RGB:
+			type = T_RGB;
+			break;
+		case PNG_COLOR_TYPE_RGBA:
+			type = T_RGBA;
+			break;
+	}
+
+	ok = true;
+
+	/*
+	 * Cleanup
+	 */
+	cleanup:
+
+	if(pngPtr)
+	{
+		if(infoPtr)
+			png_destroy_read_struct(&pngPtr, &infoPtr, NULL);
+		else
+			png_destroy_read_struct(&pngPtr, NULL, NULL);
+	}
+
+	if(file)
+		fclose(file);
+
+	return ok;
 }
 
 
@@ -284,7 +449,7 @@ bool Image::load(const char* filename)
 	}
 	else
 	{
-		ERROR("File \"" << filename << "\": Unsupported extension");
+		IMG_ERROR("Unsupported extension");
 		return false;
 	}
 	return true;

+ 23 - 7
src/Resources/Helpers/Image.h

@@ -6,24 +6,40 @@
 
 
 /**
- * Image class. Used in Texture::load
+ * Image class. Used in Texture::load. Supported images: TGA and PNG
  */
 class Image
 {
 	public:
-		uint  width;
-		uint  height;
-		uint  bpp;
-		Vec<char> data;
+		enum Type
+		{
+			T_R,
+			T_RGB,
+			T_RGBA
+		};
+
+	PROPERTY_R(uint, width, getWidth)
+	PROPERTY_R(uint, height, getHeight)
+	PROPERTY_R(Type, type, getType)
+	PROPERTY_R(Vec<uchar>, data, getData)
 
+	public:
+		Image() {}
+		~Image() {}
 		bool load(const char* filename);
 
 	private:
 		static uchar tgaHeaderUncompressed[12];
 		static uchar tgaHeaderCompressed[12];
 
-		bool loadUncompressedTga(const char* filename, fstream& fs);
-		bool loadCompressedTga(const char* filename, fstream& fs);
+		/**
+		 * @name TGA help functions
+		 */
+		/**@{*/
+		bool loadUncompressedTga(const char* filename, fstream& fs, uint& bpp);
+		bool loadCompressedTga(const char* filename, fstream& fs, uint& bpp);
+		/**@}*/
+
 		bool loadPng(const char* filename);
 		bool loadTga(const char* filename);
 };

+ 23 - 11
src/Resources/Texture.cpp

@@ -59,20 +59,32 @@ bool Texture::load(const char* filename)
 	// leave to GL_REPEAT. There is not real performance impact
 	setRepeat(true);
 
-	int format = (img.bpp==32) ? GL_RGBA : GL_RGB;
-
-	int intFormat; // the internal format of the image
-	if(compressionEnabled)
-	{
-		//int_format = (img.bpp==32) ? GL_COMPRESSED_RGBA_S3TC_DXT1 : GL_COMPRESSED_RGB_S3TC_DXT1;
-		intFormat = (img.bpp==32) ? GL_COMPRESSED_RGBA : GL_COMPRESSED_RGB;
-	}
-	else
+	// chose formats
+	GLint internalFormat;
+	GLint format;
+	GLint type;
+	switch(img.getType())
 	{
-		intFormat = (img.bpp==32) ? GL_RGBA : GL_RGB;
+		case Image::T_R:
+			internalFormat = (compressionEnabled) ? GL_COMPRESSED_RED : GL_RED;
+			format = GL_RED;
+			type = GL_UNSIGNED_BYTE;
+			break;
+
+		case Image::T_RGB:
+			internalFormat = (compressionEnabled) ? GL_COMPRESSED_RGB : GL_RGB;
+			format = GL_RGB;
+			type = GL_UNSIGNED_BYTE;
+			break;
+
+		case Image::T_RGBA:
+			internalFormat = (compressionEnabled) ? GL_COMPRESSED_RGBA : GL_RGBA;
+			format = GL_RGBA;
+			type = GL_UNSIGNED_BYTE;
+			break;
 	}
 
-	glTexImage2D(target, 0, intFormat, img.width, img.height, 0, format, GL_UNSIGNED_BYTE, &img.data[0]);
+	glTexImage2D(target, 0, internalFormat, img.getWidth(), img.getHeight(), 0, format, type, &img.getData()[0]);
 	if(mipmappingEnabled)
 	{
 		glGenerateMipmap(target);

+ 0 - 2
src/Util/App.cpp

@@ -219,8 +219,6 @@ void App::printAppInfo()
 	msg << "GLEW " << glewGetString(GLEW_VERSION) << ", ";
 	const SDL_version* v = SDL_Linked_Version();
 	msg << "SDL " << int(v->major) << '.' << int(v->minor) << '.' << int(v->patch) << ", ";
-	v = IMG_Linked_Version();
-	msg << "SDL_image " << int(v->major) << '.' << int(v->minor) << '.' << int(v->patch) << ", ";
 	msg << "build date " __DATE__ << ", ";
 	msg << "rev " << REVISION;