5 #include "opengl/opengl.h"
7 extern GLFWwindow *win;
11 static void clear(float r, float g, float b);
12 static void viewport(int x, int y, int width, int height);
13 static void zbuffer(bool enable);
14 static void cull_face(Gfx_cull_face cf);
19 fprintf(stderr, "Failed to initialize GLFW.\n");
23 glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
24 glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 5);
25 glfwWindowHint(GLFW_SRGB_CAPABLE, GLFW_TRUE);
27 if(!(win = glfwCreateWindow(win_w, win_h, "glcow", 0, 0))) {
28 fprintf(stderr, "Failed to create window.\n");
31 glfwMakeContextCurrent(win);
35 glEnable(GL_DEPTH_TEST);
36 glEnable(GL_CULL_FACE);
37 glEnable(GL_FRAMEBUFFER_SRGB); // linear colorspace
40 gfx_viewport = viewport;
41 gfx_zbuffer = zbuffer;
42 gfx_cull_face = cull_face;
50 glfwDestroyWindow(win);
55 static void clear(float r, float g, float b)
57 glClearColor(r, g, b, 1.0);
58 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
61 static void viewport(int x, int y, int width, int height)
63 glViewport(x, y, width, height);
66 static void zbuffer(bool enable)
69 glEnable(GL_DEPTH_TEST);
71 glDisable(GL_DEPTH_TEST);
74 static void cull_face(Gfx_cull_face cf)
78 glDisable(GL_CULL_FACE);
81 glEnable(GL_CULL_FACE);
85 glEnable(GL_CULL_FACE);