vg_tex2d_load_qoi_async_file( "textures/garbage.qoi",
VG_TEX2D_NEAREST|VG_TEX2D_REPEAT,
&tex_terrain_noise );
- vg_async_item *call = vg_async_alloc(0);
- vg_async_dispatch( call, async_world_render_init );
+
+ vg_async_call( async_world_render_init, NULL, 0 );
}
VG_STATIC void world_link_lighting_ub( world_instance *world, GLuint shader )
sizeof(struct ub_world_lighting), &world->ub_lighting );
}
+VG_STATIC void skateshop_render(void);
VG_STATIC void render_world( world_instance *world, camera *cam,
int layer_depth )
{
render_world_alphatest( world, cam );
render_terrain( world, cam );
- /* Render SFD's */
- u32 closest = 0;
- float min_dist = INFINITY;
+ if( layer_depth == 0 ){
+ skateshop_render();
+
+ /* Render SFD's */
+ u32 closest = 0;
+ float min_dist = INFINITY;
- if( !mdl_arrcount( &world->ent_route ) )
- return;
+ if( !mdl_arrcount( &world->ent_route ) )
+ return;
- for( u32 i=0; i<mdl_arrcount( &world->ent_route ); i++ ){
- ent_route *route = mdl_arritm( &world->ent_route, i );
- float dist = v3_dist2( route->board_transform[3], cam->pos );
+ for( u32 i=0; i<mdl_arrcount( &world->ent_route ); i++ ){
+ ent_route *route = mdl_arritm( &world->ent_route, i );
+ float dist = v3_dist2( route->board_transform[3], cam->pos );
- if( dist < min_dist ){
- min_dist = dist;
- closest = i;
+ if( dist < min_dist ){
+ min_dist = dist;
+ closest = i;
+ }
}
- }
- ent_route *route = mdl_arritm( &world->ent_route, closest );
- sfd_render( world, cam, route->board_transform );
+ ent_route *route = mdl_arritm( &world->ent_route, closest );
+ sfd_render( world, cam, route->board_transform );
+ }
}
VG_STATIC void render_world_depth( world_instance *world, camera *cam )