i915tex: Set framebuffer size to match window before calling _mesa_make_current.
authorMichel Dänzer <michel@tungstengraphics.com>
Wed, 7 Mar 2007 17:01:39 +0000 (18:01 +0100)
committerMichel Dänzer <michel@tungstengraphics.com>
Wed, 7 Mar 2007 17:01:39 +0000 (18:01 +0100)
Fixes issues with apps that don't call glViewport by default.

src/mesa/drivers/dri/i915tex/intel_context.c

index b1352a766ef93007a1512be2cc211753f00596d5..b8515fe9b848612f1082ac837d9b08a1d65916c0 100644 (file)
@@ -580,6 +580,16 @@ intelMakeCurrent(__DRIcontextPrivate * driContextPriv,
          }
       }
 
+      /* set GLframebuffer size to match window, if needed */
+      if (intel_fb->Base.Width != driDrawPriv->w) {
+         _mesa_resize_framebuffer(&intel->ctx, &intel_fb->Base,
+                                  driDrawPriv->w, driDrawPriv->h);
+      }         
+      if (readFb->Width != driReadPriv->w) {
+         _mesa_resize_framebuffer(&intel->ctx, readFb,
+                                  driReadPriv->w, driReadPriv->h);
+      }         
+
       _mesa_make_current(&intel->ctx, &intel_fb->Base, readFb);
 
       /* The drawbuffer won't always be updated by _mesa_make_current: 
@@ -599,16 +609,6 @@ intelMakeCurrent(__DRIcontextPrivate * driContextPriv,
 
         intel_draw_buffer(&intel->ctx, &intel_fb->Base);
       }
-
-      /* set initial GLframebuffer size to match window, if needed */
-      if (&intel_fb->Base.Width == 0 && driDrawPriv->w) {
-         _mesa_resize_framebuffer(&intel->ctx, &intel_fb->Base,
-                                  driDrawPriv->w, driDrawPriv->h);
-      }         
-      if (readFb->Width == 0 && driReadPriv->w) {
-         _mesa_resize_framebuffer(&intel->ctx, readFb,
-                                  driReadPriv->w, driReadPriv->h);
-      }         
    }
    else {
       _mesa_make_current(NULL, NULL, NULL);