backup - needs fixing
[demo] / src / main.cc
index 69721c1..92dc433 100644 (file)
@@ -1,4 +1,5 @@
 #include <GL/glew.h>
+#include <GLFW/glfw3.h>
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -80,7 +81,7 @@ int main(int argc, char **argv)
 {
        Gfx_API api;
 
-       for(int i=0; i<argc; ++i) {
+       for(int i=1; i<argc; i++) {
                if(strcmp(argv[i], "-opengl") == 0) {
                        api = GFX_GL;
                        printf("Backend: OpenGL.\n");
@@ -100,6 +101,9 @@ int main(int argc, char **argv)
                return 1;
        }
 
+       //TODO
+       //return 0;
+
        glfwSetKeyCallback(win, clbk_key);
        glfwSetCursorPosCallback(win, clbk_motion);
        glfwSetMouseButtonCallback(win, clbk_mouse);
@@ -111,12 +115,11 @@ int main(int argc, char **argv)
        while(!glfwWindowShouldClose(win)) {
                display();
 
-               glfwSwapBuffers(win);
+               gfx_swapbuffers();
                glfwPollEvents();
        }
 
        cleanup();
-       // atexit(cleanup);
        return 0;
 }
 
@@ -261,12 +264,20 @@ static void clbk_key(GLFWwindow *win, int key, int scancode, int action, int mod
                        break;
 
                // case 'F':
-               //      fog_density = fog_density < 1 - 0.0009 ? fog_density + 0.0001 : 1;
-               //      break;
+               //      fog_density = fog_density < 1 - 0.0009 ? fog_density + 0.0001 : 1;
+               //      break;
 
                // case 'U':
-               //      fog_density = fog_density > 0.0001 ? fog_density - 0.0001 : 0;
-               //      break;
+               //      fog_density = fog_density > 0.0001 ? fog_density - 0.0001 : 0;
+               //      break;
+
+               case 'P':
+                       gfx_wireframe(true);
+                       break;
+
+               case 'F':
+                       gfx_wireframe(false);
+                       break;
 
                default:
                        break;
@@ -315,6 +326,7 @@ static void clbk_mouse(GLFWwindow *win, int bn, int action, int mods)
 
 static void clbk_reshape(GLFWwindow *win, int width, int height)
 {
+       gfx_reshape(width, height);
        gfx_viewport(0, 0, width, height);
        aspect = (float)width / (float)height;
        mprojection = calc_projection_matrix(45, aspect, 0.5, 1000.0);
@@ -355,10 +367,14 @@ static void display()
        camera->set_orbit_params(cam_theta, cam_phi, cam_dist);
        camera->set_position(cam_pos.x, cam_pos.y, cam_pos.z);
 
+       gfx_begin_drawing();
+
        gfx_clear(0.1, 0.1, 0.1);
 
        terrain_rend->draw();
        cow_rend->draw();
+
+       gfx_end_drawing();
 }
 
 static bool gen_poisson(std::vector<Vec2> &points, float min_dist, float radius)
@@ -385,4 +401,4 @@ static bool gen_poisson(std::vector<Vec2> &points, float min_dist, float radius)
                }
        }
        return false;
-}
\ No newline at end of file
+}