call reshape() after init() to set initial projection/viewing transform (see bug...
authorBrian Paul <brian.paul@tungstengraphics.com>
Wed, 17 May 2006 22:44:18 +0000 (22:44 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Wed, 17 May 2006 22:44:18 +0000 (22:44 +0000)
progs/xdemos/glxgears.c

index feae773a5fd265b7e6b361f6ee318dbc9576032d..75d63e51a2e4f640f08ec127f35c54b3efc47d2f 100644 (file)
@@ -473,7 +473,6 @@ event_loop(Display *dpy, Window win)
          switch (event.type) {
         case Expose:
             /* we'll redraw below */
-           reshape(event.xexpose.width, event.xexpose.height);
            break;
         case ConfigureNotify:
            reshape(event.xconfigure.width, event.xconfigure.height);
@@ -555,6 +554,7 @@ usage(void)
 int
 main(int argc, char *argv[])
 {
+   const int winWidth = 300, winHeight = 300;
    Display *dpy;
    Window win;
    GLXContext ctx;
@@ -589,7 +589,7 @@ main(int argc, char *argv[])
       return -1;
    }
 
-   make_window(dpy, "glxgears", 0, 0, 300, 300, &win, &ctx);
+   make_window(dpy, "glxgears", 0, 0, winWidth, winHeight, &win, &ctx);
    XMapWindow(dpy, win);
    glXMakeCurrent(dpy, win, ctx);
 
@@ -602,6 +602,12 @@ main(int argc, char *argv[])
 
    init();
 
+   /* Set initial projection/viewing transformation.
+    * We can't be sure we'll get a ConfigureNotify event when the window
+    * first appears.
+    */
+   reshape(winWidth, winHeight);
+
    event_loop(dpy, win);
 
    glDeleteLists(gear1, 1);