2 #include <GLFW/glfw3.h>
4 #include "engine/logger.h"
5 #include "engine/performance.h"
6 #include "engine/render.h"
9 #include "game/input.h"
10 #include "game/level.h"
11 #include "game/player.h"
13 void onGlfwError(int error, const char* description);
15 int main(/*int argc, char** argv*/) {
16 glfwSetErrorCallback(onGlfwError);
19 logError("GLFW init failed");
22 // glutInitContextVersion(4,5); TODO establish correct context
23 // glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
24 // glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 5);
26 GLFWwindow* window = glfwCreateWindow(1280, 720, "shadowclad", NULL, NULL);
28 logError("Window or context creation failed");
33 glfwMakeContextCurrent(window);
34 //glutInitDisplayMode(//glut_DOUBLE | //glut_RGBA | //glut_DEPTH);
36 logInfo("OpenGL %s", (const char*) glGetString(GL_VERSION));
37 logInfo("GLSL %s", (const char*) glGetString(GL_SHADING_LANGUAGE_VERSION));
38 logInfo("%s", (const char*) glGetString(GL_RENDERER));
40 GLenum glewInitStatus = glewInit();
41 if (glewInitStatus != GLEW_OK) {
42 logError("GLEW init failed: %s", (const char*) glewGetErrorString(glewInitStatus));
45 logInfo("GLEW %s", (const char*) glewGetString(GLEW_VERSION));
47 if (GLXEW_EXT_swap_control) {
48 Display* display = glXGetCurrentDisplay();
49 GLXDrawable drawable = glXGetCurrentDrawable();
51 glXSwapIntervalEXT(display, drawable, 1);
54 logWarning("Drawable is not here ¯\\_(ツ)_/¯");
55 logWarning("Could not enable vsync (GLX_EXT_swap_control)");
58 else if (GLXEW_MESA_swap_control) {
59 glXSwapIntervalMESA(1);
60 logDebug("Vsync enabled with GLX_MESA_swap_control, swap interval %d", glXGetSwapIntervalMESA());
63 logWarning("Could not enable vsync (extensions not supported)");
66 logInfo("Setting swap interval to 1");
70 glfwGetFramebufferSize(window, &width, &height);
71 resizeStage(window, width, height);
73 glfwSetFramebufferSizeCallback(window, resizeStage);
74 glfwSetKeyCallback(window, onKeyboardEvent);
77 //initPerformanceMetering();
82 while (!glfwWindowShouldClose(window)) {
91 void onGlfwError(int error, const char* description) {
92 logError("GLFW error: %s", description);