X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_water.h;h=249800d3569725c608e775c9215d293f0e0a5b33;hb=d00b1df8f80e4714dc2f9aa2189d242bb4d09a2f;hp=85f4b5debd4766d7ee81f1fb3f379d8454653347;hpb=86dbcd5796ed674ca9433cce1ace8bef322cd121;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_water.h b/world_water.h index 85f4b5d..249800d 100644 --- a/world_water.h +++ b/world_water.h @@ -1,3 +1,7 @@ +/* + * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved + */ + #ifndef WATER_H #define WATER_H @@ -26,18 +30,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 +66,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 ); }