volume slider
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.c
index baa3b84c01a7887453807dead178322a2ba6281c..de702d78b974a5c52a95b75be745b5e5d48dc0d8 100644 (file)
@@ -96,7 +96,7 @@ VG_STATIC void vg_load(void)
 
    /* 'systems' are completely loaded now */
    strcpy( world.world_name, "maps/mp_mtzero.mdl" );
-   strcpy( world.world_name, "maps/mp_gridmap.mdl" );
+   //strcpy( world.world_name, "maps/mp_gridmap.mdl" );
    world_load();
    vg_console_load_autos();
 }
@@ -163,6 +163,10 @@ VG_STATIC void present_view_with_post_processing(void)
    shader_blitblur_uTexMotion( 1 );
    shader_blitblur_uBlurStrength( cl_blur_strength / (vg.frame_delta*60.0f) );
 
+   v2f menu_blurring;
+   v2_muls( (v2f){ 0.04f, 0.001f }, menu_opacity, menu_blurring );
+   shader_blitblur_uOverrideDir( menu_blurring );
+
    if( cl_view_id == 0 )
       render_fb_bind_texture( gpipeline.fb_main, 0, 0 );
    else if( cl_view_id == 1 )
@@ -174,6 +178,25 @@ VG_STATIC void present_view_with_post_processing(void)
    render_fsquad();
 }
 
+VG_STATIC void render_player_transparent(void)
+{
+   camera small_cam;
+   m4x3_copy( main_camera.transform, small_cam.transform );
+
+   small_cam.fov = main_camera.fov;
+   small_cam.nearz = 0.05f;
+   small_cam.farz  = 60.0f;
+
+   camera_update_view( &small_cam );
+   camera_update_projection( &small_cam );
+   camera_finalize( &small_cam );
+
+   /* Draw player to window buffer and blend background ontop */
+
+   glBindFramebuffer( GL_FRAMEBUFFER, 0 );
+   draw_player( &small_cam );
+}
+
 VG_STATIC void render_scene(void)
 {
    render_fb_bind( gpipeline.fb_main );
@@ -184,10 +207,20 @@ VG_STATIC void render_scene(void)
    glEnable( GL_DEPTH_TEST );
 
    render_world( &main_camera );
+
+   int player_transparent = !(player.is_dead || freecam),
+       player_draw        = !cl_menu;
+
+   if( !player_transparent && player_draw )
+      draw_player( &main_camera );
+
    render_water_texture( &main_camera );
    render_fb_bind( gpipeline.fb_main );
    render_water_surface( &main_camera );
    render_world_gates( &main_camera );
+
+   if( player_transparent && player_draw )
+      render_player_transparent();
 }
 
 VG_STATIC void render_menu(void)
@@ -196,31 +229,6 @@ VG_STATIC void render_menu(void)
    menu_render( &main_camera );
 }
 
-VG_STATIC void render_player_into_world(void)
-{
-   render_fb_bind( gpipeline.fb_main );
-   draw_player( &main_camera );
-}
-
-VG_STATIC void render_player_transparent(void)
-{
-   camera small_cam;
-   m4x3_copy( main_camera.transform, small_cam.transform );
-
-   small_cam.fov = main_camera.fov;
-   small_cam.nearz = 0.05f;
-   small_cam.farz  = 60.0f;
-
-   camera_update_view( &small_cam );
-   camera_update_projection( &small_cam );
-   camera_finalize( &small_cam );
-
-   /* Draw player to window buffer and blend background ontop */
-
-   glBindFramebuffer( GL_FRAMEBUFFER, 0 );
-   draw_player( &small_cam );
-}
-
 VG_STATIC void render_main_game(void)
 {
    static float fov = 60.0f;
@@ -243,15 +251,6 @@ VG_STATIC void render_main_game(void)
    /* ========== Begin Frame ========== */
 
    render_scene();
-   
-   if( !cl_menu )
-   {
-      if( player.is_dead | freecam )
-         render_player_into_world();
-      else
-         render_player_transparent();
-   }
-
    present_view_with_post_processing();
 
    if( cl_menu ) 
@@ -331,6 +330,7 @@ VG_STATIC void vg_ui(void)
    //glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
    
    audio_debug_soundscapes();
+   render_view_framebuffer_ui();
 }
 
 #if 0