summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2009-09-14 00:03:14 +0100
committerMartin Jansa <Martin.Jansa@gmail.com>2010-02-18 15:39:22 +0100
commit5944bcc904b37b1480b9af4b62ae873c4f59914a (patch)
tree3d54d7bba2d0cb373ee5e4b81dd0f263a12ae816
parent75208fd96b6dcdffd55569d549cdebb4d1218c8d (diff)
Implement glamoResizeBuffers
-rw-r--r--src/mesa/drivers/dri/glamo/glamo_state.c59
1 files changed, 58 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/glamo/glamo_state.c b/src/mesa/drivers/dri/glamo/glamo_state.c
index 93d458120d..5e93f962e6 100644
--- a/src/mesa/drivers/dri/glamo/glamo_state.c
+++ b/src/mesa/drivers/dri/glamo/glamo_state.c
@@ -20,10 +20,67 @@
* THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ * Also partially based on intel_fbo.c, to which the following notice applies:
+ *
+ * Copyright 2006 Tungsten Graphics, Inc., Cedar Park, Texas.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "main/context.h"
+#include "main/framebuffer.h"
+
+#include "glamo_fbo.h"
+#include "glamo_state.h"
+
+
+static void glamoResizeBuffers(GLcontext *ctx, struct gl_framebuffer *fb,
+ GLuint width, GLuint height)
+{
+ struct glamo_framebuffer *glamo_fb = (struct glamo_framebuffer *)fb;
+ int i;
+
+ _mesa_resize_framebuffer(ctx, fb, width, height);
+
+ fb->Initialized = GL_TRUE; /* XXX remove someday */
+
+ if (fb->Name != 0) {
+ return;
+ }
+
+ /* Make sure all window system renderbuffers are up to date */
+ for (i = 0; i < 2; i++) {
+ struct gl_renderbuffer *rb = &glamo_fb->color_rb[i]->base;
+
+ /* only resize if size is changing */
+ if (rb && (rb->Width != width || rb->Height != height)) {
+ rb->AllocStorage(ctx, rb, rb->InternalFormat,
+ width, height);
+ }
+ }
+}
static void glamoClear(GLcontext *ctx, GLbitfield mask)
@@ -92,7 +149,7 @@ void glamoInitStateFuncs(GLcontext *ctx)
ctx->Driver.ShadeModel = glamoShadeModel;
ctx->Driver.LightModelfv = NULL;
ctx->Driver.Viewport = glamoViewport;
- ctx->Driver.ResizeBuffers = NULL;
+ ctx->Driver.ResizeBuffers = glamoResizeBuffers;
ctx->Driver.Flush = glamoFlush;
}