On 10/04/2012 05:30 PM, Aaron Plattner wrote:
If glxgears is started on a bare X server without a window manager, it does not
get a ConfigureNotify event.  This means that the only time the viewport is
initialized is in main, when it calls reshape(winWidth, winHeight).  This does
not take the size mangling caused by -fullscreen into account, so the gears
appear in a 300x300 box in the lower-left corner of the window instead of
filling the window as intended.

Fix this by moving the size override from make_window to main, and pass the
overridden size to both make_window and the initial reshape.

Signed-off-by: Aaron Plattner<[email protected]>
---
  src/xdemos/glxgears.c | 14 ++++++++------
  1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/xdemos/glxgears.c b/src/xdemos/glxgears.c
index 79b7226..2089715 100644
--- a/src/xdemos/glxgears.c
+++ b/src/xdemos/glxgears.c
@@ -517,12 +517,6 @@ make_window( Display *dpy, const char *name,
     scrnum = DefaultScreen( dpy );
     root = RootWindow( dpy, scrnum );

-   if (fullscreen) {
-      x = 0; y = 0;
-      width = DisplayWidth( dpy, scrnum );
-      height = DisplayHeight( dpy, scrnum );
-   }
-
     visinfo = glXChooseVisual(dpy, scrnum, attribs);
     if (!visinfo) {
        printf("Error: couldn't get an RGB, Double-buffered");
@@ -770,6 +764,14 @@ main(int argc, char *argv[])
        return -1;
     }

+   if (fullscreen) {
+      int scrnum = DefaultScreen(dpy);
+
+      x = 0; y = 0;
+      winWidth = DisplayWidth(dpy, scrnum);
+      winHeight = DisplayHeight(dpy, scrnum);
+   }
+
     make_window(dpy, "glxgears", x, y, winWidth, winHeight,&win,&ctx);
     XMapWindow(dpy, win);
     glXMakeCurrent(dpy, win, ctx);

Reviewed-by: Brian Paul <[email protected]>

Looks good to me.  I'll commit this for you.

-Brian


_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to