X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_gen.c;h=bc9b2222dc7dda30952b9fca25eb60e6fbccf0cf;hb=b440efbe5785d114d08bb3f5ec0e09cad943006d;hp=e2ec14af8edd774ad28c7f441b624d3c66109d4c;hpb=fdfd087053eb596f1e9123951af8acee94d8cd99;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_gen.c b/world_gen.c index e2ec14a..bc9b222 100644 --- a/world_gen.c +++ b/world_gen.c @@ -4,10 +4,6 @@ * World generation/population. Different to regular loading, since it needs to * create geometry, apply procedural stuff and save that image to files etc. */ - -#ifndef WORLD_GEN_C -#define WORLD_GEN_C - #include "world.h" #include "world_gen.h" #include "world_load.h" @@ -109,7 +105,8 @@ static void world_apply_procedural_foliage( world_instance *world, scene_context *scene, struct world_surface *mat ) { - if( vg.quality_profile == k_quality_profile_low ) + if( (vg.quality_profile == k_quality_profile_low) || + (vg.quality_profile == k_quality_profile_min) ) return; vg_info( "Applying foliage (%u)\n", mat->info.pstr_name ); @@ -209,7 +206,8 @@ void world_unpack_submesh_dynamic( world_instance *world, /* * Create the main meshes for the world */ -static void world_gen_generate_meshes( world_instance *world ){ +void world_gen_generate_meshes( world_instance *world ) +{ /* * Compile meshes into the world scenes */ @@ -266,19 +264,8 @@ static void world_gen_generate_meshes( world_instance *world ){ /* need send off the memory to the gpu before we can create the bvh. */ vg_async_stall(); vg_info( "creating bvh\n" ); - - /* setup spacial mapping and rigidbody */ world->geo_bh = scene_bh_create( world->heap, &world->scene_geo ); - v3_zero( world->rb_geo.rb.co ); - v3_zero( world->rb_geo.rb.v ); - q_identity( world->rb_geo.rb.q ); - v3_zero( world->rb_geo.rb.w ); - - world->rb_geo.type = k_rb_shape_scene; - world->rb_geo.inf.scene.bh_scene = world->geo_bh; - rb_init_object( &world->rb_geo ); - /* * Generate scene: non-collidable geometry * ---------------------------------------------------------------- @@ -409,7 +396,8 @@ static void async_upload_light_indices( void *payload, u32 size ){ /* * Computes light indices for world */ -static void world_gen_compute_light_indices( world_instance *world ){ +void world_gen_compute_light_indices( world_instance *world ) +{ /* light cubes */ v3f cubes_min, cubes_max; v3_muls( world->scene_geo.bbx[0], 1.0f/k_world_light_cube_size, cubes_min ); @@ -569,7 +557,8 @@ static void world_gen_compute_light_indices( world_instance *world ){ /* * Rendering pass needed to complete the world */ -static void async_world_postprocess( void *payload, u32 _size ){ +void async_world_postprocess( void *payload, u32 _size ) +{ /* create scene lighting buffer */ world_instance *world = payload; @@ -635,7 +624,7 @@ static void async_world_postprocess( void *payload, u32 _size ){ /* * Rendering the depth map */ - camera ortho; + vg_camera ortho; v3f extent; v3_sub( world->scene_geo.bbx[1], world->scene_geo.bbx[0], extent ); @@ -654,8 +643,8 @@ static void async_world_postprocess( void *payload, u32 _size ){ ortho.mtx.p[3][1] = (ft + fb) * -tb; ortho.mtx.p[3][3] = 1.0f; m4x3_identity( ortho.transform ); - camera_update_view( &ortho ); - camera_finalize( &ortho ); + vg_camera_update_view( &ortho ); + vg_camera_finalize( &ortho ); glDisable(GL_DEPTH_TEST); glDisable(GL_BLEND); @@ -723,7 +712,8 @@ static void async_world_postprocess( void *payload, u32 _size ){ } /* Loads textures from the pack file */ -static void world_gen_load_surfaces( world_instance *world ){ +void world_gen_load_surfaces( world_instance *world ) +{ vg_info( "Loading textures\n" ); world->texture_count = 0; @@ -765,5 +755,3 @@ static void world_gen_load_surfaces( world_instance *world ){ surf->flags = 0; } } - -#endif /* WORLD_GEN_C */