+
+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( g_render.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();
+}