+}
+
+static void clear(float r, float g, float b)
+{
+ glClearColor(r, g, b, 1.0);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
+static void viewport(int x, int y, int width, int height)
+{
+ glViewport(x, y, width, height);
+}
+
+static void zbuffer(bool enable)
+{
+ if(enable)
+ glEnable(GL_DEPTH_TEST);
+ else
+ glDisable(GL_DEPTH_TEST);
+}
+
+static void cull_face(Gfx_cull_face cf)
+{
+ switch(cf) {
+ case GFX_CULL_NONE:
+ glDisable(GL_CULL_FACE);
+ break;
+ case GFX_CULL_FRONT:
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_FRONT);
+ break;
+ case GFX_CULL_BACK:
+ glEnable(GL_CULL_FACE);
+ glCullFace(GL_BACK);
+ break;
+ }
+}
+
+static void wireframe(bool enabled)
+{
+ if(enabled)
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ else
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+}
+
+static void swapbuffers()
+{
+ glfwSwapBuffers(win);
+}
+
+static void begin_drawing()
+{
+}
+
+static void end_drawing()
+{
+}