From 9cbe0e24ac3772ec5db303e532166351affc91c9 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sat, 14 Oct 2006 23:02:26 +0000 Subject: Some code movement so that the gl_framebuffer is fully initialized before calling _mesa_make_current() to avoid hitting the initialize_framebuffer_size() stuff in context.c --- src/mesa/drivers/osmesa/osmesa.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/mesa/drivers/osmesa') diff --git a/src/mesa/drivers/osmesa/osmesa.c b/src/mesa/drivers/osmesa/osmesa.c index 942692c8bb..4ac5a043fa 100644 --- a/src/mesa/drivers/osmesa/osmesa.c +++ b/src/mesa/drivers/osmesa/osmesa.c @@ -1376,21 +1376,25 @@ OSMesaMakeCurrent( OSMesaContext osmesa, void *buffer, GLenum type, */ _glapi_check_multithread(); + /* Set the framebuffer's size. This causes the + * osmesa_renderbuffer_storage() function to get called. + */ + _mesa_resize_framebuffer(&osmesa->mesa, osmesa->gl_buffer, width, height); + osmesa->gl_buffer->Initialized = GL_TRUE; /* XXX TEMPORARY? */ + _mesa_make_current( &osmesa->mesa, osmesa->gl_buffer, osmesa->gl_buffer ); + /* Set the color renderbuffer's pointer to the user buffer, + * update row pointers, etc. + */ if (osmesa->userRowLength) osmesa->rowlength = osmesa->userRowLength; else osmesa->rowlength = width; - osmesa->rb->Data = buffer; osmesa->rb->DataType = type; compute_row_addresses( osmesa ); - /* update the color renderbuffer's format, type, width, height */ - osmesa_renderbuffer_storage(&osmesa->mesa, osmesa->rb, - osmesa->rb->InternalFormat, width, height); - /* Remove renderbuffer attachment, then re-add. This installs the * renderbuffer adaptor/wrapper if needed. */ -- cgit v1.2.3