#include #define GLEW_STATIC #include #include #include "GameInterface.h" #include "SceneInterface.h" SceneInterface sceneInterface; GameInterface* gUsedInterface; GLFWwindow* InitializeSystem() { glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); GLFWwindow* window = glfwCreateWindow(1024, 768, "Rubiks Cube", nullptr, nullptr); glfwMakeContextCurrent(window); glewExperimental = GL_TRUE; glewInit(); gUsedInterface->Initialize(window); return window; } void RunCoreLoop(GLFWwindow* window) { double lastTime = glfwGetTime(); double deltaTime = 0.0; while(!glfwWindowShouldClose(window)) { glfwPollEvents(); gUsedInterface->Update(deltaTime); int screenWidth; int screenHeight; glfwGetFramebufferSize(window, &screenWidth, &screenHeight); float aspectRatio = (float)screenWidth / (float)screenHeight; glViewport(0, 0, screenWidth, screenHeight); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); gUsedInterface->Render(aspectRatio); glfwSwapBuffers(window); double currentTime = glfwGetTime(); deltaTime = currentTime - lastTime; lastTime = currentTime; } } void ShutdownSystem() { gUsedInterface->ClearResources(); glfwTerminate(); } int main() { gUsedInterface = &sceneInterface; GLFWwindow* window = InitializeSystem(); RunCoreLoop(window); ShutdownSystem(); } /* int main() { std::cout << "Wonderfulnesolino!\n"; gUsedInterface = &sceneInterface; GLFWwindow* window = InitializeSystem(); RunCoreLoop(window); ShutdownSystem(); } */