aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/glfw/Makefile60
-rw-r--r--tests/glfw/boing.c625
-rw-r--r--tests/glfw/bundle.sh46
-rw-r--r--tests/glfw/gears.c383
-rw-r--r--tests/glfw/getopt.c253
-rw-r--r--tests/glfw/getopt.h63
-rw-r--r--tests/glfw/glfwsample.c392
-rw-r--r--tests/glfw/heightmap.c866
-rw-r--r--tests/glfw/listmodes.c48
-rw-r--r--tests/glfw/mipmaps.c136
-rw-r--r--tests/glfw/mipmaps.tgabin66322 -> 0 bytes
-rw-r--r--tests/glfw/mtbench.c301
-rw-r--r--tests/glfw/mthello.c48
-rw-r--r--tests/glfw/particles.c1166
-rw-r--r--tests/glfw/pong3d.c862
-rw-r--r--tests/glfw/pong3d_field.tgabin17816 -> 0 bytes
-rw-r--r--tests/glfw/pong3d_instr.tgabin21279 -> 0 bytes
-rw-r--r--tests/glfw/pong3d_menu.tgabin1835 -> 0 bytes
-rw-r--r--tests/glfw/pong3d_title.tgabin106516 -> 0 bytes
-rw-r--r--tests/glfw/pong3d_winner1.tgabin861 -> 0 bytes
-rw-r--r--tests/glfw/pong3d_winner2.tgabin891 -> 0 bytes
-rw-r--r--tests/glfw/splitview.c525
-rw-r--r--tests/glfw/triangle.c108
-rw-r--r--tests/glfw/wave.c399
24 files changed, 0 insertions, 6281 deletions
diff --git a/tests/glfw/Makefile b/tests/glfw/Makefile
deleted file mode 100644
index 9bf06d80..00000000
--- a/tests/glfw/Makefile
+++ /dev/null
@@ -1,60 +0,0 @@
-##########################################################################
-# Makefile for GLFW example programs on X11 (generated by compile.sh)
-##########################################################################
-CC = emcc
-CFLAGS = -I../include -DEMSCRIPTEN
-
-LIB = -lglfw
-SOLIB =
-LFLAGS = $(LIB)
-SO_LFLAGS = $(SOLIB)
-EXT = html
-
-BINARIES = triangle listmodes mthello pong3d mtbench particles splitview \
- mipmaps gears boing heightmap glfwsample
-## wave
-
-all: $(BINARIES)
-
-triangle: triangle.c
- $(CC) $(CFLAGS) triangle.c $(LFLAGS) -o $@.$(EXT)
-
-listmodes: listmodes.c
- $(CC) $(CFLAGS) listmodes.c $(LFLAGS) -o $@.$(EXT)
-
-mthello: mthello.c
- $(CC) $(CFLAGS) mthello.c $(LFLAGS) -o $@.$(EXT)
-
-pong3d: pong3d.c
- $(CC) $(CFLAGS) pong3d.c $(LFLAGS) -o $@.$(EXT)
-
-mtbench: mtbench.c
- $(CC) $(CFLAGS) mtbench.c $(LFLAGS) -o $@.$(EXT)
-
-particles: particles.c
- $(CC) $(CFLAGS) particles.c $(LFLAGS) -o $@.$(EXT)
-
-splitview: splitview.c
- $(CC) $(CFLAGS) splitview.c $(LFLAGS) -o $@.$(EXT)
-
-mipmaps: mipmaps.c
- $(CC) $(CFLAGS) mipmaps.c $(LFLAGS) -o $@.$(EXT)
-
-gears: gears.c
- $(CC) $(CFLAGS) gears.c $(LFLAGS) -o $@.$(EXT)
-
-boing: boing.c
- $(CC) $(CFLAGS) boing.c $(LFLAGS) -o $@.$(EXT)
-
-wave: wave.c
- $(CC) $(CFLAGS) wave.c $(LFLAGS) -o $@.$(EXT)
-
-heightmap: heightmap.c
- $(CC) $(CFLAGS) heightmap.c $(LFLAGS) -o $@.$(EXT)
-
-glfwsample: glfwsample.c
- $(CC) $(CFLAGS) glfwsample.c $(LFLAGS) -o $@.$(EXT)
-
-clean:
- rm -f $(BINARIES)
-
diff --git a/tests/glfw/boing.c b/tests/glfw/boing.c
deleted file mode 100644
index 36c45b19..00000000
--- a/tests/glfw/boing.c
+++ /dev/null
@@ -1,625 +0,0 @@
-/*****************************************************************************
- * Title: GLBoing
- * Desc: Tribute to Amiga Boing.
- * Author: Jim Brooks <gfx@jimbrooks.org>
- * Original Amiga authors were R.J. Mical and Dale Luck.
- * GLFW conversion by Marcus Geelnard
- * Notes: - 360' = 2*PI [radian]
- *
- * - Distances between objects are created by doing a relative
- * Z translations.
- *
- * - Although OpenGL enticingly supports alpha-blending,
- * the shadow of the original Boing didn't affect the color
- * of the grid.
- *
- * - [Marcus] Changed timing scheme from interval driven to frame-
- * time based animation steps (which results in much smoother
- * movement)
- *
- * History of Amiga Boing:
- *
- * Boing was demonstrated on the prototype Amiga (codenamed "Lorraine") in
- * 1985. According to legend, it was written ad-hoc in one night by
- * R. J. Mical and Dale Luck. Because the bouncing ball animation was so fast
- * and smooth, attendees did not believe the Amiga prototype was really doing
- * the rendering. Suspecting a trick, they began looking around the booth for
- * a hidden computer or VCR.
- *****************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glfw.h>
-
-#ifdef EMSCRIPTEN
-#include <emscripten/emscripten.h>
-#endif
-
-
-/*****************************************************************************
- * Various declarations and macros
- *****************************************************************************/
-
-/* Prototypes */
-void init( void );
-void display( void );
-void GLFWCALL reshape( int w, int h );
-void DrawBoingBall( void );
-void BounceBall( double dt );
-void DrawBoingBallBand( GLfloat long_lo, GLfloat long_hi );
-void DrawGrid( void );
-
-#define RADIUS 70.f
-#define STEP_LONGITUDE 22.5f /* 22.5 makes 8 bands like original Boing */
-#define STEP_LATITUDE 22.5f
-
-#define DIST_BALL (RADIUS * 2.f + RADIUS * 0.1f)
-
-#define VIEW_SCENE_DIST (DIST_BALL * 3.f + 200.f)/* distance from viewer to middle of boing area */
-#define GRID_SIZE (RADIUS * 4.5f) /* length (width) of grid */
-#define BOUNCE_HEIGHT (RADIUS * 2.1f)
-#define BOUNCE_WIDTH (RADIUS * 2.1f)
-
-#define SHADOW_OFFSET_X -20.f
-#define SHADOW_OFFSET_Y 10.f
-#define SHADOW_OFFSET_Z 0.f
-
-#define WALL_L_OFFSET 0.f
-#define WALL_R_OFFSET 5.f
-
-/* Animation speed (50.0 mimics the original GLUT demo speed) */
-#define ANIMATION_SPEED 50.f
-
-/* Maximum allowed delta time per physics iteration */
-#define MAX_DELTA_T 0.02f
-
-/* Draw ball, or its shadow */
-typedef enum { DRAW_BALL, DRAW_BALL_SHADOW } DRAW_BALL_ENUM;
-
-/* Vertex type */
-typedef struct {float x; float y; float z;} vertex_t;
-
-/* Global vars */
-GLfloat deg_rot_y = 0.f;
-GLfloat deg_rot_y_inc = 2.f;
-GLfloat ball_x = -RADIUS;
-GLfloat ball_y = -RADIUS;
-GLfloat ball_x_inc = 1.f;
-GLfloat ball_y_inc = 2.f;
-DRAW_BALL_ENUM drawBallHow;
-double t;
-double t_old = 0.f;
-double dt;
-
-/* Random number generator */
-#ifndef RAND_MAX
- #define RAND_MAX 4095
-#endif
-
-/* PI */
-#ifndef M_PI
- #define M_PI 3.1415926535897932384626433832795
-#endif
-
-
-/*****************************************************************************
- * Truncate a degree.
- *****************************************************************************/
-GLfloat TruncateDeg( GLfloat deg )
-{
- if ( deg >= 360.f )
- return (deg - 360.f);
- else
- return deg;
-}
-
-/*****************************************************************************
- * Convert a degree (360-based) into a radian.
- * 360' = 2 * PI
- *****************************************************************************/
-double deg2rad( double deg )
-{
- return deg / 360 * (2 * M_PI);
-}
-
-/*****************************************************************************
- * 360' sin().
- *****************************************************************************/
-double sin_deg( double deg )
-{
- return sin( deg2rad( deg ) );
-}
-
-/*****************************************************************************
- * 360' cos().
- *****************************************************************************/
-double cos_deg( double deg )
-{
- return cos( deg2rad( deg ) );
-}
-
-/*****************************************************************************
- * Compute a cross product (for a normal vector).
- *
- * c = a x b
- *****************************************************************************/
-void CrossProduct( vertex_t a, vertex_t b, vertex_t c, vertex_t *n )
-{
- GLfloat u1, u2, u3;
- GLfloat v1, v2, v3;
-
- u1 = b.x - a.x;
- u2 = b.y - a.y;
- u3 = b.y - a.z;
-
- v1 = c.x - a.x;
- v2 = c.y - a.y;
- v3 = c.z - a.z;
-
- n->x = u2 * v3 - v2 * v3;
- n->y = u3 * v1 - v3 * u1;
- n->z = u1 * v2 - v1 * u2;
-}
-
-/*****************************************************************************
- * Calculate the angle to be passed to gluPerspective() so that a scene
- * is visible. This function originates from the OpenGL Red Book.
- *
- * Parms : size
- * The size of the segment when the angle is intersected at "dist"
- * (ie at the outermost edge of the angle of vision).
- *
- * dist
- * Distance from viewpoint to scene.
- *****************************************************************************/
-GLfloat PerspectiveAngle( GLfloat size,
- GLfloat dist )
-{
- GLfloat radTheta, degTheta;
-
- radTheta = 2.f * (GLfloat) atan2( size / 2.f, dist );
- degTheta = (180.f * radTheta) / (GLfloat) M_PI;
- return degTheta;
-}
-
-
-
-#define BOING_DEBUG 0
-
-
-/*****************************************************************************
- * init()
- *****************************************************************************/
-void init( void )
-{
- /*
- * Clear background.
- */
- glClearColor( 0.55f, 0.55f, 0.55f, 0.f );
-
- glShadeModel( GL_FLAT );
-}
-
-
-/*****************************************************************************
- * display()
- *****************************************************************************/
-void display(void)
-{
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
- glPushMatrix();
-
- drawBallHow = DRAW_BALL_SHADOW;
- DrawBoingBall();
-
- DrawGrid();
-
- drawBallHow = DRAW_BALL;
- DrawBoingBall();
-
- glPopMatrix();
- glFlush();
-}
-
-
-/*****************************************************************************
- * reshape()
- *****************************************************************************/
-void GLFWCALL reshape( int w, int h )
-{
- glViewport( 0, 0, (GLsizei)w, (GLsizei)h );
-
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
-
- gluPerspective( PerspectiveAngle( RADIUS * 2, 200 ),
- (GLfloat)w / (GLfloat)h,
- 1.0,
- VIEW_SCENE_DIST );
-
- glMatrixMode( GL_MODELVIEW );
- glLoadIdentity();
-
- gluLookAt( 0.0, 0.0, VIEW_SCENE_DIST,/* eye */
- 0.0, 0.0, 0.0, /* center of vision */
- 0.0, -1.0, 0.0 ); /* up vector */
-}
-
-
-/*****************************************************************************
- * Draw the Boing ball.
- *
- * The Boing ball is sphere in which each facet is a rectangle.
- * Facet colors alternate between red and white.
- * The ball is built by stacking latitudinal circles. Each circle is composed
- * of a widely-separated set of points, so that each facet is noticably large.
- *****************************************************************************/
-void DrawBoingBall( void )
-{
- GLfloat lon_deg; /* degree of longitude */
- double dt_total, dt2;
-
- glPushMatrix();
- glMatrixMode( GL_MODELVIEW );
-
- /*
- * Another relative Z translation to separate objects.
- */
- glTranslatef( 0.0, 0.0, DIST_BALL );
-
- /* Update ball position and rotation (iterate if necessary) */
- dt_total = dt;
- while( dt_total > 0.0 )
- {
- dt2 = dt_total > MAX_DELTA_T ? MAX_DELTA_T : dt_total;
- dt_total -= dt2;
- BounceBall( dt2 );
- deg_rot_y = TruncateDeg( deg_rot_y + deg_rot_y_inc*((float)dt2*ANIMATION_SPEED) );
- }
-
- /* Set ball position */
- glTranslatef( ball_x, ball_y, 0.0 );
-
- /*
- * Offset the shadow.
- */
- if ( drawBallHow == DRAW_BALL_SHADOW )
- {
- glTranslatef( SHADOW_OFFSET_X,
- SHADOW_OFFSET_Y,
- SHADOW_OFFSET_Z );
- }
-
- /*
- * Tilt the ball.
- */
- glRotatef( -20.0, 0.0, 0.0, 1.0 );
-
- /*
- * Continually rotate ball around Y axis.
- */
- glRotatef( deg_rot_y, 0.0, 1.0, 0.0 );
-
- /*
- * Set OpenGL state for Boing ball.
- */
- glCullFace( GL_FRONT );
- glEnable( GL_CULL_FACE );
- glEnable( GL_NORMALIZE );
-
- /*
- * Build a faceted latitude slice of the Boing ball,
- * stepping same-sized vertical bands of the sphere.
- */
- for ( lon_deg = 0;
- lon_deg < 180;
- lon_deg += STEP_LONGITUDE )
- {
- /*
- * Draw a latitude circle at this longitude.
- */
- DrawBoingBallBand( lon_deg,
- lon_deg + STEP_LONGITUDE );
- }
-
- glPopMatrix();
-
- return;
-}
-
-
-/*****************************************************************************
- * Bounce the ball.
- *****************************************************************************/
-void BounceBall( double dt )
-{
- GLfloat sign;
- GLfloat deg;
-
- /* Bounce on walls */
- if ( ball_x > (BOUNCE_WIDTH/2 + WALL_R_OFFSET ) )
- {
- ball_x_inc = -0.5f - 0.75f * (GLfloat)rand() / (GLfloat)RAND_MAX;
- deg_rot_y_inc = -deg_rot_y_inc;
- }
- if ( ball_x < -(BOUNCE_HEIGHT/2 + WALL_L_OFFSET) )
- {
- ball_x_inc = 0.5f + 0.75f * (GLfloat)rand() / (GLfloat)RAND_MAX;
- deg_rot_y_inc = -deg_rot_y_inc;
- }
-
- /* Bounce on floor / roof */
- if ( ball_y > BOUNCE_HEIGHT/2 )
- {
- ball_y_inc = -0.75f - 1.f * (GLfloat)rand() / (GLfloat)RAND_MAX;
- }
- if ( ball_y < -BOUNCE_HEIGHT/2*0.85 )
- {
- ball_y_inc = 0.75f + 1.f * (GLfloat)rand() / (GLfloat)RAND_MAX;
- }
-
- /* Update ball position */
- ball_x += ball_x_inc * ((float)dt*ANIMATION_SPEED);
- ball_y += ball_y_inc * ((float)dt*ANIMATION_SPEED);
-
- /*
- * Simulate the effects of gravity on Y movement.
- */
- if ( ball_y_inc < 0 ) sign = -1.0; else sign = 1.0;
-
- deg = (ball_y + BOUNCE_HEIGHT/2) * 90 / BOUNCE_HEIGHT;
- if ( deg > 80 ) deg = 80;
- if ( deg < 10 ) deg = 10;
-
- ball_y_inc = sign * 4.f * (float) sin_deg( deg );
-}
-
-
-/*****************************************************************************
- * Draw a faceted latitude band of the Boing ball.
- *
- * Parms: long_lo, long_hi
- * Low and high longitudes of slice, resp.
- *****************************************************************************/
-void DrawBoingBallBand( GLfloat long_lo,
- GLfloat long_hi )
-{
- vertex_t vert_ne; /* "ne" means south-east, so on */
- vertex_t vert_nw;
- vertex_t vert_sw;
- vertex_t vert_se;
- vertex_t vert_norm;
- GLfloat lat_deg;
- static int colorToggle = 0;
-
- /*
- * Iterate thru the points of a latitude circle.
- * A latitude circle is a 2D set of X,Z points.
- */
- for ( lat_deg = 0;
- lat_deg <= (360 - STEP_LATITUDE);
- lat_deg += STEP_LATITUDE )
- {
- /*
- * Color this polygon with red or white.
- */
- if ( colorToggle )
- glColor3f( 0.8f, 0.1f, 0.1f );
- else
- glColor3f( 0.95f, 0.95f, 0.95f );
-#if 0
- if ( lat_deg >= 180 )
- if ( colorToggle )
- glColor3f( 0.1f, 0.8f, 0.1f );
- else
- glColor3f( 0.5f, 0.5f, 0.95f );
-#endif
- colorToggle = ! colorToggle;
-
- /*
- * Change color if drawing shadow.
- */
- if ( drawBallHow == DRAW_BALL_SHADOW )
- glColor3f( 0.35f, 0.35f, 0.35f );
-
- /*
- * Assign each Y.
- */
- vert_ne.y = vert_nw.y = (float) cos_deg(long_hi) * RADIUS;
- vert_sw.y = vert_se.y = (float) cos_deg(long_lo) * RADIUS;
-
- /*
- * Assign each X,Z with sin,cos values scaled by latitude radius indexed by longitude.
- * Eg, long=0 and long=180 are at the poles, so zero scale is sin(longitude),
- * while long=90 (sin(90)=1) is at equator.
- */
- vert_ne.x = (float) cos_deg( lat_deg ) * (RADIUS * (float) sin_deg( long_lo + STEP_LONGITUDE ));
- vert_se.x = (float) cos_deg( lat_deg ) * (RADIUS * (float) sin_deg( long_lo ));
- vert_nw.x = (float) cos_deg( lat_deg + STEP_LATITUDE ) * (RADIUS * (float) sin_deg( long_lo + STEP_LONGITUDE ));
- vert_sw.x = (float) cos_deg( lat_deg + STEP_LATITUDE ) * (RADIUS * (float) sin_deg( long_lo ));
-
- vert_ne.z = (float) sin_deg( lat_deg ) * (RADIUS * (float) sin_deg( long_lo + STEP_LONGITUDE ));
- vert_se.z = (float) sin_deg( lat_deg ) * (RADIUS * (float) sin_deg( long_lo ));
- vert_nw.z = (float) sin_deg( lat_deg + STEP_LATITUDE ) * (RADIUS * (float) sin_deg( long_lo + STEP_LONGITUDE ));
- vert_sw.z = (float) sin_deg( lat_deg + STEP_LATITUDE ) * (RADIUS * (float) sin_deg( long_lo ));
-
- /*
- * Draw the facet.
- */
- glBegin( GL_POLYGON );
-
- CrossProduct( vert_ne, vert_nw, vert_sw, &vert_norm );
- glNormal3f( vert_norm.x, vert_norm.y, vert_norm.z );
-
- glVertex3f( vert_ne.x, vert_ne.y, vert_ne.z );
- glVertex3f( vert_nw.x, vert_nw.y, vert_nw.z );
- glVertex3f( vert_sw.x, vert_sw.y, vert_sw.z );
- glVertex3f( vert_se.x, vert_se.y, vert_se.z );
-
- glEnd();
-
-#if BOING_DEBUG
- printf( "----------------------------------------------------------- \n" );
- printf( "lat = %f long_lo = %f long_hi = %f \n", lat_deg, long_lo, long_hi );
- printf( "vert_ne x = %.8f y = %.8f z = %.8f \n", vert_ne.x, vert_ne.y, vert_ne.z );
- printf( "vert_nw x = %.8f y = %.8f z = %.8f \n", vert_nw.x, vert_nw.y, vert_nw.z );
- printf( "vert_se x = %.8f y = %.8f z = %.8f \n", vert_se.x, vert_se.y, vert_se.z );
- printf( "vert_sw x = %.8f y = %.8f z = %.8f \n", vert_sw.x, vert_sw.y, vert_sw.z );
-#endif
-
- }
-
- /*
- * Toggle color so that next band will opposite red/white colors than this one.
- */
- colorToggle = ! colorToggle;
-
- /*
- * This circular band is done.
- */
- return;
-}
-
-
-/*****************************************************************************
- * Draw the purple grid of lines, behind the Boing ball.
- * When the Workbench is dropped to the bottom, Boing shows 12 rows.
- *****************************************************************************/
-void DrawGrid( void )
-{
- int row, col;
- const int rowTotal = 12; /* must be divisible by 2 */
- const int colTotal = rowTotal; /* must be same as rowTotal */
- const GLfloat widthLine = 2.0; /* should be divisible by 2 */
- const GLfloat sizeCell = GRID_SIZE / rowTotal;
- const GLfloat z_offset = -40.0;
- GLfloat xl, xr;
- GLfloat yt, yb;
-
- glPushMatrix();
- glDisable( GL_CULL_FACE );
-
- /*
- * Another relative Z translation to separate objects.
- */
- glTranslatef( 0.0, 0.0, DIST_BALL );
-
- /*
- * Draw vertical lines (as skinny 3D rectangles).
- */
- for ( col = 0; col <= colTotal; col++ )
- {
- /*
- * Compute co-ords of line.
- */
- xl = -GRID_SIZE / 2 + col * sizeCell;
- xr = xl + widthLine;
-
- yt = GRID_SIZE / 2;
- yb = -GRID_SIZE / 2 - widthLine;
-
- glBegin( GL_POLYGON );
-
- glColor3f( 0.6f, 0.1f, 0.6f ); /* purple */
-
- glVertex3f( xr, yt, z_offset ); /* NE */
- glVertex3f( xl, yt, z_offset ); /* NW */
- glVertex3f( xl, yb, z_offset ); /* SW */
- glVertex3f( xr, yb, z_offset ); /* SE */
-
- glEnd();
- }
-
- /*
- * Draw horizontal lines (as skinny 3D rectangles).
- */
- for ( row = 0; row <= rowTotal; row++ )
- {
- /*
- * Compute co-ords of line.
- */
- yt = GRID_SIZE / 2 - row * sizeCell;
- yb = yt - widthLine;
-
- xl = -GRID_SIZE / 2;
- xr = GRID_SIZE / 2 + widthLine;
-
- glBegin( GL_POLYGON );
-
- glColor3f( 0.6f, 0.1f, 0.6f ); /* purple */
-
- glVertex3f( xr, yt, z_offset ); /* NE */
- glVertex3f( xl, yt, z_offset ); /* NW */
- glVertex3f( xl, yb, z_offset ); /* SW */
- glVertex3f( xr, yb, z_offset ); /* SE */
-
- glEnd();
- }
-
- glPopMatrix();
-
- return;
-}
-
-
-/*======================================================================*
- * main()
- *======================================================================*/
-
-void iteration(){
- /* Timing */
- t = glfwGetTime();
- dt = t - t_old;
- t_old = t;
-
- /* Draw one frame */
- display();
-
- /* Swap buffers */
- glfwSwapBuffers();
-}
-
-int main( void )
-{
- int running;
-
- /* Init GLFW */
- if( !glfwInit() )
- {
- fprintf( stderr, "Failed to initialize GLFW\n" );
- exit( EXIT_FAILURE );
- }
-
- if( !glfwOpenWindow( 400,400, 0,0,0,0, 16,0, GLFW_WINDOW ) )
- {
- fprintf( stderr, "Failed to open GLFW window\n" );
- glfwTerminate();
- exit( EXIT_FAILURE );
- }
-
- glfwSetWindowTitle( "Boing (classic Amiga demo)" );
- glfwSetWindowSizeCallback( reshape );
- glfwEnable( GLFW_STICKY_KEYS );
- glfwSwapInterval( 1 );
- glfwSetTime( 0.0 );
-
- init();
-
- /* Main loop */
-#ifdef EMSCRIPTEN
- emscripten_set_main_loop (iteration, 0, 1);
-#else
- do
- {
- iteration();
- /* Check if we are still running */
- running = !glfwGetKey( GLFW_KEY_ESC ) &&
- glfwGetWindowParam( GLFW_OPENED );
- }
- while( running );
-#endif
- glfwTerminate();
- exit( EXIT_SUCCESS );
-}
-
diff --git a/tests/glfw/bundle.sh b/tests/glfw/bundle.sh
deleted file mode 100644
index ee4d18dd..00000000
--- a/tests/glfw/bundle.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-
-# Creates application bundles for use on Mac OS X.
-
-if [ -z "$1" ]; then
- echo "usage: `basename $0` BUNDLE-NAME"
- exit 1
-fi
-
-bundle_name="$1"
-
-if [ ! -d "${bundle_name}.app/Contents/MacOS" ]; then
- mkdir -p "${bundle_name}.app/Contents/MacOS"
-fi
-
-if [ ! -d "${bundle_name}.app/Contents/Resources" ]; then
- mkdir -p "${bundle_name}.app/Contents/Resources"
-fi
-
-if [ ! -f "${bundle_name}.app/Contents/PkgInfo" ]; then
- echo -n "APPL????" > "${bundle_name}.app/Contents/PkgInfo"
-fi
-
-if [ ! -f "${bundle_name}.app/Contents/Info.plist" ]; then
- cat > "${bundle_name}.app/Contents/Info.plist" <<EOF
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleExecutable</key>
- <string>${bundle_name}</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>0.1</string>
-</dict>
-</plist>
-EOF
-fi
-
diff --git a/tests/glfw/gears.c b/tests/glfw/gears.c
deleted file mode 100644
index 01288414..00000000
--- a/tests/glfw/gears.c
+++ /dev/null
@@ -1,383 +0,0 @@
-/*
- * 3-D gear wheels. This program is in the public domain.
- *
- * Command line options:
- * -info print GL implementation information
- * -exit automatically exit after 30 seconds
- *
- *
- * Brian Paul
- *
- *
- * Marcus Geelnard:
- * - Conversion to GLFW
- * - Time based rendering (frame rate independent)
- * - Slightly modified camera that should work better for stereo viewing
- *
- *
- * Camilla Berglund:
- * - Removed FPS counter (this is not a benchmark)
- * - Added a few comments
- * - Enabled vsync
- */
-
-
-#include <math.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <GL/glfw.h>
-
-#ifndef M_PI
-#define M_PI 3.141592654
-#endif
-
-#ifdef EMSCRIPTEN
-#include <emscripten/emscripten.h>
-#endif
-
-/* The program exits when this is zero.
- */
-static int running = 1;
-
-/* If non-zero, the program exits after that many seconds
- */
-static int autoexit = 0;
-
-/**
-
- Draw a gear wheel. You'll probably want to call this function when
- building a display list since we do a lot of trig here.
-
- Input: inner_radius - radius of hole at center
- outer_radius - radius at center of teeth
- width - width of gear teeth - number of teeth
- tooth_depth - depth of tooth
-
- **/
-
-static void
-gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width,
- GLint teeth, GLfloat tooth_depth)
-{
- GLint i;
- GLfloat r0, r1, r2;
- GLfloat angle, da;
- GLfloat u, v, len;
-
- r0 = inner_radius;
- r1 = outer_radius - tooth_depth / 2.f;
- r2 = outer_radius + tooth_depth / 2.f;
-
- da = 2.f * (float) M_PI / teeth / 4.f;
-
- glShadeModel(GL_FLAT);
-
- glNormal3f(0.f, 0.f, 1.f);
-
- /* draw front face */
- glBegin(GL_QUAD_STRIP);
- for (i = 0; i <= teeth; i++) {
- angle = i * 2.f * (float) M_PI / teeth;
- glVertex3f(r0 * (float) cos(angle), r0 * (float) sin(angle), width * 0.5f);
- glVertex3f(r1 * (float) cos(angle), r1 * (float) sin(angle), width * 0.5f);
- if (i < teeth) {
- glVertex3f(r0 * (float) cos(angle), r0 * (float) sin(angle), width * 0.5f);
- glVertex3f(r1 * (float) cos(angle + 3 * da), r1 * (float) sin(angle + 3 * da), width * 0.5f);
- }
- }
- glEnd();
-
- /* draw front sides of teeth */
- glBegin(GL_QUADS);
- da = 2.f * (float) M_PI / teeth / 4.f;
- for (i = 0; i < teeth; i++) {
- angle = i * 2.f * (float) M_PI / teeth;
-
- glVertex3f(r1 * (float) cos(angle), r1 * (float) sin(angle), width * 0.5f);
- glVertex3f(r2 * (float) cos(angle + da), r2 * (float) sin(angle + da), width * 0.5f);
- glVertex3f(r2 * (float) cos(angle + 2 * da), r2 * (float) sin(angle + 2 * da), width * 0.5f);
- glVertex3f(r1 * (float) cos(angle + 3 * da), r1 * (float) sin(angle + 3 * da), width * 0.5f);
- }
- glEnd();
-
- glNormal3f(0.0, 0.0, -1.0);
-
- /* draw back face */
- glBegin(GL_QUAD_STRIP);
- for (i = 0; i <= teeth; i++) {
- angle = i * 2.f * (float) M_PI / teeth;
- glVertex3f(r1 * (float) cos(angle), r1 * (float) sin(angle), -width * 0.5f);
- glVertex3f(r0 * (float) cos(angle), r0 * (float) sin(angle), -width * 0.5f);
- if (i < teeth) {
- glVertex3f(r1 * (float) cos(angle + 3 * da), r1 * (float) sin(angle + 3 * da), -width * 0.5f);
- glVertex3f(r0 * (float) cos(angle), r0 * (float) sin(angle), -width * 0.5f);
- }
- }
- glEnd();
-
- /* draw back sides of teeth */
- glBegin(GL_QUADS);
- da = 2.f * (float) M_PI / teeth / 4.f;
- for (i = 0; i < teeth; i++) {
- angle = i * 2.f * (float) M_PI / teeth;
-
- glVertex3f(r1 * (float) cos(angle + 3 * da), r1 * (float) sin(angle + 3 * da), -width * 0.5f);
- glVertex3f(r2 * (float) cos(angle + 2 * da), r2 * (float) sin(angle + 2 * da), -width * 0.5f);
- glVertex3f(r2 * (float) cos(angle + da), r2 * (float) sin(angle + da), -width * 0.5f);
- glVertex3f(r1 * (float) cos(angle), r1 * (float) sin(angle), -width * 0.5f);
- }
- glEnd();
-
- /* draw outward faces of teeth */
- glBegin(GL_QUAD_STRIP);
- for (i = 0; i < teeth; i++) {
- angle = i * 2.f * (float) M_PI / teeth;
-
- glVertex3f(r1 * (float) cos(angle), r1 * (float) sin(angle), width * 0.5f);
- glVertex3f(r1 * (float) cos(angle), r1 * (float) sin(angle), -width * 0.5f);
- u = r2 * (float) cos(angle + da) - r1 * (float) cos(angle);
- v = r2 * (float) sin(angle + da) - r1 * (float) sin(angle);
- len = (float) sqrt(u * u + v * v);
- u /= len;
- v /= len;
- glNormal3f(v, -u, 0.0);
- glVertex3f(r2 * (float) cos(angle + da), r2 * (float) sin(angle + da), width * 0.5f);
- glVertex3f(r2 * (float) cos(angle + da), r2 * (float) sin(angle + da), -width * 0.5f);
- glNormal3f((float) cos(angle), (float) sin(angle), 0.f);
- glVertex3f(r2 * (float) cos(angle + 2 * da), r2 * (float) sin(angle + 2 * da), width * 0.5f);
- glVertex3f(r2 * (float) cos(angle + 2 * da), r2 * (float) sin(angle + 2 * da), -width * 0.5f);
- u = r1 * (float) cos(angle + 3 * da) - r2 * (float) cos(angle + 2 * da);
- v = r1 * (float) sin(angle + 3 * da) - r2 * (float) sin(angle + 2 * da);
- glNormal3f(v, -u, 0.f);
- glVertex3f(r1 * (float) cos(angle + 3 * da), r1 * (float) sin(angle + 3 * da), width * 0.5f);
- glVertex3f(r1 * (float) cos(angle + 3 * da), r1 * (float) sin(angle + 3 * da), -width * 0.5f);
- glNormal3f((float) cos(angle), (float) sin(angle), 0.f);
- }
-
- glVertex3f(r1 * (float) cos(0), r1 * (float) sin(0), width * 0.5f);
- glVertex3f(r1 * (float) cos(0), r1 * (float) sin(0), -width * 0.5f);
-
- glEnd();
-
- glShadeModel(GL_SMOOTH);
-
- /* draw inside radius cylinder */
- glBegin(GL_QUAD_STRIP);
- for (i = 0; i <= teeth; i++) {
- angle = i * 2.f * (float) M_PI / teeth;
- glNormal3f(-(float) cos(angle), -(float) sin(angle), 0.f);
- glVertex3f(r0 * (float) cos(angle), r0 * (float) sin(angle), -width * 0.5f);
- glVertex3f(r0 * (float) cos(angle), r0 * (float) sin(angle), width * 0.5f);
- }
- glEnd();
-
-}
-
-
-static GLfloat view_rotx = 20.f, view_roty = 30.f, view_rotz = 0.f;
-static GLint gear1, gear2, gear3;
-static GLfloat angle = 0.f;
-
-/* OpenGL draw function & timing */
-static void draw(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix();
- glRotatef(view_rotx, 1.0, 0.0, 0.0);
- glRotatef(view_roty, 0.0, 1.0, 0.0);
- glRotatef(view_rotz, 0.0, 0.0, 1.0);
-
- glPushMatrix();
- glTranslatef(-3.0, -2.0, 0.0);
- glRotatef(angle, 0.0, 0.0, 1.0);
- glCallList(gear1);
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef(3.1f, -2.f, 0.f);
- glRotatef(-2.f * angle - 9.f, 0.f, 0.f, 1.f);
- glCallList(gear2);
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef(-3.1f, 4.2f, 0.f);
- glRotatef(-2.f * angle - 25.f, 0.f, 0.f, 1.f);
- glCallList(gear3);
- glPopMatrix();
-
- glPopMatrix();
-}
-
-
-/* update animation parameters */
-static void animate(void)
-{
- angle = 100.f * (float) glfwGetTime();
-}
-
-
-/* change view angle, exit upon ESC */
-void GLFWCALL key( int k, int action )
-{
- if( action != GLFW_PRESS ) return;
-
- switch (k) {
- case 'Z':
- if( glfwGetKey( GLFW_KEY_LSHIFT ) )
- view_rotz -= 5.0;
- else
- view_rotz += 5.0;
- break;
- case GLFW_KEY_ESC:
- running = 0;
- break;
- case GLFW_KEY_UP:
- view_rotx += 5.0;
- break;
- case GLFW_KEY_DOWN:
- view_rotx -= 5.0;
- break;
- case GLFW_KEY_LEFT:
- view_roty += 5.0;
- break;
- case GLFW_KEY_RIGHT:
- view_roty -= 5.0;
- break;
- default:
- return;
- }
-}