2 #include "gmath/gmath.h"
11 static unsigned int sdr_grid;
12 static Texture *tex_grid;
14 static Mesh *mesh_skydome;
15 static unsigned int sdr_skydome;
17 static Vec3 grid_color;
18 static int uloc_grid_color;
22 grid_color = color(1.0, 0.07, 1.0);
23 Vec3 mid_color = color(0.133, 0.006, 0.612);
24 Vec3 horiz_color = color(0.612, 0.006, 1.0);
25 Vec3 zenith_color = color(0.029, 0.029, 0.029);
26 Vec3 fog_color = color(0.01, 0.01, 0.01);
28 if(!(sdr_grid = create_program_load("sdr/grid.v.glsl", "sdr/grid.p.glsl"))) {
31 uloc_grid_color = get_uniform_loc(sdr_grid, "grid_color");
32 set_uniform_float3(sdr_grid, "grid_color", grid_color.x, grid_color.y, grid_color.z);
33 set_uniform_float3(sdr_grid, "fog_color", fog_color.x, fog_color.y, fog_color.z);
35 if(!(sdr_skydome = create_program_load("sdr/skydome.v.glsl", "sdr/skydome.p.glsl"))) {
38 set_uniform_float3(sdr_skydome, "zenith_color", zenith_color.x, zenith_color.y, zenith_color.z);
39 set_uniform_float3(sdr_skydome, "mid_color", mid_color.x, mid_color.y, mid_color.z);
40 set_uniform_float3(sdr_skydome, "horiz_color", horiz_color.x, horiz_color.y, horiz_color.z);
41 set_uniform_float3(sdr_skydome, "fog_color", fog_color.x, fog_color.y, fog_color.z);
43 if(!(tex_grid = load_texture("data/pgrid.png"))) {
47 tex_grid->set_anisotropy(glcaps.max_aniso);
49 mesh_skydome = new Mesh;
50 gen_sphere(mesh_skydome, 100.0, 32, 16, 1, 0.5);
53 glClearColor(fog_color.x, fog_color.y, fog_color.z, 1.0);
58 void cleanup_backdrop()
62 free_program(sdr_grid);
68 Mat4 view_mat_inf = view_matrix.upper3x3();
70 glLoadMatrixf(view_mat_inf[0]);
72 glDisable(GL_DEPTH_TEST);
75 bind_program(sdr_skydome);
78 glEnable(GL_DEPTH_TEST);
87 glMultMatrixf(xform[0]);
89 bind_program(sdr_grid);
90 float pulse = 1.0 + sin(time_sec * 3.0) * 0.25;
91 glUniform3f(uloc_grid_color, grid_color.x * pulse, grid_color.y * pulse, grid_color.z * pulse);
92 bind_texture(tex_grid);
99 glVertex3f(-1, 0, -1);