+/*
+ * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved
+ */
+
#ifndef WATER_H
#define WATER_H
.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)
{
wrender.mdl = *surf;
wrender.height = height;
+ wrender.enabled = 1;
v4_copy( (v4f){ 0.0f, 1.0f, 0.0f, height }, wrender.plane );
}