summaryrefslogtreecommitdiff
path: root/glass.h
diff options
context:
space:
mode:
Diffstat (limited to 'glass.h')
-rw-r--r--glass.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/glass.h b/glass.h
index d3950ff..33cfff5 100644
--- a/glass.h
+++ b/glass.h
@@ -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);