progs/egl: Replace egltri by xegl_tri.
authorChia-I Wu <olv@lunarg.com>
Thu, 1 Apr 2010 05:16:06 +0000 (13:16 +0800)
committerChia-I Wu <olv@lunarg.com>
Thu, 1 Apr 2010 14:25:49 +0000 (22:25 +0800)
With the switch to eglut, xegl_tri supports both X11 and
EGL_MESA_screen_surface.  Have it replace egltri.

progs/egl/opengl/Makefile
progs/egl/opengl/egltri.c
progs/egl/opengl/xegl_tri.c [deleted file]

index 04a89b1d4af7d008b37d5ad5c209bef289231824..cca843f4573c71045cd07974a4d1eb5f24bf3d39 100644 (file)
@@ -15,7 +15,7 @@ EGLUT_DIR = $(TOP)/progs/egl/eglut
 
 EGLUT_DEMOS = \
        eglgears \
-       xegl_tri
+       egltri
 
 EGLUT_X11_DEMOS := $(addsuffix _x11,$(EGLUT_DEMOS))
 EGLUT_SCREEN_DEMOS := $(addsuffix _screen,$(EGLUT_DEMOS))
@@ -24,7 +24,6 @@ PROGRAMS = \
        demo1 \
        demo2 \
        demo3 \
-       egltri \
        eglinfo \
        eglscreen \
        peglgears \
@@ -48,9 +47,6 @@ demo2: demo2.o $(HEADERS) $(LIB_DEP)
 demo3: demo3.o $(HEADERS) $(LIB_DEP)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB)
 
-egltri: egltri.o $(HEADERS) $(LIB_DEP)
-       $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB)
-
 eglinfo: eglinfo.o $(HEADERS) $(LIB_DEP)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
 
index 006e06eb03e32499c2910f9c6ac5764f7ff26fe3..fb1dde3529cf1275f8acecd44912cb87cfbccbfe 100644 (file)
@@ -1,18 +1,16 @@
 /*
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
  * Copyright (C) 2008  Brian Paul   All Rights Reserved.
- * Copyright (C) 2008  Jakob Bornecrantz   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, 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
  */
 
 /*
- * This program is based on eglgears and xegl_tri.
- * Remixed by Jakob Bornecrantz
- *
- * No command line options.
- * Program runs for 5 seconds then exits, outputing framerate to console
+ * Draw a triangle with X/EGL.
+ * Brian Paul
+ * 3 June 2008
  */
 
-#define EGL_EGLEXT_PROTOTYPES
 
-#include <assert.h>
 #include <math.h>
 #include <stdlib.h>
-#include <stdio.h>
 #include <string.h>
 #include <GL/gl.h>
-#include <EGL/egl.h>
-#include <EGL/eglext.h>
 
-#define MAX_CONFIGS 10
-#define MAX_MODES 100
+#include "eglut.h"
 
 
-/* XXX this probably isn't very portable */
+static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0;
 
-#include <sys/time.h>
-#include <unistd.h>
 
-/* return current time (in seconds) */
-static double
-current_time(void)
+static void
+draw(void)
 {
-   struct timeval tv;
-#ifdef __VMS
-   (void) gettimeofday(&tv, NULL );
-#else
-   struct timezone tz;
-   (void) gettimeofday(&tv, &tz);
-#endif
-   return (double) tv.tv_sec + tv.tv_usec / 1000000.0;
+   static const GLfloat verts[3][2] = {
+      { -1, -1 },
+      {  1, -1 },
+      {  0,  1 }
+   };
+   static const GLfloat colors[3][3] = {
+      { 1, 0, 0 },
+      { 0, 1, 0 },
+      { 0, 0, 1 }
+   };
+
+   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+   glPushMatrix();
+   glRotatef(view_rotx, 1, 0, 0);
+   glRotatef(view_roty, 0, 1, 0);
+   glRotatef(view_rotz, 0, 0, 1);
+
+   {
+      glVertexPointer(2, GL_FLOAT, 0, verts);
+      glColorPointer(3, GL_FLOAT, 0, colors);
+      glEnableClientState(GL_VERTEX_ARRAY);
+      glEnableClientState(GL_COLOR_ARRAY);
+
+      glDrawArrays(GL_TRIANGLES, 0, 3);
+
+      glDisableClientState(GL_VERTEX_ARRAY);
+      glDisableClientState(GL_COLOR_ARRAY);
+   }
+
+   glPopMatrix();
 }
 
 
-static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0;
-
-static void draw()
+/* new window size or exposure */
+static void
+reshape(int width, int height)
 {
-       static const GLfloat verts[3][2] = {
-               { -1, -1 },
-               {  1, -1 },
-               {  0,  1 }
-       };
-       static const GLfloat colors[3][3] = {
-               { 1, 0, 0 },
-               { 0, 1, 0 },
-               { 0, 0, 1 }
-       };
-
-       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+   GLfloat ar = (GLfloat) width / (GLfloat) height;
 
-       glPushMatrix();
-       glRotatef(view_rotx, 1, 0, 0);
-       glRotatef(view_roty, 0, 1, 0);
-       glRotatef(view_rotz, 0, 0, 1);
+   glViewport(0, 0, (GLint) width, (GLint) height);
 
-       {
-               glVertexPointer(2, GL_FLOAT, 0, verts);
-               glColorPointer(3, GL_FLOAT, 0, colors);
-               glEnableClientState(GL_VERTEX_ARRAY);
-               glEnableClientState(GL_COLOR_ARRAY);
-
-               glDrawArrays(GL_TRIANGLES, 0, 3);
-
-               glDisableClientState(GL_VERTEX_ARRAY);
-               glDisableClientState(GL_COLOR_ARRAY);
-       }
-
-       glPopMatrix();
+   glMatrixMode(GL_PROJECTION);
+   glLoadIdentity();
+   glFrustum(-ar, ar, -1, 1, 5.0, 60.0);
+   
+   glMatrixMode(GL_MODELVIEW);
+   glLoadIdentity();
+   glTranslatef(0.0, 0.0, -10.0);
 }
 
-static void init()
-{
-       glClearColor(0.4, 0.4, 0.4, 0.0);
-}
 
-/* new window size or exposure */
-static void reshape(int width, int height)
+static void
+init(void)
 {
-       GLfloat ar = (GLfloat) width / (GLfloat) height;
-
-       glViewport(0, 0, (GLint) width, (GLint) height);
-
-       glMatrixMode(GL_PROJECTION);
-       glLoadIdentity();
-       glFrustum(-ar, ar, -1, 1, 5.0, 60.0);
-
-       glMatrixMode(GL_MODELVIEW);
-       glLoadIdentity();
-       glTranslatef(0.0, 0.0, -10.0);
+   glClearColor(0.4, 0.4, 0.4, 0.0);
 }
 
-static void run(EGLDisplay dpy, EGLSurface surf, int ttr)
-{
-       double st = current_time();
-       double ct = st;
-       int frames = 0;
-       GLfloat seconds, fps;
-
-       while (ct - st < ttr)
-       {
-               ct = current_time();
-
-               draw();
 
-               eglSwapBuffers(dpy, surf);
-
-               frames++;
-       }
-
-       seconds = ct - st;
-       fps = frames / seconds;
-       printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps);
+static void
+special_key(int special)
+{
+   switch (special) {
+   case EGLUT_KEY_LEFT:
+      view_roty += 5.0;
+      break;
+   case EGLUT_KEY_RIGHT:
+      view_roty -= 5.0;
+      break;
+   case EGLUT_KEY_UP:
+      view_rotx += 5.0;
+      break;
+   case EGLUT_KEY_DOWN:
+      view_rotx -= 5.0;
+      break;
+   default:
+      break;
+   }
 }
 
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
 {
-       int maj, min;
-       EGLContext ctx;
-       EGLSurface screen_surf;
-       EGLConfig configs[MAX_CONFIGS];
-       EGLint numConfigs, i;
-       EGLBoolean b;
-       EGLDisplay d;
-       EGLint screenAttribs[10];
-       EGLModeMESA mode[MAX_MODES];
-       EGLScreenMESA screen;
-       EGLint count, chosenMode = 0;
-       GLboolean printInfo = GL_FALSE;
-       EGLint width = 0, height = 0;
-
-       /* parse cmd line args */
-       for (i = 1; i < argc; i++)
-       {
-               if (strcmp(argv[i], "-info") == 0)
-               {
-                       printInfo = GL_TRUE;
-               }
-               else
-                       printf("Warning: unknown parameter: %s\n", argv[i]);
-       }
-
-       /* DBR : Create EGL context/surface etc */
-       d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
-       assert(d);
-
-       if (!eglInitialize(d, &maj, &min)) {
-               printf("egltri: eglInitialize failed\n");
-               exit(1);
-       }
-
-       printf("egltri: EGL version = %d.%d\n", maj, min);
-       printf("egltri: EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
-
-       /* XXX use ChooseConfig */
-       eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs);
-       eglGetScreensMESA(d, &screen, 1, &count);
-
-       if (!eglGetModesMESA(d, screen, mode, MAX_MODES, &count) || count == 0) {
-               printf("egltri: eglGetModesMESA failed!\n");
-               return 0;
-       }
-
-       /* Print list of modes, and find the one to use */
-       printf("egltri: Found %d modes:\n", count);
-       for (i = 0; i < count; i++) {
-               EGLint w, h;
-               eglGetModeAttribMESA(d, mode[i], EGL_WIDTH, &w);
-               eglGetModeAttribMESA(d, mode[i], EGL_HEIGHT, &h);
-               printf("%3d: %d x %d\n", i, w, h);
-               if (w > width && h > height) {
-                       width = w;
-                       height = h;
-                       chosenMode = i;
-               }
-       }
-       printf("egltri: Using screen mode/size %d: %d x %d\n", chosenMode, width, height);
-
-       eglBindAPI(EGL_OPENGL_API);
-       ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
-       if (ctx == EGL_NO_CONTEXT) {
-               printf("egltri: failed to create context\n");
-               return 0;
-       }
-
-       /* build up screenAttribs array */
-       i = 0;
-       screenAttribs[i++] = EGL_WIDTH;
-       screenAttribs[i++] = width;
-       screenAttribs[i++] = EGL_HEIGHT;
-       screenAttribs[i++] = height;
-       screenAttribs[i++] = EGL_NONE;
-
-       screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs);
-       if (screen_surf == EGL_NO_SURFACE) {
-               printf("egltri: failed to create screen surface\n");
-               return 0;
-       }
-
-       b = eglShowScreenSurfaceMESA(d, screen, screen_surf, mode[chosenMode]);
-       if (!b) {
-               printf("egltri: show surface failed\n");
-               return 0;
-       }
-
-       b = eglMakeCurrent(d, screen_surf, screen_surf, ctx);
-       if (!b) {
-               printf("egltri: make current failed\n");
-               return 0;
-       }
-
-       if (printInfo)
-       {
-               printf("GL_RENDERER   = %s\n", (char *) glGetString(GL_RENDERER));
-               printf("GL_VERSION    = %s\n", (char *) glGetString(GL_VERSION));
-               printf("GL_VENDOR     = %s\n", (char *) glGetString(GL_VENDOR));
-               printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS));
-       }
+   eglutInitWindowSize(300, 300);
+   eglutInitAPIMask(EGLUT_OPENGL_BIT);
+   eglutInit(argc, argv);
 
-       init();
-       reshape(width, height);
+   eglutCreateWindow("egltri");
 
-       glDrawBuffer( GL_BACK );
+   eglutReshapeFunc(reshape);
+   eglutDisplayFunc(draw);
+   eglutSpecialFunc(special_key);
 
-       run(d, screen_surf, 5.0);
+   init();
 
-       eglDestroySurface(d, screen_surf);
-       eglDestroyContext(d, ctx);
-       eglTerminate(d);
+   eglutMainLoop();
 
-       return 0;
+   return 0;
 }
diff --git a/progs/egl/opengl/xegl_tri.c b/progs/egl/opengl/xegl_tri.c
deleted file mode 100644 (file)
index fb1dde3..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2008  Brian Paul   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, 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.
- */
-
-/*
- * Draw a triangle with X/EGL.
- * Brian Paul
- * 3 June 2008
- */
-
-
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-#include <GL/gl.h>
-
-#include "eglut.h"
-
-
-static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0;
-
-
-static void
-draw(void)
-{
-   static const GLfloat verts[3][2] = {
-      { -1, -1 },
-      {  1, -1 },
-      {  0,  1 }
-   };
-   static const GLfloat colors[3][3] = {
-      { 1, 0, 0 },
-      { 0, 1, 0 },
-      { 0, 0, 1 }
-   };
-
-   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
-   glPushMatrix();
-   glRotatef(view_rotx, 1, 0, 0);
-   glRotatef(view_roty, 0, 1, 0);
-   glRotatef(view_rotz, 0, 0, 1);
-
-   {
-      glVertexPointer(2, GL_FLOAT, 0, verts);
-      glColorPointer(3, GL_FLOAT, 0, colors);
-      glEnableClientState(GL_VERTEX_ARRAY);
-      glEnableClientState(GL_COLOR_ARRAY);
-
-      glDrawArrays(GL_TRIANGLES, 0, 3);
-
-      glDisableClientState(GL_VERTEX_ARRAY);
-      glDisableClientState(GL_COLOR_ARRAY);
-   }
-
-   glPopMatrix();
-}
-
-
-/* new window size or exposure */
-static void
-reshape(int width, int height)
-{
-   GLfloat ar = (GLfloat) width / (GLfloat) height;
-
-   glViewport(0, 0, (GLint) width, (GLint) height);
-
-   glMatrixMode(GL_PROJECTION);
-   glLoadIdentity();
-   glFrustum(-ar, ar, -1, 1, 5.0, 60.0);
-   
-   glMatrixMode(GL_MODELVIEW);
-   glLoadIdentity();
-   glTranslatef(0.0, 0.0, -10.0);
-}
-
-
-static void
-init(void)
-{
-   glClearColor(0.4, 0.4, 0.4, 0.0);
-}
-
-
-static void
-special_key(int special)
-{
-   switch (special) {
-   case EGLUT_KEY_LEFT:
-      view_roty += 5.0;
-      break;
-   case EGLUT_KEY_RIGHT:
-      view_roty -= 5.0;
-      break;
-   case EGLUT_KEY_UP:
-      view_rotx += 5.0;
-      break;
-   case EGLUT_KEY_DOWN:
-      view_rotx -= 5.0;
-      break;
-   default:
-      break;
-   }
-}
-
-int
-main(int argc, char *argv[])
-{
-   eglutInitWindowSize(300, 300);
-   eglutInitAPIMask(EGLUT_OPENGL_BIT);
-   eglutInit(argc, argv);
-
-   eglutCreateWindow("egltri");
-
-   eglutReshapeFunc(reshape);
-   eglutDisplayFunc(draw);
-   eglutSpecialFunc(special_key);
-
-   init();
-
-   eglutMainLoop();
-
-   return 0;
-}