+/*
+ * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved
+ */
+
#ifndef BVH_H
#define BVH_H
#include "common.h"
{
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;
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 )
if( inode->count )
{
if( count + inode->count >= len )
- {
- vg_error( "Maximum buffer reached!\n" );
return count;
- }
for( u32 i=0; i<inode->count; i++ )
buffer[ count ++ ] = inode->start+i;