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();
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;
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 );
/*
* 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 );
/* 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 );
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] );