X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_water.h;h=ab67e76601b1823501dc670501931e1879a2299c;hb=d13f2700b1773551307685cc7c34c804ccd6d664;hp=85f4b5debd4766d7ee81f1fb3f379d8454653347;hpb=86dbcd5796ed674ca9433cce1ace8bef322cd121;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_water.h b/world_water.h index 85f4b5d..ab67e76 100644 --- a/world_water.h +++ b/world_water.h @@ -26,18 +26,27 @@ wrender = .fbdepth = { .format = GL_RGBA, .div = 4 } }; -static void world_water_register(void) +static void world_water_init(void) { + vg_info( "world_water_init\n" ); shader_water_register(); + + vg_acquire_thread_sync(); + { + fb_init( &wrender.fbreflect ); + fb_init( &wrender.fbdepth ); + + vg_tex2d_init( (vg_tex2d *[]){&tex_water_surf}, 1 ); + vg_success( "done\n" ); + } + vg_release_thread_sync(); } -static void world_water_init(void) +static void world_water_free(void *_) { - /* TODO: probably dont do this every time */ - wrender.enabled = 1; - - fb_init( &wrender.fbreflect ); - fb_init( &wrender.fbdepth ); + vg_tex2d_free( (vg_tex2d *[]){&tex_water_surf}, 1 ); + fb_free( &wrender.fbreflect ); + fb_free( &wrender.fbdepth ); } static void water_fb_resize(void) @@ -53,6 +62,7 @@ static void water_set_surface( glmesh *surf, float height ) { wrender.mdl = *surf; wrender.height = height; + wrender.enabled = 1; v4_copy( (v4f){ 0.0f, 1.0f, 0.0f, height }, wrender.plane ); }