X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fmain.cc;h=aeb57a64e2b572cf667323e822792361d1747b9e;hb=HEAD;hp=69721c19692fb4b50c2a0696afb71275ee49b987;hpb=1e8963fc3f8191e328bbecd04cfbcba31d7d0bdf;p=demo diff --git a/src/main.cc b/src/main.cc index 69721c1..aeb57a6 100644 --- a/src/main.cc +++ b/src/main.cc @@ -1,4 +1,5 @@ #include +#include #include #include @@ -61,7 +62,7 @@ static OrbitCamera *camera; static float fog_density; -static int num_cows = 400; +static int num_cows = 1; static float cow_gap = 4; static Scene *cow_scene; static MorphRenderer *cow_rend; @@ -71,6 +72,7 @@ static TerrainParams p; static Texture *skybox_tex; static Texture *irradiance_tex; static Texture *terrain_tex; +static Texture *dirt_tex; static Material terrain_mat; static Renderer *terrain_rend; @@ -80,7 +82,7 @@ int main(int argc, char **argv) { Gfx_API api; - for(int i=0; iload("data/grass.jpeg")) { - fprintf(stderr, "Failed to load ground texture.\n"); + fprintf(stderr, "Failed to load ground grass texture.\n"); + return false; + } + + dirt_tex = gfx_create_texture(); + if(!dirt_tex->load("data/dirt.jpg")) { + fprintf(stderr, "Failed to load ground dirt texture.\n"); return false; } @@ -143,11 +153,11 @@ static bool init(Gfx_API api) return false; } - p.xsz = 200; - p.ysz = 200; - p.max_height = 30; - p.xtiles = 40; - p.ytiles = 40; + p.xsz = 20;//200; + p.ysz = 20; //200; + p.max_height = 3;//30; + p.xtiles = 4;//40; + p.ytiles = 4;//40; p.tile_usub = 10; p.tile_vsub = 10; p.num_octaves = 3; @@ -261,12 +271,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 +333,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 +374,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 &points, float min_dist, float radius) @@ -385,4 +408,4 @@ static bool gen_poisson(std::vector &points, float min_dist, float radius) } } return false; -} \ No newline at end of file +}