]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
added Debug Entries
authorPeter Schaefer <schaeferpm@gmail.com>
Sun, 27 Mar 2016 13:35:33 +0000 (15:35 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Sun, 27 Mar 2016 13:35:33 +0000 (15:35 +0200)
Weave/Graphix/Debug.h [new file with mode: 0644]
Weave/Graphix/Graphix.cpp
Weave/Weave.vcxproj
Weave/Weave.vcxproj.filters

diff --git a/Weave/Graphix/Debug.h b/Weave/Graphix/Debug.h
new file mode 100644 (file)
index 0000000..6cd1a7c
--- /dev/null
@@ -0,0 +1,153 @@
+#pragma once\r
+\r
+#if _DEBUG\r
+\r
+#include <string>\r
+#include <sstream>\r
+#include <iostream>\r
+#include <Windows.h>\r
+#include <GL\glew.h>\r
+\r
+\r
+static std::string FormatDebugOutput(GLenum source, GLenum type, GLuint id, GLenum severity, const char* msg) {\r
+       std::stringstream stringStream;\r
+       std::string sourceString;\r
+       std::string typeString;\r
+       std::string severityString;\r
+\r
+       // The AMD variant of this extension provides a less detailed classification of the error,\r
+       // which is why some arguments might be "Unknown".\r
+       switch (source) {\r
+       case GL_DEBUG_CATEGORY_API_ERROR_AMD:\r
+       case GL_DEBUG_SOURCE_API: {\r
+               sourceString = "API";\r
+               break;\r
+       }\r
+       case GL_DEBUG_CATEGORY_APPLICATION_AMD:\r
+       case GL_DEBUG_SOURCE_APPLICATION: {\r
+               sourceString = "Application";\r
+               break;\r
+       }\r
+       case GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD:\r
+       case GL_DEBUG_SOURCE_WINDOW_SYSTEM: {\r
+               sourceString = "Window System";\r
+               break;\r
+       }\r
+       case GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD:\r
+       case GL_DEBUG_SOURCE_SHADER_COMPILER: {\r
+               sourceString = "Shader Compiler";\r
+               break;\r
+       }\r
+       case GL_DEBUG_SOURCE_THIRD_PARTY: {\r
+               sourceString = "Third Party";\r
+               break;\r
+       }\r
+       case GL_DEBUG_CATEGORY_OTHER_AMD:\r
+       case GL_DEBUG_SOURCE_OTHER: {\r
+               sourceString = "Other";\r
+               break;\r
+       }\r
+       default: {\r
+               sourceString = "Unknown";\r
+               break;\r
+       }\r
+       }\r
+\r
+       switch (type) {\r
+       case GL_DEBUG_TYPE_ERROR: {\r
+               typeString = "Error";\r
+               break;\r
+       }\r
+       case GL_DEBUG_CATEGORY_DEPRECATION_AMD:\r
+       case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: {\r
+               typeString = "Deprecated Behavior";\r
+               break;\r
+       }\r
+       case GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD:\r
+       case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: {\r
+               typeString = "Undefined Behavior";\r
+               break;\r
+       }\r
+       case GL_DEBUG_TYPE_PORTABILITY_ARB: {\r
+               typeString = "Portability";\r
+               break;\r
+       }\r
+       case GL_DEBUG_CATEGORY_PERFORMANCE_AMD:\r
+       case GL_DEBUG_TYPE_PERFORMANCE: {\r
+               typeString = "Performance";\r
+               break;\r
+       }\r
+       case GL_DEBUG_CATEGORY_OTHER_AMD:\r
+       case GL_DEBUG_TYPE_OTHER: {\r
+               typeString = "Other";\r
+               break;\r
+       }\r
+       default: {\r
+               typeString = "Unknown";\r
+               break;\r
+       }\r
+       }\r
+\r
+       switch (severity) {\r
+       case GL_DEBUG_SEVERITY_HIGH: {\r
+               severityString = "High";\r
+               break;\r
+       }\r
+       case GL_DEBUG_SEVERITY_MEDIUM: {\r
+               severityString = "Medium";\r
+               break;\r
+       }\r
+       case GL_DEBUG_SEVERITY_LOW: {\r
+               severityString = "Low";\r
+               break;\r
+       }\r
+       default: {\r
+               severityString = "Unknown";\r
+               break;\r
+       }\r
+       }\r
+\r
+       stringStream << "OpenGL Error: " << msg;\r
+       stringStream << " [Source = " << sourceString;\r
+       stringStream << ", Type = " << typeString;\r
+       stringStream << ", Severity = " << severityString;\r
+       stringStream << ", ID = " << id << "]";\r
+\r
+       return stringStream.str();\r
+}\r
+\r
+static void APIENTRY DebugCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const GLvoid* userParam) {\r
+       switch (id) {\r
+       case 131218: {\r
+               // Program/shader state performance warning:\r
+               // Fragment Shader is going to be recompiled because the shader key based on GL state mismatches.\r
+\r
+               return;\r
+       }\r
+       default: {\r
+               break;\r
+       }\r
+       }\r
+\r
+       std::string error = FormatDebugOutput(source, type, id, severity, message);\r
+       std::cout << error << std::endl; //set BREAKPOINT HERE\r
+}\r
+\r
+static void APIENTRY DebugCallbackAMD(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam) {\r
+       switch (id) {\r
+       case 131218: {\r
+               // Program/shader state performance warning:\r
+               // Fragment Shader is going to be recompiled because the shader key based on GL state mismatches.\r
+\r
+               return;\r
+       }\r
+       default: {\r
+               break;\r
+       }\r
+       }\r
+\r
+       std::string error = FormatDebugOutput(category, category, id, severity, message);\r
+       std::cout << error << std::endl; //set BREAKPOINT HERE\r
+}\r
+#endif\r
+\r
index cfe9e34452d7079a53f36cae5092ffab7f1be0cb..d0b064efd3f1b52e173fbf796d92ece39ac05e1c 100644 (file)
-#include "Graphix.h"
-
-#include "../Message.h"
-#include "Shader.h"
-#include <string>
-
-using std::string;
-
-#define MOTION_BLUR_COEFF 0.99f
-#define MOTION_BLUR_INTENS 0.99f
-
-void Graphix::setWindowSize(unsigned int _width, unsigned int _height)
-{
-       width = _width;
-       height = _height;
-}
-
-void Graphix::setWindowPos(unsigned int _xpos, unsigned int _ypos)
-{
-       xpos = _xpos;
-       ypos = _ypos;
-}
-
-unsigned int Graphix::getWindowHeight()
-{
-       return height;
-}
-unsigned int Graphix::getWindowWidth()
-{
-       return width;
-}
-
-
-void Graphix::enableEffects(Effects _eff)
-{
-       effects |=  _eff;
-
-       updateEffects();
-}
-
-
-void Graphix::disableEffects(Effects _eff)
-{
-       effects &= ~_eff;
-
-       updateEffects();
-}
-
-bool Graphix::testEffect(Effects _eff)
-{
-       return effects & _eff;
-}
-
-void Graphix::updateEffects()
-{
-       //Transparency
-       if (effects & EF_TRANSPARENCY)
-       {
-               glEnable(GL_BLEND);
-               glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-       }
-       else
-               glDisable(GL_BLEND);
-}
-
-void Graphix::init()
-{
-
-       if (SDL_Init(sdlFlags) != 0)
-       {
-               Message::error((string)"SDL_Init: " + SDL_GetError());
-       }
-
-       SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
-
-       SDL_GL_SetAttribute(SDL_GL_ACCUM_RED_SIZE, 16);
-       SDL_GL_SetAttribute(SDL_GL_ACCUM_GREEN_SIZE, 16);
-       SDL_GL_SetAttribute(SDL_GL_ACCUM_BLUE_SIZE, 16);
-       SDL_GL_SetAttribute(SDL_GL_ACCUM_ALPHA_SIZE, 16);
-
-       sdl_window = SDL_CreateWindow(windowTitle.c_str(), xpos, ypos, width, height, windowFlags);
-
-       if (sdl_window == nullptr)
-       {
-               Message::error((string)"SDL_CreateWindow: " + SDL_GetError());
-       }
-
-       sdl_glcontext = SDL_GL_CreateContext(sdl_window);
-
-       GLenum err = glewInit();
-       if (err != GLEW_OK)
-       {
-               Message::error((string)"glewInit: " + (char*)glewGetErrorString(err));
-       }
-
-       SDL_ShowCursor(SDL_DISABLE);
-
-       glEnable(GL_DEPTH_TEST);
-
-       //SDL_SetWindowGrab(sdl_window, SDL_TRUE);
-       //SDL_ShowCursor(SDL_DISABLE);
-       glEnable(GL_COLOR_MATERIAL);
-       //glEnable(GL_TEXTURE_CUBE_MAP);
-       //glEnable(GL_LIGHTING);
-       //glEnable(GL_LIGHT0);
-       glEnable(GL_CULL_FACE);
-       glShadeModel(GL_SMOOTH);
-
-       glEnable(GL_BLEND);
-       glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-
-       glClearColor(0.9f, 0.9f, 1.0f, 1.f);
-       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-       glClearAccum(0.f, 0.f, 0.f, 0.f);
-       glClear(GL_ACCUM_BUFFER_BIT);
-
-       shader_BBox = new Shader("basic_VS.hlsl", "basic_FS.hlsl");
-}
-
-void Graphix::FullScreen(bool _enable, bool _keepDesktopResolution)
-{
-       if (_enable)
-       {
-               if (_keepDesktopResolution)
-               {
-                       width_bkp = width;
-                       height_bkp = height;
-
-                       SDL_DisplayMode dm;
-                       if (SDL_GetDesktopDisplayMode(0, &dm) != 0)
-                               Message::error((string)"SDL_GetDesktopDisplayMode failed:" + SDL_GetError());
-
-                       width = dm.w;
-                       height = dm.h;
-
-                       SDL_SetWindowSize(sdl_window, width, height);
-               }
-               SDL_SetWindowFullscreen(sdl_window, SDL_WINDOW_FULLSCREEN);
-       }
-       else
-       {
-               if (_keepDesktopResolution && width_bkp !=0)
-               {
-                       width = width_bkp;
-                       height = height_bkp;
-
-                       SDL_SetWindowSize(sdl_window, width, height);
-               }
-               SDL_SetWindowFullscreen(sdl_window, 0);
-       }
-               
-}
-
-void Graphix::catchMouse()
-{
-       //SDL_SetWindowGrab(sdl_window, SDL_TRUE);
-       SDL_ShowCursor(SDL_DISABLE);    //TODO eventuell nicht nötig
-}
-
-void Graphix::freeMouse()
-{
-       //SDL_SetWindowGrab(sdl_window, SDL_FALSE);
-       SDL_ShowCursor(SDL_ENABLE);             //TODO eventuell nicht nötig
-}
-
-void Graphix::hideMouse(bool _enable)
-{
-       if (_enable)
-               SDL_ShowCursor(SDL_DISABLE);
-       else
-               SDL_ShowCursor(SDL_ENABLE);
-}
-
-void Graphix::clear()
-{
-       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-       if (testEffect(EF_MOTION_BLUR))
-       {
-               glAccum(GL_RETURN, MOTION_BLUR_INTENS);
-               glClear(GL_ACCUM_BUFFER_BIT);
-       }
-
-
-}
-
-
-void Graphix::swap()
-{
-       if (testEffect(EF_MOTION_BLUR))
-               glAccum(GL_ACCUM, MOTION_BLUR_COEFF);
-       SDL_GL_SwapWindow(sdl_window);
-}
-
-
-
-void Graphix::cleanup()
-{
-       delete shader_BBox;
-
-       //SDL_SetWindowGrab(sdl_window, SDL_FALSE);
-
-       SDL_GL_DeleteContext(sdl_glcontext);
-       SDL_DestroyWindow(sdl_window);
-
-       SDL_Quit();
-}
-
-unsigned int Graphix::getGlError()
-{
-       GLenum error = glGetError();
-
-       if (error != GL_NO_ERROR) {
-               switch (error) {
-               case GL_INVALID_ENUM:
-                       Message::error((string)"GL: enum argument out of range.");
-                       break;
-               case GL_INVALID_VALUE:
-                       Message::error((string)"GL: Numeric argument out of range.");
-                       break;
-               case GL_INVALID_OPERATION:
-                       Message::error((string)"GL: Operation illegal in current state.");
-                       break;
-               case GL_INVALID_FRAMEBUFFER_OPERATION:
-                       Message::error((string)"GL: Framebuffer object is not complete.");
-                       break;
-               case GL_OUT_OF_MEMORY:
-                       Message::error((string)"GL: Not enough memory left to execute command.");
-                       break;
-               default:
-                       Message::error((string)"GL: Unknown error.");
-               }
-       }
-       return error;
-}
-
-unsigned int Graphix::width = 1024;
-unsigned int Graphix::height = 768;
-
-unsigned int Graphix::xpos = SDL_WINDOWPOS_UNDEFINED;
-unsigned int Graphix::ypos = SDL_WINDOWPOS_UNDEFINED;
-
-unsigned int Graphix::width_bkp = 0;
-unsigned int Graphix::height_bkp = 0;
-
-string Graphix::windowTitle = "Weave";
-
-Uint32 Graphix::windowFlags = SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_INPUT_GRABBED;
-Uint32 Graphix::sdlFlags = SDL_INIT_VIDEO | SDL_INIT_TIMER;
-
-SDL_Window* Graphix::sdl_window;
-
-SDL_GLContext Graphix::sdl_glcontext;
-
-short Graphix::effects = EF_TRANSPARENCY;
-
-Shader* Graphix::shader_BBox;
+#include "Graphix.h"\r
+\r
+#include "Debug.h"\r
+\r
+#include "../Message.h"\r
+#include "Shader.h"\r
+#include <string>\r
+\r
+using std::string;\r
+\r
+#define MOTION_BLUR_COEFF 0.99f\r
+#define MOTION_BLUR_INTENS 0.99f\r
+\r
+void Graphix::setWindowSize(unsigned int _width, unsigned int _height)\r
+{\r
+       width = _width;\r
+       height = _height;\r
+}\r
+\r
+void Graphix::setWindowPos(unsigned int _xpos, unsigned int _ypos)\r
+{\r
+       xpos = _xpos;\r
+       ypos = _ypos;\r
+}\r
+\r
+unsigned int Graphix::getWindowHeight()\r
+{\r
+       return height;\r
+}\r
+unsigned int Graphix::getWindowWidth()\r
+{\r
+       return width;\r
+}\r
+\r
+\r
+void Graphix::enableEffects(Effects _eff)\r
+{\r
+       effects |=  _eff;\r
+\r
+       updateEffects();\r
+}\r
+\r
+\r
+void Graphix::disableEffects(Effects _eff)\r
+{\r
+       effects &= ~_eff;\r
+\r
+       updateEffects();\r
+}\r
+\r
+bool Graphix::testEffect(Effects _eff)\r
+{\r
+       return effects & _eff;\r
+}\r
+\r
+void Graphix::updateEffects()\r
+{\r
+       //Transparency\r
+       if (effects & EF_TRANSPARENCY)\r
+       {\r
+               glEnable(GL_BLEND);\r
+               glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);\r
+       }\r
+       else\r
+               glDisable(GL_BLEND);\r
+}\r
+\r
+void Graphix::init()\r
+{\r
+\r
+       if (SDL_Init(sdlFlags) != 0)\r
+       {\r
+               Message::error((string)"SDL_Init: " + SDL_GetError());\r
+       }\r
+\r
+#if _DEBUG\r
+       SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_DEBUG_FLAG);\r
+#endif\r
+\r
+       SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);\r
+\r
+       SDL_GL_SetAttribute(SDL_GL_ACCUM_RED_SIZE, 16);\r
+       SDL_GL_SetAttribute(SDL_GL_ACCUM_GREEN_SIZE, 16);\r
+       SDL_GL_SetAttribute(SDL_GL_ACCUM_BLUE_SIZE, 16);\r
+       SDL_GL_SetAttribute(SDL_GL_ACCUM_ALPHA_SIZE, 16);\r
+\r
+       sdl_window = SDL_CreateWindow(windowTitle.c_str(), xpos, ypos, width, height, windowFlags);\r
+\r
+       if (sdl_window == nullptr)\r
+       {\r
+               Message::error((string)"SDL_CreateWindow: " + SDL_GetError());\r
+       }\r
+\r
+       sdl_glcontext = SDL_GL_CreateContext(sdl_window);\r
+\r
+       GLenum err = glewInit();\r
+       if (err != GLEW_OK)\r
+       {\r
+               Message::error((string)"glewInit: " + (char*)glewGetErrorString(err));\r
+       }\r
+\r
+#if _DEBUG\r
+       // Query the OpenGL function to register your callback function.\r
+       PFNGLDEBUGMESSAGECALLBACKPROC _glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC)wglGetProcAddress("glDebugMessageCallback");\r
+       PFNGLDEBUGMESSAGECALLBACKARBPROC _glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC)wglGetProcAddress("glDebugMessageCallbackARB");\r
+       PFNGLDEBUGMESSAGECALLBACKAMDPROC _glDebugMessageCallbackAMD = (PFNGLDEBUGMESSAGECALLBACKAMDPROC)wglGetProcAddress("glDebugMessageCallbackAMD");\r
+\r
+       // Register your callback function.\r
+       if (_glDebugMessageCallback != NULL) {\r
+               _glDebugMessageCallback(DebugCallback, NULL);\r
+       }\r
+       else if (_glDebugMessageCallbackARB != NULL) {\r
+               _glDebugMessageCallbackARB(DebugCallback, NULL);\r
+       }\r
+       else if (_glDebugMessageCallbackAMD != NULL) {\r
+               _glDebugMessageCallbackAMD(DebugCallbackAMD, NULL);\r
+       }\r
+\r
+       // Enable synchronous callback. This ensures that your callback function is called\r
+       // right after an error has occurred. This capability is not defined in the AMD\r
+       // version.\r
+       if ((_glDebugMessageCallback != NULL) || (_glDebugMessageCallbackARB != NULL)) {\r
+               glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS);\r
+       }\r
+#endif\r
+\r
+       SDL_ShowCursor(SDL_DISABLE);\r
+\r
+       glEnable(GL_DEPTH_TEST);\r
+\r
+       //SDL_SetWindowGrab(sdl_window, SDL_TRUE);\r
+       //SDL_ShowCursor(SDL_DISABLE);\r
+       glEnable(GL_COLOR_MATERIAL);\r
+       //glEnable(GL_TEXTURE_CUBE_MAP);\r
+       //glEnable(GL_LIGHTING);\r
+       //glEnable(GL_LIGHT0);\r
+       glEnable(GL_CULL_FACE);\r
+       glShadeModel(GL_SMOOTH);\r
+\r
+       glEnable(GL_BLEND);\r
+       glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);\r
+\r
+       glClearColor(0.9f, 0.9f, 1.0f, 1.f);\r
+       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);\r
+       glClearAccum(0.f, 0.f, 0.f, 0.f);\r
+       glClear(GL_ACCUM_BUFFER_BIT);\r
+\r
+       shader_BBox = new Shader("basic_VS.hlsl", "basic_FS.hlsl");\r
+}\r
+\r
+void Graphix::FullScreen(bool _enable, bool _keepDesktopResolution)\r
+{\r
+       if (_enable)\r
+       {\r
+               if (_keepDesktopResolution)\r
+               {\r
+                       width_bkp = width;\r
+                       height_bkp = height;\r
+\r
+                       SDL_DisplayMode dm;\r
+                       if (SDL_GetDesktopDisplayMode(0, &dm) != 0)\r
+                               Message::error((string)"SDL_GetDesktopDisplayMode failed:" + SDL_GetError());\r
+\r
+                       width = dm.w;\r
+                       height = dm.h;\r
+\r
+                       SDL_SetWindowSize(sdl_window, width, height);\r
+               }\r
+               SDL_SetWindowFullscreen(sdl_window, SDL_WINDOW_FULLSCREEN);\r
+       }\r
+       else\r
+       {\r
+               if (_keepDesktopResolution && width_bkp !=0)\r
+               {\r
+                       width = width_bkp;\r
+                       height = height_bkp;\r
+\r
+                       SDL_SetWindowSize(sdl_window, width, height);\r
+               }\r
+               SDL_SetWindowFullscreen(sdl_window, 0);\r
+       }\r
+               \r
+}\r
+\r
+void Graphix::catchMouse()\r
+{\r
+       //SDL_SetWindowGrab(sdl_window, SDL_TRUE);\r
+       SDL_ShowCursor(SDL_DISABLE);    //TODO eventuell nicht nötig\r
+}\r
+\r
+void Graphix::freeMouse()\r
+{\r
+       //SDL_SetWindowGrab(sdl_window, SDL_FALSE);\r
+       SDL_ShowCursor(SDL_ENABLE);             //TODO eventuell nicht nötig\r
+}\r
+\r
+void Graphix::hideMouse(bool _enable)\r
+{\r
+       if (_enable)\r
+               SDL_ShowCursor(SDL_DISABLE);\r
+       else\r
+               SDL_ShowCursor(SDL_ENABLE);\r
+}\r
+\r
+void Graphix::clear()\r
+{\r
+       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);\r
+       if (testEffect(EF_MOTION_BLUR))\r
+       {\r
+               glAccum(GL_RETURN, MOTION_BLUR_INTENS);\r
+               glClear(GL_ACCUM_BUFFER_BIT);\r
+       }\r
+\r
+\r
+}\r
+\r
+\r
+void Graphix::swap()\r
+{\r
+       if (testEffect(EF_MOTION_BLUR))\r
+               glAccum(GL_ACCUM, MOTION_BLUR_COEFF);\r
+       SDL_GL_SwapWindow(sdl_window);\r
+}\r
+\r
+\r
+\r
+void Graphix::cleanup()\r
+{\r
+       delete shader_BBox;\r
+\r
+       //SDL_SetWindowGrab(sdl_window, SDL_FALSE);\r
+\r
+       SDL_GL_DeleteContext(sdl_glcontext);\r
+       SDL_DestroyWindow(sdl_window);\r
+\r
+       SDL_Quit();\r
+}\r
+\r
+unsigned int Graphix::getGlError()\r
+{\r
+       GLenum error = glGetError();\r
+\r
+       if (error != GL_NO_ERROR) {\r
+               switch (error) {\r
+               case GL_INVALID_ENUM:\r
+                       Message::error((string)"GL: enum argument out of range.");\r
+                       break;\r
+               case GL_INVALID_VALUE:\r
+                       Message::error((string)"GL: Numeric argument out of range.");\r
+                       break;\r
+               case GL_INVALID_OPERATION:\r
+                       Message::error((string)"GL: Operation illegal in current state.");\r
+                       break;\r
+               case GL_INVALID_FRAMEBUFFER_OPERATION:\r
+                       Message::error((string)"GL: Framebuffer object is not complete.");\r
+                       break;\r
+               case GL_OUT_OF_MEMORY:\r
+                       Message::error((string)"GL: Not enough memory left to execute command.");\r
+                       break;\r
+               default:\r
+                       Message::error((string)"GL: Unknown error.");\r
+               }\r
+       }\r
+       return error;\r
+}\r
+\r
+unsigned int Graphix::width = 1024;\r
+unsigned int Graphix::height = 768;\r
+\r
+unsigned int Graphix::xpos = SDL_WINDOWPOS_UNDEFINED;\r
+unsigned int Graphix::ypos = SDL_WINDOWPOS_UNDEFINED;\r
+\r
+unsigned int Graphix::width_bkp = 0;\r
+unsigned int Graphix::height_bkp = 0;\r
+\r
+string Graphix::windowTitle = "Weave";\r
+\r
+Uint32 Graphix::windowFlags = SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_INPUT_GRABBED;\r
+Uint32 Graphix::sdlFlags = SDL_INIT_VIDEO | SDL_INIT_TIMER;\r
+\r
+SDL_Window* Graphix::sdl_window;\r
+\r
+SDL_GLContext Graphix::sdl_glcontext;\r
+\r
+short Graphix::effects = EF_TRANSPARENCY;\r
+\r
+Shader* Graphix::shader_BBox;\r
index 3f81b1e9ee8fd5f7165ef84491a40d9b45b9e442..8f95dbda2dacee06c01e6d7cd608bce9ba876957 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="bin|Win32">
-      <Configuration>bin</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{A2F0B06D-880C-4B90-9D4B-8B174418E1BE}</ProjectGuid>
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>Weave</RootNamespace>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v140</PlatformToolset>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='bin|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v140</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='bin|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <IntDir>$(SolutionDir)build-$(Configuration)-$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='bin|Win32'">
-    <IntDir>$(SolutionDir)build-$(Configuration)-$(ProjectName)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)include/freetype2;$(SolutionDir)res\bullet3\src</AdditionalIncludeDirectories>
-      <BrowseInformation>true</BrowseInformation>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalLibraryDirectories>$(SolutionDir)lib\$(PlatformTarget);$(SolutionDir)lib</AdditionalLibraryDirectories>
-      <AdditionalDependencies>OpenGL32.lib;SDL2.lib;SDL2main.lib;freetype.lib;zdll.lib;glew32.lib;FreeImage.lib;assimp.lib</AdditionalDependencies>
-      <IgnoreSpecificDefaultLibraries>
-      </IgnoreSpecificDefaultLibraries>
-    </Link>
-    <Bscmake>
-      <PreserveSbr>true</PreserveSbr>
-    </Bscmake>
-    <ProjectReference />
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='bin|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)include/freetype2;$(SolutionDir)res\bullet3\src</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <AdditionalLibraryDirectories>$(SolutionDir)lib\$(PlatformTarget);$(SolutionDir)lib;$(SolutionDir)res\bulletMAKE\lib\$(PlatformTarget)</AdditionalLibraryDirectories>
-      <AdditionalDependencies>OpenGL32.lib;SDL2.lib;SDL2main.lib;freetype.lib;zdll.lib;glew32.lib;FreeImage.lib;assimp.lib</AdditionalDependencies>
-      <IgnoreSpecificDefaultLibraries>
-      </IgnoreSpecificDefaultLibraries>
-    </Link>
-    <ProjectReference />
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="Events.cpp" />
-    <ClCompile Include="Fps.cpp" />
-    <ClCompile Include="Game.cpp" />
-    <ClCompile Include="GLM.cpp" />
-    <ClCompile Include="Graphix\Graphix.cpp" />
-    <ClCompile Include="Graphix\Model\Animation.cpp" />
-    <ClCompile Include="Graphix\Model\BBox.cpp" />
-    <ClCompile Include="Graphix\Model\IAnimMesh.cpp" />
-    <ClCompile Include="Graphix\Model\IMesh.cpp" />
-    <ClCompile Include="Graphix\Model\IMetaMesh.cpp" />
-    <ClCompile Include="Graphix\Model\Model.cpp" />
-    <ClCompile Include="Graphix\Model\SkyBox.cpp" />
-    <ClCompile Include="Overlap.cpp" />
-    <ClCompile Include="Scene\EventBox.cpp" />
-    <ClCompile Include="Scene\Level.cpp" />
-    <ClCompile Include="Scene\Marvin.cpp" />
-    <ClCompile Include="Scene\Scene.cpp" />
-    <ClCompile Include="Scene\SceneObject.cpp" />
-    <ClCompile Include="Graphix\Shader.cpp" />
-    <ClCompile Include="Graphix\Texture.cpp" />
-    <ClCompile Include="Graphix\ViewPort.cpp" />
-    <ClCompile Include="main.cpp" />
-    <ClCompile Include="Message.cpp" />
-    <ClCompile Include="Scene\Sky.cpp" />
-    <ClCompile Include="Scene\Timestamp.cpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="Average.h" />
-    <ClInclude Include="Graphix\Model.h" />
-    <ClInclude Include="Events.h" />
-    <ClInclude Include="Fps.h" />
-    <ClInclude Include="Game.h" />
-    <ClInclude Include="GLM.h" />
-    <ClInclude Include="Graphix\Graphix.h" />
-    <ClInclude Include="Graphix\Model\Animation.h" />
-    <ClInclude Include="Graphix\Model\BBox.h" />
-    <ClInclude Include="Graphix\Model\IAnimMesh.h" />
-    <ClInclude Include="Graphix\Model\IMesh.h" />
-    <ClInclude Include="Graphix\Model\IMetaMesh.h" />
-    <ClInclude Include="Graphix\Model\Model.h" />
-    <ClInclude Include="Graphix\Model\SkyBox.h" />
-    <ClInclude Include="Overlap.h" />
-    <ClInclude Include="Scene.h" />
-    <ClInclude Include="Scene\EventBox.h" />
-    <ClInclude Include="Scene\Level.h" />
-    <ClInclude Include="Scene\Marvin.h" />
-    <ClInclude Include="Scene\Scene.h" />
-    <ClInclude Include="Scene\SceneObject.h" />
-    <ClInclude Include="Graphix\Shader.h" />
-    <ClInclude Include="Graphix\Texture.h" />
-    <ClInclude Include="Graphix\ViewPort.h" />
-    <ClInclude Include="Message.h" />
-    <ClInclude Include="Scene\Sky.h" />
-    <ClInclude Include="Scene\Timestamp.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\res\bulletMAKE\src\BulletCollision\BulletCollision.vcxproj">
-      <Project>{7165bc00-1390-48dd-b00f-aa2789359081}</Project>
-    </ProjectReference>
-    <ProjectReference Include="..\res\bulletMAKE\src\BulletDynamics\BulletDynamics.vcxproj">
-      <Project>{ae9328ac-e966-41c6-9e6a-b5f4468aa1ea}</Project>
-    </ProjectReference>
-    <ProjectReference Include="..\res\bulletMAKE\src\LinearMath\LinearMath.vcxproj">
-      <Project>{80889ecf-0f1c-4cef-987b-25d1856c2b50}</Project>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="bin|Win32">\r
+      <Configuration>bin</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{A2F0B06D-880C-4B90-9D4B-8B174418E1BE}</ProjectGuid>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <RootNamespace>Weave</RootNamespace>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <PlatformToolset>v140</PlatformToolset>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='bin|Win32'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <PlatformToolset>v140</PlatformToolset>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='bin|Win32'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <IntDir>$(SolutionDir)build-$(Configuration)-$(ProjectName)\</IntDir>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='bin|Win32'">\r
+    <IntDir>$(SolutionDir)build-$(Configuration)-$(ProjectName)\</IntDir>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <Optimization>Disabled</Optimization>\r
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)include/freetype2;$(SolutionDir)res\bullet3\src</AdditionalIncludeDirectories>\r
+      <BrowseInformation>true</BrowseInformation>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <AdditionalLibraryDirectories>$(SolutionDir)lib\$(PlatformTarget);$(SolutionDir)lib</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>OpenGL32.lib;SDL2.lib;SDL2main.lib;freetype.lib;zdll.lib;glew32.lib;FreeImage.lib;assimp.lib</AdditionalDependencies>\r
+      <IgnoreSpecificDefaultLibraries>\r
+      </IgnoreSpecificDefaultLibraries>\r
+    </Link>\r
+    <Bscmake>\r
+      <PreserveSbr>true</PreserveSbr>\r
+    </Bscmake>\r
+    <ProjectReference />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='bin|Win32'">\r
+    <ClCompile>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <AdditionalIncludeDirectories>$(SolutionDir)include;$(SolutionDir)include/freetype2;$(SolutionDir)res\bullet3\src</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+      <OptimizeReferences>true</OptimizeReferences>\r
+      <AdditionalLibraryDirectories>$(SolutionDir)lib\$(PlatformTarget);$(SolutionDir)lib;$(SolutionDir)res\bulletMAKE\lib\$(PlatformTarget)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>OpenGL32.lib;SDL2.lib;SDL2main.lib;freetype.lib;zdll.lib;glew32.lib;FreeImage.lib;assimp.lib</AdditionalDependencies>\r
+      <IgnoreSpecificDefaultLibraries>\r
+      </IgnoreSpecificDefaultLibraries>\r
+    </Link>\r
+    <ProjectReference />\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="Events.cpp" />\r
+    <ClCompile Include="Fps.cpp" />\r
+    <ClCompile Include="Game.cpp" />\r
+    <ClCompile Include="GLM.cpp" />\r
+    <ClCompile Include="Graphix\Graphix.cpp" />\r
+    <ClCompile Include="Graphix\Model\Animation.cpp" />\r
+    <ClCompile Include="Graphix\Model\BBox.cpp" />\r
+    <ClCompile Include="Graphix\Model\IAnimMesh.cpp" />\r
+    <ClCompile Include="Graphix\Model\IMesh.cpp" />\r
+    <ClCompile Include="Graphix\Model\IMetaMesh.cpp" />\r
+    <ClCompile Include="Graphix\Model\Model.cpp" />\r
+    <ClCompile Include="Graphix\Model\SkyBox.cpp" />\r
+    <ClCompile Include="Overlap.cpp" />\r
+    <ClCompile Include="Scene\EventBox.cpp" />\r
+    <ClCompile Include="Scene\Level.cpp" />\r
+    <ClCompile Include="Scene\Marvin.cpp" />\r
+    <ClCompile Include="Scene\Scene.cpp" />\r
+    <ClCompile Include="Scene\SceneObject.cpp" />\r
+    <ClCompile Include="Graphix\Shader.cpp" />\r
+    <ClCompile Include="Graphix\Texture.cpp" />\r
+    <ClCompile Include="Graphix\ViewPort.cpp" />\r
+    <ClCompile Include="main.cpp" />\r
+    <ClCompile Include="Message.cpp" />\r
+    <ClCompile Include="Scene\Sky.cpp" />\r
+    <ClCompile Include="Scene\Timestamp.cpp" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="Average.h" />\r
+    <ClInclude Include="Graphix\Debug.h" />\r
+    <ClInclude Include="Graphix\Model.h" />\r
+    <ClInclude Include="Events.h" />\r
+    <ClInclude Include="Fps.h" />\r
+    <ClInclude Include="Game.h" />\r
+    <ClInclude Include="GLM.h" />\r
+    <ClInclude Include="Graphix\Graphix.h" />\r
+    <ClInclude Include="Graphix\Model\Animation.h" />\r
+    <ClInclude Include="Graphix\Model\BBox.h" />\r
+    <ClInclude Include="Graphix\Model\IAnimMesh.h" />\r
+    <ClInclude Include="Graphix\Model\IMesh.h" />\r
+    <ClInclude Include="Graphix\Model\IMetaMesh.h" />\r
+    <ClInclude Include="Graphix\Model\Model.h" />\r
+    <ClInclude Include="Graphix\Model\SkyBox.h" />\r
+    <ClInclude Include="Overlap.h" />\r
+    <ClInclude Include="Scene.h" />\r
+    <ClInclude Include="Scene\EventBox.h" />\r
+    <ClInclude Include="Scene\Level.h" />\r
+    <ClInclude Include="Scene\Marvin.h" />\r
+    <ClInclude Include="Scene\Scene.h" />\r
+    <ClInclude Include="Scene\SceneObject.h" />\r
+    <ClInclude Include="Graphix\Shader.h" />\r
+    <ClInclude Include="Graphix\Texture.h" />\r
+    <ClInclude Include="Graphix\ViewPort.h" />\r
+    <ClInclude Include="Message.h" />\r
+    <ClInclude Include="Scene\Sky.h" />\r
+    <ClInclude Include="Scene\Timestamp.h" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\res\bulletMAKE\src\BulletCollision\BulletCollision.vcxproj">\r
+      <Project>{7165bc00-1390-48dd-b00f-aa2789359081}</Project>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\res\bulletMAKE\src\BulletDynamics\BulletDynamics.vcxproj">\r
+      <Project>{ae9328ac-e966-41c6-9e6a-b5f4468aa1ea}</Project>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\res\bulletMAKE\src\LinearMath\LinearMath.vcxproj">\r
+      <Project>{80889ecf-0f1c-4cef-987b-25d1856c2b50}</Project>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
 </Project>
\ No newline at end of file
index c9f3dc3b2d5c3762096e6d3fa0988cfe943b2529..6795ff96a986396f1c5a15d69162fe942e1ec97c 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="Fps.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Graphix\Graphix.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Message.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="main.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Events.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Graphix\Shader.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Graphix\Texture.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Graphix\ViewPort.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Game.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Scene\SceneObject.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Scene\Scene.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Scene\Marvin.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Scene\Sky.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Scene\EventBox.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Graphix\Model\BBox.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Graphix\Model\IMesh.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Graphix\Model\IMetaMesh.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Graphix\Model\Model.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Graphix\Model\SkyBox.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Overlap.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="GLM.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Scene\Timestamp.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Scene\Level.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Graphix\Model\Animation.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="Graphix\Model\IAnimMesh.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="Fps.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Average.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Graphix\Graphix.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Message.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Events.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Graphix\Shader.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Graphix\Texture.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Graphix\ViewPort.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Game.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Graphix\Model.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Scene\SceneObject.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Scene\Scene.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Scene\Marvin.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Scene\Sky.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Scene\EventBox.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Scene.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Graphix\Model\BBox.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Graphix\Model\IMesh.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Graphix\Model\IMetaMesh.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Graphix\Model\Model.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Graphix\Model\SkyBox.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Overlap.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="GLM.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Scene\Timestamp.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Scene\Level.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Graphix\Model\Animation.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="Graphix\Model\IAnimMesh.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="Source Files">\r
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+    </Filter>\r
+    <Filter Include="Header Files">\r
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+    </Filter>\r
+    <Filter Include="Resource Files">\r
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="Fps.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Graphix\Graphix.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Message.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="main.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Events.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Graphix\Shader.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Graphix\Texture.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Graphix\ViewPort.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Game.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Scene\SceneObject.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Scene\Scene.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Scene\Marvin.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Scene\Sky.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Scene\EventBox.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Graphix\Model\BBox.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Graphix\Model\IMesh.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Graphix\Model\IMetaMesh.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Graphix\Model\Model.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Graphix\Model\SkyBox.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Overlap.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="GLM.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Scene\Timestamp.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Scene\Level.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Graphix\Model\Animation.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="Graphix\Model\IAnimMesh.cpp">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="Fps.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Average.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Graphix.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Message.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Events.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Shader.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Texture.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\ViewPort.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Game.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Model.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Scene\SceneObject.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Scene\Scene.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Scene\Marvin.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Scene\Sky.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Scene\EventBox.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Scene.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Model\BBox.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Model\IMesh.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Model\IMetaMesh.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Model\Model.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Model\SkyBox.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Overlap.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="GLM.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Scene\Timestamp.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Scene\Level.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Model\Animation.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Model\IAnimMesh.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="Graphix\Debug.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+  </ItemGroup>\r
 </Project>
\ No newline at end of file