X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_gate.h;h=469f73695e7da46489e08a2f3b6dc8a93e67b306;hb=b4a83d4fcab39bee5a8cd6e8e6eec06314864e5b;hp=2febafaaa0434f46a249ec2036cb686532e569ca;hpb=2673c575386c604fc2c0603dba2480eda05cf97a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_gate.h b/world_gate.h index 2febafa..469f736 100644 --- a/world_gate.h +++ b/world_gate.h @@ -27,8 +27,8 @@ VG_STATIC void gate_transform_update( ent_gate *gate ) v3_copy( gate->co[1], recv_to_world[3] ); m4x3_mul( recv_to_world, to_local, gate->transport ); - m4x3_scalev( gate->to_world, (v3f){ gate->dimensions[0], - gate->dimensions[1], 1.0f } ); + m3x3_scale( gate->to_world, (v3f){ gate->dimensions[0], + gate->dimensions[1], 1.0f } ); } VG_STATIC void world_gates_init(void) @@ -42,7 +42,6 @@ VG_STATIC void world_gates_init(void) mdl_context mgate; mdl_open( &mgate, "models/rs_gate.mdl", vg_mem.scratch ); mdl_load_metadata_block( &mgate, vg_mem.scratch ); - mdl_load_mesh_block( &mgate, vg_mem.scratch ); mdl_mesh *surface = mdl_find_mesh( &mgate, "rs_gate" ); mdl_submesh *sm = mdl_arritm(&mgate.submeshs,surface->submesh_start); @@ -57,13 +56,8 @@ VG_STATIC void world_gates_init(void) world_global.sm_gate_marker[i] = *sm; } + mdl_async_load_glmesh( &mgate, &world_global.mesh_gate ); mdl_close( &mgate ); - - vg_acquire_thread_sync(); - { - mdl_unpack_glmesh( &mgate, &world_global.mesh_gate ); - } - vg_release_thread_sync(); } VG_STATIC int render_gate( world_instance *world_inside, @@ -155,7 +149,7 @@ VG_STATIC int render_gate( world_instance *world_inside, glDisable( GL_STENCIL_TEST ); render_water_texture( world_inside, &gate_camera, layer_depth ); - render_fb_bind( gpipeline.fb_main ); + render_fb_bind( gpipeline.fb_main, 1 ); glEnable( GL_STENCIL_TEST ); @@ -231,7 +225,8 @@ VG_STATIC ent_gate *world_intersect_gates( world_instance *world, { for( u32 i=0; ient_gate); i++ ){ ent_gate *gate = mdl_arritm( &world->ent_gate, i ); - if( gate->type == k_gate_type_unlinked ) + if( gate->type == k_gate_type_unlinked || + gate->type == k_gate_type_nonlocal_unlinked ) continue; if( gate_intersect( gate, pos, last ) ){