X-Git-Url: http://git.mutantstargoat.com?p=demo;a=blobdiff_plain;f=src%2Fmain.cc;h=c48b38325b8d812effdcd7d8312febd68366ee57;hp=d4d4226a32879107c950cc6fe6e6dd05a566d3fa;hb=c99060df01719b24ebd793b149d3c2dc5748cad5;hpb=0d3454cbd5e803b8dea601110d403cd5563df9be diff --git a/src/main.cc b/src/main.cc index d4d4226..c48b383 100644 --- a/src/main.cc +++ b/src/main.cc @@ -13,8 +13,8 @@ /* TODO: fix those */ #include "camera.h" #include "mesh.h" +#include "morph_renderer.h" #include "object.h" -#include "renderer.h" #include "scene.h" #include "terrain.h" #include "texture.h" @@ -43,9 +43,10 @@ GLFWwindow *win; int win_w = 800; int win_h = 600; - ShaderManager *sdr_man; +double time_sec; + /* variables */ static bool move_camera; @@ -57,9 +58,11 @@ static Vec3 cam_pos; static float aspect; static OrbitCamera *camera; +static float fog_density; + static Scene *cow_scene; static Object *cow_object; -static Renderer *cow_rend; +static MorphRenderer *cow_rend; static Terrain terrain; static Texture *skybox_tex; @@ -118,6 +121,8 @@ static bool init(Gfx_API api) if(!gfx_init(api)) return false; + fog_density = 0.0037; + sdr_man = new ShaderManager; camera = new OrbitCamera; @@ -128,7 +133,7 @@ static bool init(Gfx_API api) return false; } - cow_rend = new Renderer; + cow_rend = new MorphRenderer; cow_rend->camera = camera; cow_rend->scene = cow_scene; @@ -222,6 +227,14 @@ static void clbk_key(GLFWwindow *win, int key, int scancode, int action, int mod move_camera = !move_camera; break; + case 'F': + 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; + default: break; } @@ -299,9 +312,9 @@ static void update(float dt) static void display() { static float prev_tsec; - float tsec = glfwGetTime(); - float dt = tsec - prev_tsec; - prev_tsec = tsec; + time_sec = glfwGetTime(); + float dt = time_sec - prev_tsec; + prev_tsec = time_sec; update(dt); @@ -311,6 +324,8 @@ static void display() gfx_clear(0.1, 0.1, 0.1); + printf("fog_density: %f\n", fog_density); + terrain_rend->fog_density = fog_density; terrain_rend->draw(); cow_pos.y = terrain.get_height(cow_pos);