Restructured solution. "Escape-The-Dawn" now links into a .lib, which is used in "Executable" to facilitate easier unit testing.

This commit is contained in:
2014-03-06 18:57:12 +01:00
parent 5a15491573
commit b87b1f5704
10 changed files with 271 additions and 72 deletions
+63
View File
@@ -0,0 +1,63 @@
#include <string>
#include <sstream>
#include <GL/glew.h>
#define GLFW_INCLUDE_GLU
#include <GLFW/glfw3.h>
#include <glext.h>
#include "logging.h"
#include "glerror.h"
#include "World.h"
class Engine
{
public:
Engine(int argc, char* argv[])
{
// Initialize GLFW
if (!glfwInit()) {
LOG_ERROR("GLFW: Initialization failed");
exit(EXIT_FAILURE);
}
// Create a window
m_Window = glfwCreateWindow(1280, 720, "OpenGL", nullptr, nullptr);
if (!m_Window) {
LOG_ERROR("GLFW: Failed to create window");
exit(EXIT_FAILURE);
}
glfwMakeContextCurrent(m_Window);
// GL version info
glGetIntegerv(GL_MAJOR_VERSION, &glVersion[0]);
glGetIntegerv(GL_MINOR_VERSION, &glVersion[1]);
glVendor = (GLchar*)glGetString(GL_VENDOR);
std::stringstream ss;
ss << glVendor << " OpenGL " << glVersion[0] << "." << glVersion[1];
#ifdef DEBUG
ss << " DEBUG";
#endif
LOG_INFO(ss.str().c_str());
glfwSetWindowTitle(m_Window, ss.str().c_str());
// Initialize GLEW
if (glewInit() != GLEW_OK) {
LOG_ERROR("GLEW: Initialization failed");
exit(EXIT_FAILURE);
}
}
bool Running() const { return !glfwWindowShouldClose(m_Window); }
void Tick()
{
glfwPollEvents();
}
private:
GLFWwindow* m_Window;
GLint glVersion[2];
GLchar* glVendor;
};