aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/fb
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/dri/fb')
-rw-r--r--src/mesa/drivers/dri/fb/fb_dri.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/fb/fb_dri.c b/src/mesa/drivers/dri/fb/fb_dri.c
index 49ae5c98e8d..16540ed0518 100644
--- a/src/mesa/drivers/dri/fb/fb_dri.c
+++ b/src/mesa/drivers/dri/fb/fb_dri.c
@@ -63,6 +63,7 @@
#include "miniglxP.h" /* window-system-specific */
#include "dri_util.h" /* window-system-specific-ish */
+#include "buffers.h"
#include "context.h"
#include "extensions.h"
#include "imports.h"
@@ -133,6 +134,13 @@ get_buffer_size( GLframebuffer *buffer, GLuint *width, GLuint *height )
}
+static void
+viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
+{
+ _mesa_ResizeBuffersMESA();
+}
+
+
/* specifies the buffer for swrast span rendering/reading */
static void
set_buffer( GLcontext *ctx, GLframebuffer *buffer, GLuint bufferBit )
@@ -166,6 +174,7 @@ init_core_functions( struct dd_function_table *functions )
functions->UpdateState = update_state;
functions->ResizeBuffers = _swrast_alloc_buffers;
functions->GetBufferSize = get_buffer_size;
+ functions->Viewport = viewport;
functions->Clear = _swrast_Clear; /* could accelerate with blits */
}
@@ -536,11 +545,6 @@ fbMakeCurrent( __DRIcontextPrivate *driContextPriv,
_mesa_make_current2( newFbCtx->glCtx,
(GLframebuffer *) driDrawPriv->driverPrivate,
(GLframebuffer *) driReadPriv->driverPrivate );
-
- if ( !newFbCtx->glCtx->Viewport.Width ) {
- _mesa_set_viewport( newFbCtx->glCtx, 0, 0,
- driDrawPriv->w, driDrawPriv->h );
- }
} else {
_mesa_make_current( 0, 0 );
}