+}
+
+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;
+ }