glider bugfixes & animation
[carveJwlIkooP6JGAAIwe30JlM.git] / world_water.c
index 87b5a62490ca51a9a244dd886b65348ecb90d3eb..085e25250ac8217ea746c97bdf918c67105f79f6 100644 (file)
@@ -12,8 +12,7 @@
 #include "shaders/scene_water_fast.h"
 #include "scene.h"
 
-static void world_water_init(void)
-{
+static void world_water_init(void){
    vg_info( "world_water_init\n" );
    shader_scene_water_register();
    shader_scene_water_fast_register();
@@ -25,8 +24,7 @@ static void world_water_init(void)
    vg_success( "done\n" );
 }
 
-static void water_set_surface( world_instance *world, float height )
-{
+static void water_set_surface( world_instance *world, float height ){
    world->water.height = height;
    v4_copy( (v4f){ 0.0f, 1.0f, 0.0f, height }, world->water.plane );
 }
@@ -45,9 +43,7 @@ static void world_bind_light_index( world_instance *world,
 /*
  * Does not write motion vectors
  */
-static void render_water_texture( world_instance *world, camera *cam,
-                                     int layer_depth )
-{
+static void render_water_texture( world_instance *world, camera *cam ){
    if( !world->water.enabled || (vg.quality_profile == k_quality_profile_low) )
       return;
 
@@ -91,7 +87,7 @@ static void render_water_texture( world_instance *world, camera *cam,
    glEnable( GL_DEPTH_TEST );
    glDisable( GL_BLEND );
    glCullFace( GL_FRONT );
-   render_world( world, &water_cam, layer_depth );
+   render_world( world, &water_cam, 0, 1, 0, 1 );
    glCullFace( GL_BACK );
    
    /*
@@ -121,8 +117,7 @@ static void render_water_texture( world_instance *world, camera *cam,
    //glViewport( 0,0, g_render_x, g_render_y );
 }
 
-static void render_water_surface( world_instance *world, camera *cam )
-{
+static void render_water_surface( world_instance *world, camera *cam ){
    if( !world->water.enabled )
       return;
 
@@ -141,16 +136,10 @@ static void render_water_surface( world_instance *world, camera *cam )
             1.0f / (float)vg.window_x,
             1.0f / (float)vg.window_y });
 
-      world_link_lighting_ub( world, _shader_scene_water.id );
-      world_bind_position_texture( world, _shader_scene_water.id, 
-                                    _uniform_scene_water_g_world_depth, 2 );
-      world_bind_light_array( world, _shader_scene_water.id,
-                                    _uniform_scene_water_uLightsArray, 4 );
-      world_bind_light_index( world, _shader_scene_water.id,
-                              _uniform_scene_water_uLightsIndex, 5 );
+      WORLD_BIND_LIGHT_BUFFERS_UB0_TEX234( world, scene_water );
 
-      render_fb_bind_texture( gpipeline.fb_water_beneath, 0, 3 );
-      shader_scene_water_uTexBack( 3 );
+      render_fb_bind_texture( gpipeline.fb_water_beneath, 0, 5 );
+      shader_scene_water_uTexBack( 5 );
       shader_scene_water_uTime( world_static.time );
       shader_scene_water_uCamera( cam->transform[3] );
       shader_scene_water_uSurfaceY( world->water.height );
@@ -191,11 +180,8 @@ static void render_water_surface( world_instance *world, camera *cam )
       shader_scene_water_fast_uTime( world_static.time );
       shader_scene_water_fast_uCamera( cam->transform[3] );
       shader_scene_water_fast_uSurfaceY( world->water.height );
-      world_link_lighting_ub( world, _shader_scene_water_fast.id );
-      world_bind_position_texture( world, _shader_scene_water_fast.id,
-                                   _uniform_scene_water_fast_g_world_depth, 2 );
-      world_bind_light_array( world, _shader_scene_water_fast.id,
-                                    _uniform_scene_water_fast_uLightsArray, 4 );
+
+      WORLD_BIND_LIGHT_BUFFERS_UB0_TEX234( world, scene_water_fast );
 
       m4x3f full;
       m4x3_identity( full );