X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world.h;h=1b540d0d9d17176197003f04729b4f5ed4595803;hb=409edea2cf6271956137918e4e0b4f1c2addf620;hp=b80db3776879f2b1dfb760b64ef432c2010ce6f1;hpb=56f320d8ce6e8997370ec8e02fe50ca2d07b67f0;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world.h b/world.h index b80db37..1b540d0 100644 --- a/world.h +++ b/world.h @@ -24,6 +24,7 @@ typedef struct world_instance world_instance; #include "shaders/scene_vertex_blend.h" #include "shaders/scene_terrain.h" #include "shaders/scene_depth.h" +#include "shaders/scene_position.h" #include "shaders/model_sky.h" @@ -91,13 +92,18 @@ struct world_instance int g_light_preview; int g_shadow_samples; +#if 0 v4f g_point_light_positions[32]; v4f g_point_light_colours[32]; +#endif } ub_lighting; GLuint ubo_lighting; int ubo_bind_point; + GLuint tbo_light_entities, + tex_light_entities; + struct framebuffer heightmap; /* @@ -251,7 +257,7 @@ struct world_instance v4f q[2]; v2f dims; - m4x3f to_world, recv_to_world, transport; + m4x3f to_world, transport; } gate; @@ -267,6 +273,16 @@ struct world_instance *gates; u32 gate_count; + struct nonlocal_gate + { + struct teleport_gate gate; + mdl_node *node; + + u32 target_map_index, working; + } + *nonlocal_gates; + u32 nonlocalgate_count; + struct route_collector { struct route_timing timing; @@ -489,6 +505,7 @@ VG_STATIC void world_init(void) shader_scene_vertex_blend_register(); shader_scene_terrain_register(); shader_scene_depth_register(); + shader_scene_position_register(); shader_model_sky_register(); @@ -626,10 +643,11 @@ VG_STATIC void world_update( world_instance *world, v3f pos ) } } - world.sky_time += world.sky_rate * vg.time_delta; - world.sky_rate = vg_lerp( world.sky_rate, world.sky_target_rate, - vg.time_delta * 5.0 ); #endif + world_global.sky_time += world_global.sky_rate * vg.time_delta; + world_global.sky_rate = vg_lerp( world_global.sky_rate, + world_global.sky_target_rate, + vg.time_delta * 5.0 ); world_routes_update( world ); #if 0 @@ -700,20 +718,23 @@ VG_STATIC void world_update( world_instance *world, v3f pos ) 0xff00ff00 ); } - for( int i=0; ilight_count; i++ ) + if( 0 ) { - struct world_light *light = &world->lights[i]; + for( int i=0; ilight_count; i++ ) + { + struct world_light *light = &world->lights[i]; - u32 colour = 0xff000000; - u8 r = light->colour[0] * 255.0f, - g = light->colour[1] * 255.0f, - b = light->colour[2] * 255.0f; + u32 colour = 0xff000000; + u8 r = light->colour[0] * 255.0f, + g = light->colour[1] * 255.0f, + b = light->colour[2] * 255.0f; - colour |= r; - colour |= g << 8; - colour |= b << 16; + colour |= r; + colour |= g << 8; + colour |= b << 16; - vg_line_pt3( light->co, 0.25f, colour ); + vg_line_pt3( light->co, 0.25f, colour ); + } } world_global.in_trigger = in_trigger;