diff options
Diffstat (limited to 'glass.h')
-rw-r--r-- | glass.h | 22 |
1 files changed, 21 insertions, 1 deletions
@@ -38,6 +38,19 @@ struct revolved_object { float radius; }; +enum uniform_list { + UNIFORM_MV, + UNIFORM_MVP, + UNIFORM_LIGHT_MVP, + UNIFORM_LIGHT_EYE, + UNIFORM_NORMAL_SAMPLER, + UNIFORM_HEIGHTMAP_SAMPLER, + UNIFORM_SHADOW_SAMPLER, + UNIFORM_NI, + UNIFORM_F0, + UNIFORM_MAX +}; + enum ground_uniform_list { GROUND_UNIFORM_MV, GROUND_UNIFORM_MVP, @@ -59,9 +72,10 @@ struct uniform_desc { #define NUM_RINGS 27 +extern struct uniform_desc uniforms[UNIFORM_MAX]; extern struct uniform_desc ground_uniforms[GROUND_UNIFORM_MAX]; extern struct uniform_desc shadow_uniforms[SHADOW_UNIFORM_MAX]; -extern GLuint ground_prog, shadow_prog; +extern GLuint glass_prog, ground_prog, shadow_prog; extern GLUmat4 projection; extern GLUmat4 world_to_eye, world_to_shadow_texcoords; extern GLUvec4 light_world, light_eye; @@ -71,6 +85,7 @@ extern GLUvec4 ring_bounding_sphere_center_world; extern float ring_bounding_sphere_radius; extern GLuint shadow_tex; extern GLUmat4 world_to_light_ndc; +extern int no_multi_draw_arrays; void do_ring_drawelements(void); @@ -97,5 +112,10 @@ GLuint load_texture_rgb(const char *filename); void draw_ground(void); void setup_ground(void); +/* rings.c */ +void draw_rings(void); +void update_brdf_constants(void); +void setup_rings(void); + /* shadow_map.c */ void generate_rings_shadowmap(void); |