6 #include "performance.h"
10 int main(int argc, char** argv) {
11 glutInit(&argc, argv);
12 // glutInitContextVersion(4,5); TODO establish correct context
14 glutInitWindowSize(1280, 720);
16 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
17 glutCreateWindow("shadowclad");
19 logInfo("OpenGL %s", (const char*) glGetString(GL_VERSION));
20 logInfo("GLSL %s", (const char*) glGetString(GL_SHADING_LANGUAGE_VERSION));
21 logInfo("%s", (const char*) glGetString(GL_RENDERER));
23 GLenum glewInitStatus = glewInit();
24 if (glewInitStatus != GLEW_OK) {
25 logError("GLEW init failed: %s", (const char*) glewGetErrorString(glewInitStatus));
28 logInfo("GLEW %s", (const char*) glewGetString(GLEW_VERSION));
30 if (GLXEW_EXT_swap_control) {
31 Display* display = glXGetCurrentDisplay();
32 GLXDrawable drawable = glXGetCurrentDrawable();
34 glXSwapIntervalEXT(display, drawable, 1);
37 logWarning("Drawable is not here ¯\\_(ツ)_/¯");
38 logWarning("Could not enable vsync (GLX_EXT_swap_control)");
41 else if (GLXEW_MESA_swap_control) {
42 glXSwapIntervalMESA(1);
43 logDebug("Vsync enabled with GLX_MESA_swap_control, swap interval %d", glXGetSwapIntervalMESA());
46 logWarning("Could not enable vsync (extensions not supported)");
49 glutDisplayFunc(renderScene);
50 glutReshapeFunc(resizeStage);
51 //glutKeyboardFunc(key_pressed);
52 //glutMouseFunc(mouse_button_event);
53 //glutMotionFunc(mouse_motion_event);
56 //initPerformanceMetering();