glBindVertexArray( gpipeline.fsquad.vao );
glDrawArrays( GL_TRIANGLES, 66+6,6 );
}
+
+void postprocess_to_screen( vg_framebuffer *fb )
+{
+ glBindFramebuffer( GL_FRAMEBUFFER, 0 );
+ glViewport( 0,0, vg.window_x, vg.window_y );
+
+ glEnable(GL_BLEND);
+ glDisable(GL_DEPTH_TEST);
+ glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_DST_ALPHA);
+ glBlendEquation(GL_FUNC_ADD);
+
+ v2f inverse;
+ vg_framebuffer_inverse_ratio( fb, inverse );
+
+ if( k_blur_effect )
+ {
+ shader_blitblur_use();
+ shader_blitblur_uTexMain( 0 );
+ shader_blitblur_uTexMotion( 1 );
+ shader_blitblur_uBlurStrength( k_blur_strength /
+ (vg.time_frame_delta*60.0) );
+ shader_blitblur_uInverseRatio( inverse );
+
+ inverse[0] -= 0.0001f;
+ inverse[1] -= 0.0001f;
+ shader_blitblur_uClampUv( inverse );
+ shader_blitblur_uOverrideDir( gpipeline.blur_override );
+
+ vg_framebuffer_bind_texture( fb, 0, 0 );
+ vg_framebuffer_bind_texture( fb, 1, 1 );
+ }
+ else{
+ shader_blit_use();
+ shader_blit_uTexMain( 0 );
+ shader_blit_uInverseRatio( inverse );
+ vg_framebuffer_bind_texture( fb, 0, 0 );
+ }
+
+ render_fsquad();
+}
.hub_world = "maps/dev_hub",
};
-static int k_tools_mode = 0;
-
int main( int argc, char *argv[] )
{
network_set_host( "skaterift.com", NULL );
network_set_host( arg, NULL );
}
- if( vg_long_opt( "tools" ) ){
- k_tools_mode = 1;
- }
-
if( vg_long_opt( "demo" ) ){
skaterift.demo_mode = 1;
}
vg_loader_step( remote_players_init, NULL );
- if( k_tools_mode )
- return;
-
steam_init();
vg_loader_step( NULL, steam_end );
vg_loader_step( network_init, network_end );
void vg_load(void)
{
- if( k_tools_mode ){
- vg_async_call( async_call_ready, NULL, 0 );
- return;
- }
-
vg_audio.always_keep_compressed = 1;
vg_console_reg_cmd( "load_world", skaterift_load_world_command, NULL );
{
skaterift_preupdate_inputs();
- if( k_tools_mode ) return;
-
steam_update();
skaterift_change_client_world_preupdate();
void vg_fixed_update(void)
{
- if( k_tools_mode ) return;
if( skaterift.op == k_async_op_clientloading ) return;
world_routes_fixedupdate( world_current_instance() );
void vg_post_update(void)
{
- if( k_tools_mode ) return;
if( skaterift.op == k_async_op_clientloading ) return;
player__post_update();
* RENDERING
* ---------------------------------------------------------------------------*/
-static void present_view_with_post_processing(void){
- glBindFramebuffer( GL_FRAMEBUFFER, 0 );
- glViewport( 0,0, vg.window_x, vg.window_y );
-
- glEnable(GL_BLEND);
- glDisable(GL_DEPTH_TEST);
- glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_DST_ALPHA);
- glBlendEquation(GL_FUNC_ADD);
-
- v2f inverse;
- vg_framebuffer_inverse_ratio( gpipeline.fb_main, inverse );
-
- if( k_blur_effect ){
- shader_blitblur_use();
- shader_blitblur_uTexMain( 0 );
- shader_blitblur_uTexMotion( 1 );
- shader_blitblur_uBlurStrength( k_blur_strength /
- (vg.time_frame_delta*60.0) );
- shader_blitblur_uInverseRatio( inverse );
-
- inverse[0] -= 0.0001f;
- inverse[1] -= 0.0001f;
- shader_blitblur_uClampUv( inverse );
-
- static f64 effect_time = 133.0;
- effect_time += vg.time_frame_delta;
- shader_blitblur_uTime( effect_time );
-
- f32 glitch_strength = 0.0f;
- if( skaterift.activity == k_skaterift_replay ){
- glitch_strength = 0.005f;
- if( player_replay.replay_control == k_replay_control_play )
- glitch_strength = 0.005f;
- else
- glitch_strength += 0.005f*player_replay.track_velocity;
- }
- shader_blitblur_uGlitchStrength( glitch_strength );
-
- v2f override;
- if( (skaterift.activity == k_skaterift_menu) && menu.bg_blur )
- v2_muls( (v2f){ 0.04f, 0.001f }, 1.0f-skaterift.time_rate, override );
- else
- v2_zero( override );
- shader_blitblur_uOverrideDir( override );
-
- vg_framebuffer_bind_texture( gpipeline.fb_main, 0, 0 );
- vg_framebuffer_bind_texture( gpipeline.fb_main, 1, 1 );
- }
- else{
- shader_blit_use();
- shader_blit_uTexMain( 0 );
- shader_blit_uInverseRatio( inverse );
- vg_framebuffer_bind_texture( gpipeline.fb_main, 0, 0 );
- }
-
- render_fsquad();
-}
-
static void render_player_transparent(void)
{
if( (skaterift.activity == k_skaterift_menu) &&
}
/* composite */
- present_view_with_post_processing();
+
+ if( (skaterift.activity == k_skaterift_menu) && menu.bg_blur )
+ v2_muls( (v2f){ 0.04f, 0.001f }, 1.0f-skaterift.time_rate,
+ gpipeline.blur_override );
+ else
+ v2_zero( gpipeline.blur_override );
+ postprocess_to_screen( gpipeline.fb_main );
+
skaterift_replay_post_render();
control_overlay_render();
}
void vg_render(void)
{
- if( k_tools_mode ){
- glBindFramebuffer( GL_FRAMEBUFFER, 0 );
- glViewport( 0,0, vg.window_x, vg.window_y );
- glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
- glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT );
- return;
- }
-
if( skaterift.op == k_async_op_clientloading ){
vg_loader_render();
return;
gui_draw( ctx );
- if( k_tools_mode )
- {
- ui_rect null;
- ui_rect screen = { 0, 0, vg.window_x, vg.window_y };
- ui_rect panel = { 0, 0, 1000, 700 };
- ui_rect_center( screen, panel );
- ui_capture_mouse( ctx, 1 );
-
- ui_fill( ctx, panel, ui_colour( ctx, k_ui_bg+1 ) );
- ui_outline( ctx, panel, 1, ui_colour( ctx, k_ui_bg+7 ), 0 );
-
- ui_rect_pad( panel, (ui_px[2]){ 8, 8 } );
-
- return;
- }
-
if( k_light_editor )
imgui_world_light_edit( ctx, world_current_instance() );