summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/osmesa
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/osmesa')
-rw-r--r--src/mesa/drivers/osmesa/osmesa.c14
1 files changed, 9 insertions, 5 deletions
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.
*/