Remove demos that have moved to git+ssh://git.freedesktop.org/git/mesa/demos.
[mesa.git] / progs / xdemos / opencloseopen.c
diff --git a/progs/xdemos/opencloseopen.c b/progs/xdemos/opencloseopen.c
deleted file mode 100644 (file)
index 7560960..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
- * (C) Copyright IBM Corporation 2003
- * 
- * 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, sublicense,
- * 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 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 NONINFRINGEMENT.  IN NO EVENT SHALL
- * BRIAN PAUL 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 <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <X11/Xlib.h>
-#include <GL/gl.h>
-#include <GL/glx.h>
-
-/** \file opencloseopen.c
- * Simple test for Mesa bug #508473.  Create a window and rendering context.
- * Draw a single frame.  Close the window, destroy the context, and close
- * the display.  Re-open the display, create a new window and context.  This
- * should work, but, at least as of Mesa 5.1, it segfaults.  See the bug
- * report for more details.
- * 
- * Most of the code here was lifed from various other Mesa xdemos.
- */
-
-static void
-draw(void)
-{
-   glViewport(0, 0, 300, 300);
-   glMatrixMode(GL_PROJECTION);
-   glLoadIdentity();
-   glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
-   glMatrixMode(GL_MODELVIEW);
-
-   glShadeModel(GL_FLAT);
-   glClearColor(0.5, 0.5, 0.5, 1.0);
-   glClear(GL_COLOR_BUFFER_BIT);
-
-   /* draw blue quad */
-   glLoadIdentity();
-   glColor3f(0.3, 0.3, 1.0);
-   glPushMatrix();
-   glRotatef(0, 0, 0, 1);
-   glBegin(GL_POLYGON);
-   glVertex2f(-0.5, -0.25);
-   glVertex2f( 0.5, -0.25);
-   glVertex2f( 0.5, 0.25);
-   glVertex2f(-0.5, 0.25);
-   glEnd();
-   glPopMatrix();}
-
-
-/*
- * Create an RGB, double-buffered window.
- * Return the window and context handles.
- */
-static void
-make_window( const char * dpyName, const char *name,
-             int x, int y, int width, int height,
-            Display **dpyRet, Window *winRet, GLXContext *ctxRet)
-{
-   int attrib[] = { GLX_RGBA,
-                   GLX_RED_SIZE, 1,
-                   GLX_GREEN_SIZE, 1,
-                   GLX_BLUE_SIZE, 1,
-                   GLX_DOUBLEBUFFER,
-                   None };
-   int scrnum;
-   XSetWindowAttributes attr;
-   unsigned long mask;
-   Window root;
-   Window win;
-   GLXContext ctx;
-   XVisualInfo *visinfo;
-   Display *dpy;
-
-   dpy = XOpenDisplay(dpyName);
-   if (!dpy) {
-      printf("Error: couldn't open display %s\n", XDisplayName(dpyName));
-      exit(1);
-   }
-
-   *dpyRet = dpy;
-   scrnum = DefaultScreen( dpy );
-   root = RootWindow( dpy, scrnum );
-
-   visinfo = glXChooseVisual( dpy, scrnum, attrib );
-   if (!visinfo) {
-      printf("Error: couldn't get an RGB, Double-buffered visual\n");
-      exit(1);
-   }
-
-   /* window attributes */
-   attr.background_pixel = 0;
-   attr.border_pixel = 0;
-   attr.colormap = XCreateColormap( dpy, root, visinfo->visual, AllocNone);
-   attr.event_mask = StructureNotifyMask | ExposureMask | KeyPressMask;
-   mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
-
-   win = XCreateWindow( dpy, root, 0, 0, width, height,
-                       0, visinfo->depth, InputOutput,
-                       visinfo->visual, mask, &attr );
-
-   /* set hints and properties */
-   {
-      XSizeHints sizehints;
-      sizehints.x = x;
-      sizehints.y = y;
-      sizehints.width  = width;
-      sizehints.height = height;
-      sizehints.flags = USSize | USPosition;
-      XSetNormalHints(dpy, win, &sizehints);
-      XSetStandardProperties(dpy, win, name, name,
-                              None, (char **)NULL, 0, &sizehints);
-   }
-
-   ctx = glXCreateContext( dpy, visinfo, NULL, True );
-   if (!ctx) {
-      printf("Error: glXCreateContext failed\n");
-      exit(1);
-   }
-
-   XFree(visinfo);
-
-   *winRet = win;
-   *ctxRet = ctx;
-}
-
-
-static void
-destroy_window( Display *dpy, Window win, GLXContext ctx )
-{
-   glXMakeCurrent(dpy, None, NULL);
-   glXDestroyContext(dpy, ctx);
-   XDestroyWindow(dpy, win);
-   XCloseDisplay(dpy);
-}
-
-
-int
-main(int argc, char *argv[])
-{
-   Display *dpy;
-   Window win;
-   GLXContext ctx;
-   char *dpyName = NULL;
-   int i;
-
-   for (i = 1; i < argc; i++) {
-      if (strcmp(argv[i], "-display") == 0) {
-         dpyName = argv[i+1];
-         i++;
-      }
-   }
-
-   printf("If this program segfaults, then Mesa bug #508473 is probably "
-         "back.\n");
-   make_window(dpyName, "Open-close-open", 0, 0, 300, 300, &dpy, &win, &ctx);
-   XMapWindow(dpy, win);
-   glXMakeCurrent(dpy, win, ctx);
-
-   draw();
-   glXSwapBuffers(dpy, win);
-   sleep(2);
-
-   destroy_window(dpy, win, ctx);
-
-   make_window(dpyName, "Open-close-open", 0, 0, 300, 300, &dpy, &win, &ctx);
-   XMapWindow(dpy, win);
-   glXMakeCurrent(dpy, win, ctx);
-   destroy_window(dpy, win, ctx);
-
-   return 0;
-}