X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=bvh.h;h=c18bb3052d9ffa532231ae9bcfcba797dbad4814;hb=c33e4f46d864b2fde0c5938bf5a9388b1e8b5c04;hp=a6a7468b7141f6a7c7f13f8cae11725121840b6d;hpb=a6e1ee0f51aa5570b20aad658365dec896f8c9b8;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/bvh.h b/bvh.h index a6a7468..c18bb30 100644 --- a/bvh.h +++ b/bvh.h @@ -1,3 +1,7 @@ +/* + * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved + */ + #ifndef BVH_H #define BVH_H #include "common.h" @@ -135,7 +139,7 @@ static void bh_create( bh_tree *bh, bh_system *sys, void *user, u32 item_count ) { bh->system = sys; bh->user = user; - bh->nodes = malloc( sizeof(bh_node) * (item_count*2-1) ); + bh->nodes = vg_alloc( sizeof(bh_node) * (item_count*2-1) ); bh_node *root = &bh->nodes[0]; bh->node_count = 1; @@ -148,8 +152,17 @@ static void bh_create( bh_tree *bh, bh_system *sys, void *user, u32 item_count ) bh_update_bounds( bh, 0 ); bh_subdivide( bh, 0 ); - bh->nodes = realloc( bh->nodes, sizeof(bh_node) * bh->node_count ); + bh->nodes = vg_realloc( bh->nodes, sizeof(bh_node) * bh->node_count ); vg_success( "BVH done, size: %u/%u\n", bh->node_count, (item_count*2-1) ); + +#if 0 + vg_fatal_exit_loop( "Test crash from loader" ); +#endif +} + +static void bh_free( bh_tree *bh ) +{ + vg_free( bh->nodes ); } static void bh_debug_node( bh_tree *bh, u32 inode, v3f pos, u32 colour ) @@ -251,10 +264,7 @@ static int bh_select( bh_tree *bh, boxf box, u32 *buffer, int len ) if( inode->count ) { if( count + inode->count >= len ) - { - vg_error( "Maximum buffer reached!\n" ); return count; - } for( u32 i=0; icount; i++ ) buffer[ count ++ ] = inode->start+i;