X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=vrfileman;a=blobdiff_plain;f=src%2Fbackdrop.cc;h=02d1635bc04833ce8df29077fa3487c68f25c7a7;hp=b81a04a35f663a7994161404373e3dc8730b84e2;hb=fa2f2d8bd43a7007e0b66aaa07a5f5aa5e088a08;hpb=cb2703917746784c4ea3408a049ff4297dfc268e diff --git a/src/backdrop.cc b/src/backdrop.cc index b81a04a..02d1635 100644 --- a/src/backdrop.cc +++ b/src/backdrop.cc @@ -6,6 +6,7 @@ #include "meshgen.h" #include "backdrop.h" #include "app.h" +#include "color.h" static unsigned int sdr_grid; static Texture *tex_grid; @@ -13,17 +14,21 @@ static Texture *tex_grid; static Mesh *mesh_skydome; static unsigned int sdr_skydome; -static const Vec3 grid_color = Vec3(1.0, 0.07, 1.0); -static const Vec3 mid_color = Vec3(0.133, 0.006, 0.612); -static const Vec3 horiz_color = Vec3(0.612, 0.006, 1.0); -static const Vec3 zenith_color = Vec3(0.029, 0.029, 0.029); -static const Vec3 fog_color = Vec3(0.01, 0.01, 0.01); +static Vec3 grid_color; +static int uloc_grid_color; bool init_backdrop() { + grid_color = color(1.0, 0.07, 1.0); + Vec3 mid_color = color(0.133, 0.006, 0.612); + Vec3 horiz_color = color(0.612, 0.006, 1.0); + Vec3 zenith_color = color(0.029, 0.029, 0.029); + Vec3 fog_color = color(0.01, 0.01, 0.01); + if(!(sdr_grid = create_program_load("sdr/grid.v.glsl", "sdr/grid.p.glsl"))) { return false; } + uloc_grid_color = get_uniform_loc(sdr_grid, "grid_color"); set_uniform_float3(sdr_grid, "grid_color", grid_color.x, grid_color.y, grid_color.z); set_uniform_float3(sdr_grid, "fog_color", fog_color.x, fog_color.y, fog_color.z); @@ -35,14 +40,14 @@ bool init_backdrop() set_uniform_float3(sdr_skydome, "horiz_color", horiz_color.x, horiz_color.y, horiz_color.z); set_uniform_float3(sdr_skydome, "fog_color", fog_color.x, fog_color.y, fog_color.z); - if(!(tex_grid = load_texture("data/grid2.png"))) { + if(!(tex_grid = load_texture("data/pgrid.png"))) { delete tex_grid; return false; } tex_grid->set_anisotropy(glcaps.max_aniso); mesh_skydome = new Mesh; - gen_sphere(mesh_skydome, 500.0, 32, 16, 1, 0.5); + gen_sphere(mesh_skydome, 100.0, 32, 16, 1, 0.5); mesh_skydome->flip(); glClearColor(fog_color.x, fog_color.y, fog_color.z, 1.0); @@ -82,6 +87,8 @@ void draw_backdrop() glMultMatrixf(xform[0]); bind_program(sdr_grid); + float pulse = 1.0 + sin(time_sec * 3.0) * 0.25; + glUniform3f(uloc_grid_color, grid_color.x * pulse, grid_color.y * pulse, grid_color.z * pulse); bind_texture(tex_grid); glBegin(GL_QUADS);