filename | src/drivers/gl_fbo.c |
changeset | 1251:b8ab59d39756 |
prev | 1245:01e0020adf88 |
next | 1298:d0eb2307b847 |
author | nkeynes |
date | Sat Aug 04 08:46:28 2012 +1000 (11 years ago) |
permissions | -rw-r--r-- |
last change | Handle corner case in pvr2_run_slice when we've previously slightly overrun the end of the time slice |
file | annotate | diff | log | raw |
1.1 --- a/src/drivers/gl_fbo.c Fri Mar 02 23:49:10 2012 +10001.2 +++ b/src/drivers/gl_fbo.c Sat Aug 04 08:46:28 2012 +10001.3 @@ -59,6 +59,7 @@1.4 };1.6 static GLint gl_fbo_max_attachments = 0;1.7 +static GLint gl_fbo_depth_component;1.8 static gboolean gl_fbo_have_packed_stencil = FALSE;1.9 static struct gl_fbo_info fbo[MAX_FRAMEBUFFERS];1.11 @@ -103,6 +104,11 @@1.12 gl_fbo_have_packed_stencil = FALSE;1.13 WARN( "Packed depth stencil not available - disabling shadow volumes" );1.14 }1.15 + if( driver->capabilities.depth_bits >= 24 ) {1.16 + gl_fbo_depth_component = GL_DEPTH_COMPONENT24;1.17 + } else {1.18 + gl_fbo_depth_component = GL_DEPTH_COMPONENT16;1.19 + }1.21 driver->create_render_buffer = gl_fbo_create_render_buffer;1.22 driver->destroy_render_buffer = gl_fbo_destroy_render_buffer;1.23 @@ -151,7 +157,7 @@1.24 GL_RENDERBUFFER, fbo[bufno].depth_id);1.25 } else {1.26 glBindRenderbuffer(GL_RENDERBUFFER, fbo[bufno].depth_id);1.27 - glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, width, height);1.28 + glRenderbufferStorage(GL_RENDERBUFFER, gl_fbo_depth_component, width, height);1.29 glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,1.30 GL_RENDERBUFFER, fbo[bufno].depth_id);1.31 /* In theory you could attach a separate stencil buffer. In practice this1.32 @@ -331,6 +337,8 @@1.33 {1.34 gl_fbo_detach();1.35 gl_display_render_buffer( buffer );1.36 + if( display_driver->swap_buffers )1.37 + display_driver->swap_buffers();1.38 }1.40 static void gl_fbo_load_frame_buffer( frame_buffer_t frame, render_buffer_t buffer )1.41 @@ -343,6 +351,8 @@1.42 {1.43 gl_fbo_detach();1.44 gl_display_blank( colour );1.45 + if( display_driver->swap_buffers )1.46 + display_driver->swap_buffers();1.47 }1.49 void gl_fbo_detach()1.50 @@ -353,8 +363,6 @@1.51 glDrawBuffer( GL_FRONT );1.52 glReadBuffer( GL_FRONT );1.53 #endif1.54 - if( display_driver->swap_buffers )1.55 - display_driver->swap_buffers();1.56 }1.58 static gboolean gl_fbo_read_render_buffer( unsigned char *target, render_buffer_t buffer,
.