From: hgn Date: Sun, 29 Jun 2025 13:01:06 +0000 (+0100) Subject: Dont look X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=4f26adb6b6b26d628e9ab49839294ea0e118ed3e;p=carveJwlIkooP6JGAAIwe30JlM.git Dont look --- diff --git a/build.c b/build.c index 6982e78..d110b58 100644 --- a/build.c +++ b/build.c @@ -464,11 +464,52 @@ void s_dbtest_build(void) vg_compiler_run( &test_proj, &vg_test_env, &conf, sources.buffer, "dbtest", k_obj_type_exe ); } +#include "vg/vg_kv.h" +#include "vg/vg_kv.c" + int main( int argc, const char *argv[] ) { vg_log_init(); _vg_opt_init( argc, argv ); + vg_stack_allocator stacky; + vg_stack_init( &stacky, NULL, 0, "Stacky" ); + vg_stack_set_flags( &stacky, VG_STACK_ALLOCATOR_METADATA|VG_STACK_ALLOCATOR_DOUBLE_IF_FULL ); + u32 size; + const char *src = vg_file_read( &stacky, "/home/harry/Documents/vg_res/test.kv", &size, 1 ); + + if( src ) + { + vg_kvs kvs; + vg_kv_parse( &kvs, src, &stacky ); + vg_kv_print_info( &kvs ); + vg_kv_print_tree( &kvs, 0, 0 ); + + u32 db = vg_kv_find( &kvs, 0, "skaterift_database" ); + if( db ) + { + vg_success( "Found db\n" ); + + u32 users = vg_kv_find( &kvs, db, "users" ); + if( users ) + { + vg_success( "Found users\n" ); + + u32 vt = vg_kv_find( &kvs, users, "value_type" ); + if( vt ) + { + u32 val_length; + const char *val = vg_kv_value( &kvs, vt, &val_length ); + + if( val ) + vg_success( "-> %.*s\n", val_length, val ); + } + } + } + } + + return 0; + const char *arg; if( (arg = vg_long_opt_arg( "glsl-dir", "Specify output directory for preprocessed GLSL" )) ) diff --git a/src/metascene.c b/src/metascene.c index 2d956ad..6a6b5c8 100644 --- a/src/metascene.c +++ b/src/metascene.c @@ -178,7 +178,7 @@ static void cutscene_load_thread( vg_async_task *task ) if( !ref ) { - vg_stack_extend_last( _cutscene.stack, sizeof(struct model_ref) ); + _cutscene.refs = vg_stack_extend_last( _cutscene.stack, sizeof(struct model_ref) ); ref_id = _cutscene.unique_refs; ref = &_cutscene.refs[ ref_id ]; ref->name = name; @@ -213,9 +213,7 @@ static void cutscene_load_thread( vg_async_task *task ) u32 skeleton_count = ref->mdl.armature_count; if( skeleton_count ) { - ref->skeletons = vg_stack_allocate( _cutscene.stack, sizeof(struct cs_skeleton) * skeleton_count, - 8, "Skeletons" ); - + ref->skeletons = vg_stack_allocate( _cutscene.stack, sizeof(struct cs_skeleton) * skeleton_count, 8, "Skeletons" ); ref->total_skinning_bones = 0; for( u32 j=0; jscene_geo.max_indices = world->scene_geo.indice_count; world->scene_geo.max_vertices = world->scene_geo.vertex_count; - vg_stack_resize_last( world->stack, scene_mem_required( &world->scene_geo ) ); + buffer = vg_stack_resize_last( world->stack, scene_mem_required( &world->scene_geo ) ); world->scene_geo.arrvertices = (scene_vert *)(buffer); world->scene_geo.arrindices = (u32 *)(buffer + new_vert_size);