f
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.c
index baa3b84c01a7887453807dead178322a2ba6281c..6d402bfc260422a819dcff16154e075413bc6c62 100644 (file)
@@ -96,7 +96,9 @@ VG_STATIC void vg_load(void)
 
    /* 'systems' are completely loaded now */
    strcpy( world.world_name, "maps/mp_mtzero.mdl" );
+#if 0
    strcpy( world.world_name, "maps/mp_gridmap.mdl" );
+#endif
    world_load();
    vg_console_load_autos();
 }
@@ -158,22 +160,57 @@ VG_STATIC void present_view_with_post_processing(void)
    glBlendFunc(GL_ONE_MINUS_DST_ALPHA, GL_DST_ALPHA);
    glBlendEquation(GL_FUNC_ADD);
 
-   shader_blitblur_use();
-   shader_blitblur_uTexMain( 0 );
-   shader_blitblur_uTexMotion( 1 );
-   shader_blitblur_uBlurStrength( cl_blur_strength / (vg.frame_delta*60.0f) );
+   if( cl_blur )
+   {
+      shader_blitblur_use();
+      shader_blitblur_uTexMain( 0 );
+      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 )
+         render_fb_bind_texture( gpipeline.fb_main, 1, 0 );
+      else
+         render_fb_bind_texture( gpipeline.fb_main, 0, 0 );
 
-   if( cl_view_id == 0 )
-      render_fb_bind_texture( gpipeline.fb_main, 0, 0 );
-   else if( cl_view_id == 1 )
-      render_fb_bind_texture( gpipeline.fb_main, 1, 0 );
+      render_fb_bind_texture( gpipeline.fb_main, 1, 1 );
+   }
    else
+   {
+      shader_blit_use();
+      shader_blit_uTexMain( 0 );
       render_fb_bind_texture( gpipeline.fb_main, 0, 0 );
+   }
 
-   render_fb_bind_texture( gpipeline.fb_main, 1, 1 );
    render_fsquad();
 }
 
+VG_STATIC void render_player_transparent(void)
+{
+   static camera small_cam;      /* DOES NOT NEED TO BE STATIC BUT MINGW 
+                                    SAIS OTHERWISE */
+
+   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 +221,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 +243,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 +265,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 +344,7 @@ VG_STATIC void vg_ui(void)
    //glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
    
    audio_debug_soundscapes();
+   render_view_framebuffer_ui();
 }
 
 #if 0