seperation of body initialization, glider model
[carveJwlIkooP6JGAAIwe30JlM.git] / world_render.h
index ac0a0f2a82160b1e9e5e8e1d5ff98cc854031a27..ecbd3d22ec093a78cb68dfb128df537b2a3f3340 100644 (file)
@@ -12,6 +12,7 @@
 
 #include "shaders/scene_standard.h"
 #include "shaders/scene_standard_alphatest.h"
+#include "shaders/scene_foliage.h"
 #include "shaders/scene_override.h"
 #include "shaders/scene_cubemapped.h"
 #include "shaders/scene_vertex_blend.h"
@@ -21,6 +22,7 @@
 #include "shaders/scene_position.h"
 #include "shaders/scene_font.h"
 #include "shaders/model_sky.h"
+#include "shaders/model_sky_space.h"
 
 static const float k_world_light_cube_size = 8.0f;
 
@@ -49,12 +51,12 @@ struct world_render{
    u32 timer_text_count;
 
    struct text_particle{
-      rb_object obj;
+      rigidbody rb;
       m4x3f mlocal;
       ent_glyph *glyph;
       v4f colour;
-
       m4x3f mdl;
+      f32 radius;
    }
    text_particles[6*4];
    u32 text_particle_count;
@@ -74,9 +76,24 @@ static void world_bind_light_index( world_instance *world,
                                        int slot );
 static void render_world_position( world_instance *world, camera *cam );
 static void render_world_depth( world_instance *world, camera *cam );
-static void render_world( world_instance *world, camera *cam, 
-                             int layer_depth );
+static void render_world( world_instance *world, camera *cam,
+                          int stenciled, int viewing_from_gate, 
+                          int with_water, int with_cubemaps );
 static void render_world_cubemaps( world_instance *world );
 static void bind_terrain_noise(void);
+static void render_world_override( world_instance *world,
+                                   world_instance *lighting_source,
+                                   m4x3f mmdl,
+                                   camera *cam,
+                                   ent_spawn *dest_spawn, v4f map_info );
+
+#define WORLD_BIND_LIGHT_BUFFERS_UB0_TEX234( WORLD, SHADER )            \
+   world_link_lighting_ub( WORLD, _shader_##SHADER.id );                \
+   world_bind_position_texture( WORLD, _shader_##SHADER.id,             \
+                                _uniform_##SHADER##_g_world_depth, 2 ); \
+   world_bind_light_array( WORLD, _shader_##SHADER.id,                  \
+                           _uniform_##SHADER##_uLightsArray, 3 );       \
+   world_bind_light_index( WORLD, _shader_##SHADER.id,                  \
+                           _uniform_##SHADER##_uLightsIndex, 4 );
 
 #endif /* WORLD_RENDER_H */