X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world.h;h=4f2c5c3a383df91819f794380c64feaf8fa0ff84;hb=aa4c26eae2208872824e0eb5b71bc05c16d43242;hp=f70f9ee87efc680ff40da95cb1064b7466f2283b;hpb=3e8fda9c7cbc50d1ae95195905c953bdeedf71b9;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world.h b/world.h index f70f9ee..4f2c5c3 100644 --- a/world.h +++ b/world.h @@ -19,13 +19,13 @@ VG_STATIC int ray_world( v3f pos, v3f dir, ray_hit *hit ); #include "bvh.h" #include "model.h" -#include "shaders/terrain.h" -#include "shaders/sky.h" -#include "shaders/standard.h" -#include "shaders/vblend.h" -#include "shaders/gpos.h" -#include "shaders/blitcolour.h" -#include "shaders/alphatest.h" +#include "shaders/scene_standard.h" +#include "shaders/scene_standard_alphatest.h" +#include "shaders/scene_vertex_blend.h" +#include "shaders/scene_terrain.h" +#include "shaders/scene_depth.h" + +#include "shaders/model_sky.h" typedef struct teleport_gate teleport_gate; @@ -226,6 +226,16 @@ VG_STATIC struct gworld * logic_achievements; u32 achievement_count; + /* + * Lights + */ + struct world_light + { + v3f co; + v4f colour; + } + * lights; + u32 light_count; /* * Routes (world_routes.h) @@ -415,11 +425,13 @@ VG_STATIC void world_init(void) world.sky_rate = 1.0; world.sky_target_rate = 1.0; - shader_terrain_register(); - shader_sky_register(); - shader_gpos_register(); - shader_blitcolour_register(); - shader_alphatest_register(); + shader_scene_standard_register(); + shader_scene_standard_alphatest_register(); + shader_scene_vertex_blend_register(); + shader_scene_terrain_register(); + shader_scene_depth_register(); + + shader_model_sky_register(); vg_info( "Loading world resources\n" ); @@ -621,6 +633,22 @@ VG_STATIC void world_update( v3f pos ) 0xff00ff00 ); } + for( int i=0; icolour[0] * 255.0f, + g = light->colour[1] * 255.0f, + b = light->colour[2] * 255.0f; + + colour |= r; + colour |= g << 8; + colour |= b << 16; + + vg_line_pt3( light->co, 0.25f, colour ); + } + world.in_trigger = in_trigger; sfd_update(); }