framebuffer formalitites
[carveJwlIkooP6JGAAIwe30JlM.git] / world_water.h
index e054a111a788dea8440d06be1e8ac473f5e03227..6a53a05f39a2de1e3ed5fbb6cca4e115b27f18e1 100644 (file)
@@ -21,14 +21,6 @@ VG_STATIC void world_water_init(void)
 
    vg_acquire_thread_sync();
    {
-      world.water.fbreflect.format  = GL_RGB;
-      world.water.fbreflect.div     = 3;
-      world.water.fbdepth.format    = GL_RGBA;
-      world.water.fbdepth.div       = 4;
-   
-      fb_init( &world.water.fbreflect );
-      fb_init( &world.water.fbdepth );
-
       vg_tex2d_init( (vg_tex2d *[]){&tex_water_surf}, 1 );
    }
    vg_release_thread_sync();
@@ -36,15 +28,6 @@ VG_STATIC void world_water_init(void)
    vg_success( "done\n" );
 }
 
-VG_STATIC void water_fb_resize(void)
-{
-   if( !world.water.enabled )
-      return;
-   
-   fb_resize( &world.water.fbreflect );
-   fb_resize( &world.water.fbdepth );
-}
-
 VG_STATIC void water_set_surface( float height )
 {
    world.water.height = height;
@@ -60,7 +43,7 @@ VG_STATIC void render_water_texture( camera *cam )
       return;
 
    /* Draw reflection buffa */
-   fb_use( &world.water.fbreflect );
+   render_fb_bind( gpipeline.fb_water_reflection );
    glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
 
    /* 
@@ -102,7 +85,7 @@ VG_STATIC void render_water_texture( camera *cam )
     * Create beneath view matrix
     */
    camera beneath_cam;
-   fb_use( &world.water.fbdepth );
+   render_fb_bind( gpipeline.fb_water_beneath );
    glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
 
    m4x3_copy( cam->transform, beneath_cam.transform );
@@ -132,7 +115,7 @@ VG_STATIC void render_water_surface( camera *cam )
       /* Draw surface */
       shader_water_use();
       
-      fb_bindtex( &world.water.fbreflect, 0 );
+      render_fb_bind_texture( gpipeline.fb_water_reflection, 0, 0 );
       shader_water_uTexMain( 0 );
 
       vg_tex2d_bind( &tex_water_surf, 1 );
@@ -143,7 +126,7 @@ VG_STATIC void render_water_surface( camera *cam )
 
       shader_link_standard_ub( _shader_water.id, 2 );
 
-      fb_bindtex( &world.water.fbdepth, 3 );
+      render_fb_bind_texture( gpipeline.fb_water_beneath, 0, 3 );
       shader_water_uTexBack( 3 );
       shader_water_uTime( world.time );
       shader_water_uCamera( cam->transform[3] );