summaryrefslogtreecommitdiffstats
path: root/progs/demos/trispd.c
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2010-05-21 09:32:38 -0700
committerEric Anholt <[email protected]>2010-05-21 12:20:39 -0700
commit68fc4b415e322f6744299e39864fbc377c6eff74 (patch)
tree4bafffd8b0105174f3c5c0ae327a005be9145990 /progs/demos/trispd.c
parente4f4489e3fc0b36d72821b55794fb843b2b7fa5f (diff)
Remove demos that have moved to git+ssh://git.freedesktop.org/git/mesa/demos.
The remaining programs are ones I've had difficulty finding a build environment for to make the build system or are unit tests that should probably live next to their code instead. Hopefully people can bring over the build for remaining pieces they care about.
Diffstat (limited to 'progs/demos/trispd.c')
-rw-r--r--progs/demos/trispd.c250
1 files changed, 0 insertions, 250 deletions
diff --git a/progs/demos/trispd.c b/progs/demos/trispd.c
deleted file mode 100644
index c07c3409472..00000000000
--- a/progs/demos/trispd.c
+++ /dev/null
@@ -1,250 +0,0 @@
-
-/*
- * Simple GLUT program to measure triangle strip rendering speed.
- * Brian Paul February 15, 1997 This file is in the public domain.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-#include <GL/glut.h>
-
-
-static float MinPeriod = 2.0; /* 2 seconds */
-static float Width = 400.0;
-static float Height = 400.0;
-static int Loops = 1;
-static int Size = 50;
-static int Texture = 0;
-
-
-
-static void Idle( void )
-{
- glutPostRedisplay();
-}
-
-
-static void Display( void )
-{
- float x, y;
- float xStep;
- float yStep;
- double t0, t1;
- double triRate;
- double pixelRate;
- int triCount;
- int i;
- float red[3] = { 1.0, 0.0, 0.0 };
- float blue[3] = { 0.0, 0.0, 1.0 };
-
- xStep = yStep = sqrt( 2.0 * Size );
-
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- triCount = 0;
- t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
- if (Texture) {
- float uStep = xStep / Width;
- float vStep = yStep / Height;
- float u, v;
- for (i=0; i<Loops; i++) {
- for (y=1.0, v=0.0f; y<Height-yStep; y+=yStep, v+=vStep) {
- glBegin(GL_TRIANGLE_STRIP);
- for (x=1.0, u=0.0f; x<Width; x+=xStep, u+=uStep) {
- glColor3fv(red);
- glTexCoord2f(u, v);
- glVertex2f(x, y);
- glColor3fv(blue);
- glTexCoord2f(u, v+vStep);
- glVertex2f(x, y+yStep);
- triCount += 2;
- }
- glEnd();
- triCount -= 2;
- }
- }
- }
- else {
- for (i=0; i<Loops; i++) {
- for (y=1.0; y<Height-yStep; y+=yStep) {
- glBegin(GL_TRIANGLE_STRIP);
- for (x=1.0; x<Width; x+=xStep) {
- glColor3fv(red);
- glVertex2f(x, y);
- glColor3fv(blue);
- glVertex2f(x, y+yStep);
- triCount += 2;
- }
- glEnd();
- triCount -= 2;
- }
- }
- }
- glFinish();
- t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
-
- if (t1-t0 < MinPeriod) {
- /* Next time draw more triangles to get longer elapsed time */
- Loops *= 2;
- return;
- }
-
- triRate = triCount / (t1-t0);
- pixelRate = triRate * Size;
- printf("Rate: %d tri in %gs = %g tri/s %d pixels/s\n",
- triCount, t1-t0, triRate, (int)pixelRate);
-
- glutSwapBuffers();
-}
-
-
-static void Reshape( int width, int height )
-{
- Width = width;
- Height = height;
- glViewport( 0, 0, width, height );
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho(0.0, width, 0.0, height, -1.0, 1.0);
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-}
-
-
-static void Key( unsigned char key, int x, int y )
-{
- (void) x;
- (void) y;
- switch (key) {
- case 27:
- exit(0);
- break;
- }
- glutPostRedisplay();
-}
-
-
-static void LoadTex(int comp, int filter)
-{
- GLubyte *pixels;
- int x, y;
- pixels = (GLubyte *) malloc(4*256*256);
- for (y = 0; y < 256; ++y)
- for (x = 0; x < 256; ++x) {
- pixels[(y*256+x)*4+0] = (int)(128.5 + 127.0 * cos(0.024544 * x));
- pixels[(y*256+x)*4+1] = 255;
- pixels[(y*256+x)*4+2] = (int)(128.5 + 127.0 * cos(0.024544 * y));
- pixels[(y*256+x)*4+3] = 255;
- }
- glEnable(GL_TEXTURE_2D);
- glTexImage2D(GL_TEXTURE_2D, 0, comp, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- printf("Texture: GL_MODULATE, %d comps, %s\n", comp, filter == GL_NEAREST ? "GL_NEAREST" : "GL_LINEAR");
-}
-
-
-static void Init( int argc, char *argv[] )
-{
- GLint shade;
- GLint rBits, gBits, bBits;
- int filter = GL_NEAREST, comp = 3;
-
- int i;
- for (i=1; i<argc; i++) {
- if (strcmp(argv[i],"-dither")==0)
- glDisable(GL_DITHER);
- else if (strcmp(argv[i],"+dither")==0)
- glEnable(GL_DITHER);
- else if (strcmp(argv[i],"+smooth")==0)
- glShadeModel(GL_SMOOTH);
- else if (strcmp(argv[i],"+flat")==0)
- glShadeModel(GL_FLAT);
- else if (strcmp(argv[i],"+depth")==0)
- glEnable(GL_DEPTH_TEST);
- else if (strcmp(argv[i],"-depth")==0)
- glDisable(GL_DEPTH_TEST);
- else if (strcmp(argv[i],"-size")==0) {
- Size = atoi(argv[i+1]);
- i++;
- }
- else if (strcmp(argv[i],"-texture")==0)
- Texture = 0;
- else if (strcmp(argv[i],"+texture")==0)
- Texture = 1;
- else if (strcmp(argv[i],"-linear")==0)
- filter = GL_NEAREST;
- else if (strcmp(argv[i],"+linear")==0)
- filter = GL_LINEAR;
- else if (strcmp(argv[i],"-persp")==0)
- glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
- else if (strcmp(argv[i],"+persp")==0)
- glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
- else if (strcmp(argv[i],"-comp")==0) {
- comp = atoi(argv[i+1]);
- i++;
- }
- else
- printf("Unknown option: %s\n", argv[i]);
- }
-
- glGetIntegerv(GL_SHADE_MODEL, &shade);
-
- printf("Dither: %s\n", glIsEnabled(GL_DITHER) ? "on" : "off");
- printf("ShadeModel: %s\n", (shade==GL_FLAT) ? "flat" : "smooth");
- printf("DepthTest: %s\n", glIsEnabled(GL_DEPTH_TEST) ? "on" : "off");
- printf("Size: %d pixels\n", Size);
-
- if (Texture)
- LoadTex(comp, filter);
-
- glGetIntegerv(GL_RED_BITS, &rBits);
- glGetIntegerv(GL_GREEN_BITS, &gBits);
- glGetIntegerv(GL_BLUE_BITS, &bBits);
- printf("RedBits: %d GreenBits: %d BlueBits: %d\n", rBits, gBits, bBits);
-}
-
-
-static void Help( const char *program )
-{
- printf("%s options:\n", program);
- printf(" +/-dither enable/disable dithering\n");
- printf(" +/-depth enable/disable depth test\n");
- printf(" +flat flat shading\n");
- printf(" +smooth smooth shading\n");
- printf(" -size pixels specify pixels/triangle\n");
- printf(" +/-texture enable/disable texture\n");
- printf(" -comp n texture format\n");
- printf(" +/-linear bilinear texture filter\n");
- printf(" +/-persp perspective correction hint\n");
-}
-
-
-int main( int argc, char *argv[] )
-{
- glutInitWindowSize( (int) Width, (int) Height );
- glutInit( &argc, argv );
- glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
- glutCreateWindow( argv[0] );
-
- printf("For options: %s -help\n", argv[0]);
- if (argc==2 && strcmp(argv[1],"-help")==0) {
- Help(argv[0]);
- return 0;
- }
-
- Init( argc, argv );
-
- glutReshapeFunc( Reshape );
- glutKeyboardFunc( Key );
- glutDisplayFunc( Display );
- glutIdleFunc( Idle );
-
- glutMainLoop();
- return 0;
-}