#ifndef ROUTES_H
#define ROUTES_H
+#include <time.h>
#include "world.h"
#include "world_gate.h"
+#if 0
#include "shaders/vblend.h"
-#include "shaders/route.h"
+#endif
+
+#include "shaders/scene_route.h"
#include "shaders/routeui.h"
if( ray_world( sa, down, &ha ) &&
ray_world( sb, down, &hb ))
{
- mdl_vert va, vb;
+ scene_vert va, vb;
v3_muladds( ha.pos, up, 0.06f, va.co );
v3_muladds( hb.pos, up, 0.06f, vb.co );
- v3_copy( up, va.norm );
- v3_copy( up, vb.norm );
+
+ scene_vert_pack_norm( &va, up );
+ scene_vert_pack_norm( &vb, up );
v2_zero( va.uv );
v2_zero( vb.uv );
world.time = RESET_MAX_TIME*2.0;
world.last_use = 0.0;
- shader_route_register();
+ shader_scene_route_register();
shader_routeui_register();
vg_acquire_thread_sync();
}
VG_STATIC void bind_terrain_noise(void);
-VG_STATIC void render_world_routes( m4x4f projection, v3f camera )
+VG_STATIC void render_world_routes( camera *cam )
{
m4x3f identity_matrix;
m4x3_identity( identity_matrix );
- shader_route_use();
- shader_route_uTexGarbage(0);
- shader_link_standard_ub( _shader_route.id, 2 );
+ shader_scene_route_use();
+ shader_scene_route_uTexGarbage(0);
+ shader_link_standard_ub( _shader_scene_route.id, 2 );
bind_terrain_noise();
- shader_route_uPv( projection );
- shader_route_uMdl( identity_matrix );
- shader_route_uCamera( camera );
+ shader_scene_route_uPv( cam->mtx.pv );
+ shader_scene_route_uPvmPrev( cam->mtx_prev.pv );
+ shader_scene_route_uMdl( identity_matrix );
+ shader_scene_route_uCamera( cam->transform[3] );
+ shader_scene_route_uBoard0( TEMP_BOARD_0 );
+ shader_scene_route_uBoard1( TEMP_BOARD_1 );
mesh_bind( &world.mesh_route_lines );
v3_lerp( (v3f){0.7f,0.7f,0.7f}, route->colour, route->factive, colour );
colour[3] = 1.0f;
- shader_route_uColour( colour );
+ shader_scene_route_uColour( colour );
mdl_draw_submesh( &route->sm );
}
}