X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=skaterift.c;h=87118fc3bef036da79d55138bb10e71dc80fd008;hb=0ba0bbe2da453f17f56a88521057e6514ae30b8f;hp=89ee898d71691479f54fa25d3ef57e8393f7e153;hpb=9695bd6aa2ca31da9dbcde29eb5d082489c4decc;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/skaterift.c b/skaterift.c index 89ee898..87118fc 100644 --- a/skaterift.c +++ b/skaterift.c @@ -59,8 +59,6 @@ struct skaterift_globals skaterift = .hub_world = "maps/dev_hub", }; -static int k_tools_mode = 0; - int main( int argc, char *argv[] ) { network_set_host( "skaterift.com", NULL ); @@ -82,10 +80,6 @@ void vg_launch_opt(void) network_set_host( arg, NULL ); } - if( vg_long_opt( "tools" ) ){ - k_tools_mode = 1; - } - if( vg_long_opt( "demo" ) ){ skaterift.demo_mode = 1; } @@ -113,9 +107,6 @@ vg_info(" ' ' '--' [] '----- '----- ' ' '---' " 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 ); @@ -216,11 +207,6 @@ static void skaterift_load_player_content(void) 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 ); @@ -296,8 +282,6 @@ void vg_pre_update(void) { skaterift_preupdate_inputs(); - if( k_tools_mode ) return; - steam_update(); skaterift_change_client_world_preupdate(); @@ -348,7 +332,6 @@ void vg_pre_update(void) void vg_fixed_update(void) { - if( k_tools_mode ) return; if( skaterift.op == k_async_op_clientloading ) return; world_routes_fixedupdate( world_current_instance() ); @@ -358,7 +341,6 @@ void vg_fixed_update(void) void vg_post_update(void) { - if( k_tools_mode ) return; if( skaterift.op == k_async_op_clientloading ) return; player__post_update(); @@ -371,9 +353,9 @@ void vg_post_update(void) vg_dsp.echo_distances[sample_index] = dist; v3f ears = { 1.0f,0.0f,0.0f }; - m3x3_mulv( skaterift.cam.transform, ears, ears ); + m3x3_mulv( g_render.cam.transform, ears, ears ); v3_copy( ears, vg_audio.external_listener_ears ); - v3_copy( skaterift.cam.transform[3], vg_audio.external_listener_pos ); + v3_copy( g_render.cam.transform[3], vg_audio.external_listener_pos ); if( localplayer.gate_waiting ){ m4x3_mulv( localplayer.gate_waiting->transport, @@ -392,71 +374,10 @@ void vg_post_update(void) * RENDERING * ---------------------------------------------------------------------------*/ -void vg_framebuffer_resize( int w, int h ){ - render_fb_resize(); -} - -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; - render_fb_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 ); - - render_fb_bind_texture( gpipeline.fb_main, 0, 0 ); - render_fb_bind_texture( gpipeline.fb_main, 1, 1 ); - } - else{ - shader_blit_use(); - shader_blit_uTexMain( 0 ); - shader_blit_uInverseRatio( inverse ); - render_fb_bind_texture( gpipeline.fb_main, 0, 0 ); - } - - render_fsquad(); -} - static void render_player_transparent(void) { - if( (menu.page == k_menu_page_main) && + if( (skaterift.activity == k_skaterift_menu) && + (menu.page == k_menu_page_main) && (menu.main_index == k_menu_main_guide) ) { return; @@ -465,9 +386,9 @@ static void render_player_transparent(void) static vg_camera small_cam; /* DOES NOT NEED TO BE STATIC BUT MINGW SAIS OTHERWISE */ - m4x3_copy( skaterift.cam.transform, small_cam.transform ); + m4x3_copy( g_render.cam.transform, small_cam.transform ); - small_cam.fov = skaterift.cam.fov; + small_cam.fov = g_render.cam.fov; small_cam.nearz = 0.05f; small_cam.farz = 60.0f; @@ -533,27 +454,27 @@ static void render_scene(void) m4x3f identity; m4x3_identity( identity ); - render_world_override( world, world, identity, &skaterift.cam, + render_world_override( world, world, identity, &g_render.cam, world_map.close_spawn, (v4f){world->tar_min, world->tar_max, 1.0f, 0.0f}); - render_world_routes( world, world, identity, &skaterift.cam, 0, 1 ); + render_world_routes( world, world, identity, &g_render.cam, 0, 1 ); return; } world_instance *view_world = get_view_world(); - render_world( view_world, &skaterift.cam, 0, 0, 1, 1 ); + render_world( view_world, &g_render.cam, 0, 0, 1, 1 ); particle_system_update( &particles_grind, vg.time_delta ); //particle_system_debug( &particles_grind ); particle_system_prerender( &particles_grind ); - particle_system_render( &particles_grind, &skaterift.cam ); + particle_system_render( &particles_grind, &g_render.cam ); ent_tornado_pre_update(); particle_system_update( &particles_env, vg.time_delta ); particle_system_prerender( &particles_env ); - particle_system_render( &particles_env, &skaterift.cam ); + particle_system_render( &particles_env, &g_render.cam ); - player_glide_render_effects( &skaterift.cam ); + player_glide_render_effects( &g_render.cam ); /* * render transition @@ -595,36 +516,36 @@ static void render_scene(void) static void skaterift_composite_maincamera(void) { vg_camera_lerp( &localplayer.cam, &world_static.focus_cam, - vg_smoothstepf(world_static.focus_strength), &skaterift.cam ); + vg_smoothstepf(world_static.focus_strength), &g_render.cam ); if( skaterift.activity == k_skaterift_replay ) { if( player_replay.use_freecam ) { freecam_preupdate(); - v3_copy( player_replay.replay_freecam.pos, skaterift.cam.pos ); - v3_copy( player_replay.replay_freecam.angles, skaterift.cam.angles ); - skaterift.cam.fov = player_replay.replay_freecam.fov; + v3_copy( player_replay.replay_freecam.pos, g_render.cam.pos ); + v3_copy( player_replay.replay_freecam.angles, g_render.cam.angles ); + g_render.cam.fov = player_replay.replay_freecam.fov; } else { - skaterift_get_replay_cam( &skaterift.cam ); + skaterift_get_replay_cam( &g_render.cam ); } } - skaterift.cam.nearz = 0.1f; - skaterift.cam.farz = 2100.0f; + g_render.cam.nearz = 0.1f; + g_render.cam.farz = 2100.0f; if( (skaterift.activity == k_skaterift_menu) && menu.bg_cam ) { - ent_camera_unpack( menu.bg_cam, &skaterift.cam ); + ent_camera_unpack( menu.bg_cam, &g_render.cam ); } if( menu_viewing_map() ) { - vg_camera_copy( &world_map.cam, &skaterift.cam ); - skaterift.cam.nearz = 4.0f; - skaterift.cam.farz = 3100.0f; + vg_camera_copy( &world_map.cam, &g_render.cam ); + g_render.cam.nearz = 4.0f; + g_render.cam.farz = 3100.0f; } if( global_miniworld.transition ){ @@ -638,10 +559,10 @@ static void skaterift_composite_maincamera(void) } } - vg_camera_update_transform( &skaterift.cam ); - vg_camera_update_view( &skaterift.cam ); - vg_camera_update_projection( &skaterift.cam ); - vg_camera_finalize( &skaterift.cam ); + vg_camera_update_transform( &g_render.cam ); + vg_camera_update_view( &g_render.cam ); + vg_camera_update_projection( &g_render.cam ); + vg_camera_finalize( &g_render.cam ); } static void render_main_game(void) @@ -673,7 +594,7 @@ static void render_main_game(void) } /* variable res target */ - render_fb_bind( gpipeline.fb_main, 1 ); + vg_framebuffer_bind( g_render.fb_main, k_render_scale ); glClearColor( 0.0f, 0.0f, 0.0f, 1.0f ); glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT ); @@ -691,26 +612,25 @@ static void render_main_game(void) /* continue with variable rate */ if( !global_miniworld.transition && !menu_viewing_map() ) { - render_fb_bind( gpipeline.fb_main, 1 ); - render_world_gates( get_view_world(), &skaterift.cam ); + vg_framebuffer_bind( g_render.fb_main, k_render_scale ); + render_world_gates( get_view_world(), &g_render.cam ); } /* 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, + g_render.blur_override ); + else + v2_zero( g_render.blur_override ); + postprocess_to_screen( g_render.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; @@ -726,7 +646,7 @@ void vg_render(void) glClear( GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT ); render_main_game(); - m4x4_copy( skaterift.cam.mtx.pv, vg.pv ); + m4x4_copy( g_render.cam.mtx.pv, vg.pv ); /* Other shite */ glDisable(GL_BLEND); @@ -737,52 +657,38 @@ void vg_render(void) gui_render_icons(); } -void vg_gui(void) +void vg_gui( ui_context *ctx ) { if( skaterift.op == k_async_op_clientloading ) return; - gui_draw(); - - 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 ); - vg_ui.wants_mouse = 1; - - ui_fill( panel, ui_colour( k_ui_bg+1 ) ); - ui_outline( panel, 1, ui_colour( k_ui_bg+7 ), 0 ); - - ui_rect_pad( panel, (ui_px[2]){ 8, 8 } ); - - return; - } + gui_draw( ctx ); if( k_light_editor ) - imgui_world_light_edit( world_current_instance() ); - - vg_ui.tex_bg = gpipeline.fb_main->attachments[0].id; - render_fb_inverse_ratio( gpipeline.fb_main, vg_ui.bg_inverse_ratio ); + imgui_world_light_edit( ctx, world_current_instance() ); + + vg_ui.tex_bg = g_render.fb_main->attachments[0].id; + vg_framebuffer_inverse_ratio( g_render.fb_main, vg_ui.bg_inverse_ratio ); - menu_gui(); - player__im_gui(); + menu_gui( ctx ); + player__im_gui( ctx ); world_instance *world = world_current_instance(); - world_routes_imgui( world ); - skaterift_replay_imgui(); - workshop_form_gui(); - render_view_framebuffer_ui(); - remote_player_network_imgui( vg.pv ); + world_routes_imgui( ctx, world ); + skaterift_replay_imgui( ctx ); + workshop_form_gui( ctx ); + remote_player_network_imgui( ctx, vg.pv ); if( menu_viewing_map() ) { - remote_players_imgui_world( world_current_instance(), vg.pv, 2000.0f, 0 ); - remote_players_imgui_lobby(); + remote_players_imgui_world( ctx, world_current_instance(), + vg.pv, 2000.0f, 0 ); + remote_players_imgui_lobby( ctx ); } else { - remote_players_chat_imgui(); /* TODO: conditional */ - remote_players_imgui_world( world_current_instance(), vg.pv, 100.0f, 1 ); + remote_players_chat_imgui( ctx ); /* TODO: conditional */ + remote_players_imgui_world( ctx, world_current_instance(), + vg.pv, 100.0f, 1 ); } }