From ff9d235042bb80daf0a6f5af41f7abcb1d552a80 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 14 Sep 2005 00:36:27 +0000 Subject: Instead of calling _mesa_ResizeBuffersMESA() in the Viewport function, call driUpdateFramebufferSize() when window size/position changes. --- src/mesa/drivers/dri/fb/fb_dri.c | 16 ++++++++++++++-- src/mesa/drivers/dri/fb/fb_egl.c | 14 +++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) (limited to 'src/mesa/drivers/dri/fb') diff --git a/src/mesa/drivers/dri/fb/fb_dri.c b/src/mesa/drivers/dri/fb/fb_dri.c index c1fab2d586..ee25096526 100644 --- a/src/mesa/drivers/dri/fb/fb_dri.c +++ b/src/mesa/drivers/dri/fb/fb_dri.c @@ -41,7 +41,7 @@ * that may not be valid everywhere. */ -#include "driver.h" +/*#include "driver.h"*/ #include "drm.h" #include "utils.h" #include "drirenderbuffer.h" @@ -113,10 +113,22 @@ get_buffer_size( GLframebuffer *buffer, GLuint *width, GLuint *height ) } +static void +updateFramebufferSize(GLcontext *ctx) +{ + fbContextPtr fbmesa = FB_CONTEXT(ctx); + struct gl_framebuffer *fb = ctx->WinSysDrawBuffer; + if (fbmesa->dri.drawable->w != fb->Width || + fbmesa->dri.drawable->h != fb->Height) { + driUpdateFramebufferSize(ctx, fbmesa->dri.drawable); + } +} + static void viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h) { - _mesa_ResizeBuffersMESA(); + /* XXX this should be called after we acquire the DRI lock, not here */ + updateFramebufferSize(ctx); } diff --git a/src/mesa/drivers/dri/fb/fb_egl.c b/src/mesa/drivers/dri/fb/fb_egl.c index 94ff9cbb62..05148b445c 100644 --- a/src/mesa/drivers/dri/fb/fb_egl.c +++ b/src/mesa/drivers/dri/fb/fb_egl.c @@ -398,10 +398,22 @@ get_buffer_size( GLframebuffer *buffer, GLuint *width, GLuint *height ) } +static void +updateFramebufferSize(GLcontext *ctx) +{ + fbContextPtr fbmesa = FB_CONTEXT(ctx); + struct gl_framebuffer *fb = ctx->WinSysDrawBuffer; + if (fbmesa->dri.drawable->w != fb->Width || + fbmesa->dri.drawable->h != fb->Height) { + driUpdateFramebufferSize(ctx, fbmesa->dri.drawable); + } +} + static void viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h) { - _mesa_ResizeBuffersMESA(); + /* XXX this should be called after we acquire the DRI lock, not here */ + updateFramebufferSize(ctx); } -- cgit v1.2.3