From 23018fec360e50c7cb4de4b2411650ce79532e54 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 27 Feb 2013 00:03:49 -0800 Subject: Wed Feb 27 00:03:48 PST 2013 --- libre/mesa-demos-libre/PKGBUILD | 26 +- libre/mesa-demos-libre/mesa-demos-libre.patch | 1198 ++----------------------- 2 files changed, 75 insertions(+), 1149 deletions(-) (limited to 'libre/mesa-demos-libre') diff --git a/libre/mesa-demos-libre/PKGBUILD b/libre/mesa-demos-libre/PKGBUILD index 31170b19f..46f2b42b4 100644 --- a/libre/mesa-demos-libre/PKGBUILD +++ b/libre/mesa-demos-libre/PKGBUILD @@ -1,29 +1,33 @@ -# $Id: PKGBUILD 151279 2012-02-25 12:34:03Z pierre $ +# $Id: PKGBUILD 178740 2013-02-26 16:15:13Z andyrtr $ # Maintainer: Jan de Groot # Maintainer: Andreas Radke -# Contributor (Parabola): +# Maintainer (Parabola): pkgname='mesa-demos-libre' -pkgver=8.0.1 -pkgrel=2 +pkgver=8.1.0 +pkgrel=1 arch=('i686' 'x86_64') -pkgdesc="Mesa demos and tools, libre" +pkgdesc="Mesa demos and tools, without nonfree demos" url="http://mesa3d.sourceforge.net" license=('custom') -depends=('glew') +depends=('libgl' 'glew') provides=("mesa-demos=$pkgver") replaces=('mesa-demos') conflicts=('mesa-demos') source=("ftp://ftp.freedesktop.org/pub/mesa/demos/${pkgver}/mesa-demos-${pkgver}.tar.bz2" - mesa-demos-libre.patch - LICENSE) -md5sums=('320c2a4b6edc6faba35d9cb1e2a30bf4' - '1858e95d40ac9e5e0b59753ce9e673e3' - '5c65a0fe315dd347e09b1f2826a1df5a') + 'LICENSE' + 'mesa-demos-libre.patch') +sha256sums=('9703fa0646b32a1e68d2abf5628f936f77bf97c69ffcaac90de380820a87a828' + '7fdc119cf53c8ca65396ea73f6d10af641ba41ea1dd2bd44a824726e01c8b3f2' + '476f58fc62e9074936643b0d61165c5160a6d5aed082e60c10b39d219f56913f') build() { cd "${srcdir}/mesa-demos-${pkgver}" + + # Remove nonfree demos (pointblast and spriteblast) + rm -v src/demos/{pointblast,spriteblast}.c patch -Np1 -i "${srcdir}/mesa-demos-libre.patch" + ./configure --prefix=/usr make } diff --git a/libre/mesa-demos-libre/mesa-demos-libre.patch b/libre/mesa-demos-libre/mesa-demos-libre.patch index c5261f8e9..d630f373c 100755 --- a/libre/mesa-demos-libre/mesa-demos-libre.patch +++ b/libre/mesa-demos-libre/mesa-demos-libre.patch @@ -1,15 +1,15 @@ -diff -rauNp Desktop/mesa-demos-8.0.1//src/demos/Makefile.am mesa-demos-8.0.1//src/demos/Makefile.am ---- Desktop/mesa-demos-8.0.1//src/demos/Makefile.am 2010-07-13 14:46:40.000000000 -0400 -+++ mesa-demos-8.0.1/src/demos/Makefile.am 2011-06-04 15:34:18.000000000 -0400 -@@ -62,7 +62,6 @@ bin_PROGRAMS = \ - morph3d \ +diff -Nur mesa-demos-8.1.0.orig/src/demos/Makefile.am mesa-demos-8.1.0/src/demos/Makefile.am +--- mesa-demos-8.1.0.orig/src/demos/Makefile.am 2012-12-15 05:17:06.000000000 -0200 ++++ mesa-demos-8.1.0/src/demos/Makefile.am 2013-02-26 17:22:04.845832793 -0200 +@@ -65,7 +65,6 @@ multiarb \ paltex \ + pixeltest \ - pointblast \ projtex \ ray \ readpix \ -@@ -71,7 +70,6 @@ bin_PROGRAMS = \ +@@ -74,7 +73,6 @@ shadowtex \ singlebuffer \ spectex \ @@ -17,36 +17,34 @@ diff -rauNp Desktop/mesa-demos-8.0.1//src/demos/Makefile.am mesa-demos-8.0.1//sr stex3d \ teapot \ terrain \ -diff -rauNp Desktop/mesa-demos-8.0.1//src/demos/Makefile.in mesa-demos-8.0.1//src/demos/Makefile.in ---- Desktop/mesa-demos-8.0.1//src/demos/Makefile.in 2010-07-13 14:53:23.000000000 -0400 -+++ mesa-demos-8.0.1/src/demos/Makefile.in 2011-06-04 15:35:32.000000000 -0400 -@@ -73,11 +73,10 @@ host_triplet = @host@ +diff -Nur mesa-demos-8.1.0.orig/src/demos/Makefile.in mesa-demos-8.1.0/src/demos/Makefile.in +--- mesa-demos-8.1.0.orig/src/demos/Makefile.in 2013-02-24 09:12:04.000000000 -0200 ++++ mesa-demos-8.1.0/src/demos/Makefile.in 2013-02-26 17:48:36.711995049 -0200 +@@ -90,11 +90,11 @@ @HAVE_GLUT_TRUE@ ipers$(EXEEXT) isosurf$(EXEEXT) \ @HAVE_GLUT_TRUE@ lodbias$(EXEEXT) morph3d$(EXEEXT) \ @HAVE_GLUT_TRUE@ multiarb$(EXEEXT) paltex$(EXEEXT) \ --@HAVE_GLUT_TRUE@ pointblast$(EXEEXT) projtex$(EXEEXT) \ --@HAVE_GLUT_TRUE@ ray$(EXEEXT) readpix$(EXEEXT) reflect$(EXEEXT) \ --@HAVE_GLUT_TRUE@ renormal$(EXEEXT) shadowtex$(EXEEXT) \ --@HAVE_GLUT_TRUE@ singlebuffer$(EXEEXT) spectex$(EXEEXT) \ --@HAVE_GLUT_TRUE@ spriteblast$(EXEEXT) stex3d$(EXEEXT) \ -+@HAVE_GLUT_TRUE@ projtex$(EXEEXT) ray$(EXEEXT) readpix$(EXEEXT) \ -+@HAVE_GLUT_TRUE@ reflect$(EXEEXT) renormal$(EXEEXT) \ -+@HAVE_GLUT_TRUE@ shadowtex$(EXEEXT) singlebuffer$(EXEEXT) \ -+@HAVE_GLUT_TRUE@ spectex$(EXEEXT) stex3d$(EXEEXT) \ - @HAVE_GLUT_TRUE@ teapot$(EXEEXT) terrain$(EXEEXT) \ - @HAVE_GLUT_TRUE@ tessdemo$(EXEEXT) texcyl$(EXEEXT) \ - @HAVE_GLUT_TRUE@ texenv$(EXEEXT) textures$(EXEEXT) \ -@@ -188,9 +187,6 @@ multiarb_DEPENDENCIES = ../util/libutil. - paltex_SOURCES = paltex.c - paltex_OBJECTS = paltex.$(OBJEXT) - paltex_LDADD = $(LDADD) +-@HAVE_GLUT_TRUE@ pixeltest$(EXEEXT) pointblast$(EXEEXT) \ ++@HAVE_GLUT_TRUE@ pixeltest$(EXEEXT) \ + @HAVE_GLUT_TRUE@ projtex$(EXEEXT) ray$(EXEEXT) readpix$(EXEEXT) \ + @HAVE_GLUT_TRUE@ reflect$(EXEEXT) renormal$(EXEEXT) \ + @HAVE_GLUT_TRUE@ shadowtex$(EXEEXT) singlebuffer$(EXEEXT) \ +-@HAVE_GLUT_TRUE@ spectex$(EXEEXT) spriteblast$(EXEEXT) \ ++@HAVE_GLUT_TRUE@ spectex$(EXEEXT) \ + @HAVE_GLUT_TRUE@ stex3d$(EXEEXT) teapot$(EXEEXT) \ + @HAVE_GLUT_TRUE@ terrain$(EXEEXT) tessdemo$(EXEEXT) \ + @HAVE_GLUT_TRUE@ texcyl$(EXEEXT) texenv$(EXEEXT) \ +@@ -219,9 +219,6 @@ + pixeltest_SOURCES = pixeltest.c + pixeltest_OBJECTS = pixeltest.$(OBJEXT) + pixeltest_LDADD = $(LDADD) -pointblast_SOURCES = pointblast.c -pointblast_OBJECTS = pointblast.$(OBJEXT) -pointblast_LDADD = $(LDADD) projtex_SOURCES = projtex.c projtex_OBJECTS = projtex.$(OBJEXT) projtex_DEPENDENCIES = ../util/libutil.la -@@ -215,9 +211,6 @@ singlebuffer_LDADD = $(LDADD) +@@ -246,9 +243,6 @@ spectex_SOURCES = spectex.c spectex_OBJECTS = spectex.$(OBJEXT) spectex_LDADD = $(LDADD) @@ -56,66 +54,57 @@ diff -rauNp Desktop/mesa-demos-8.0.1//src/demos/Makefile.in mesa-demos-8.0.1//sr stex3d_SOURCES = stex3d.c stex3d_OBJECTS = stex3d.$(OBJEXT) stex3d_LDADD = $(LDADD) -@@ -285,21 +278,20 @@ SOURCES = arbfplight.c arbfslight.c arbo - fbo_firecube.c fbotexture.c fire.c fogcoord.c fplight.c \ - fslight.c gamma.c gearbox.c gears.c geartrain.c glinfo.c \ - gloss.c gltestperf.c ipers.c isosurf.c lodbias.c morph3d.c \ -- multiarb.c paltex.c pointblast.c projtex.c ray.c readpix.c \ -- reflect.c renormal.c shadowtex.c singlebuffer.c spectex.c \ -- spriteblast.c stex3d.c teapot.c terrain.c tessdemo.c texcyl.c \ -- texenv.c textures.c trispd.c $(tunnel_SOURCES) tunnel2.c \ -- vao_demo.c winpos.c -+ multiarb.c paltex.c projtex.c ray.c readpix.c reflect.c \ -+ renormal.c shadowtex.c singlebuffer.c spectex.c stex3d.c \ -+ teapot.c terrain.c tessdemo.c texcyl.c texenv.c textures.c \ -+ trispd.c $(tunnel_SOURCES) tunnel2.c vao_demo.c winpos.c - DIST_SOURCES = arbfplight.c arbfslight.c arbocclude.c bounce.c \ - clearspd.c copypix.c cubemap.c dinoshade.c dissolve.c \ - drawpix.c engine.c fbo_firecube.c fbotexture.c fire.c \ - fogcoord.c fplight.c fslight.c gamma.c gearbox.c gears.c \ - geartrain.c glinfo.c gloss.c gltestperf.c ipers.c isosurf.c \ -- lodbias.c morph3d.c multiarb.c paltex.c pointblast.c projtex.c \ -- ray.c readpix.c reflect.c renormal.c shadowtex.c \ -- singlebuffer.c spectex.c spriteblast.c stex3d.c teapot.c \ -- terrain.c tessdemo.c texcyl.c texenv.c textures.c trispd.c \ -- $(tunnel_SOURCES) tunnel2.c vao_demo.c winpos.c -+ lodbias.c morph3d.c multiarb.c paltex.c projtex.c ray.c \ -+ readpix.c reflect.c renormal.c shadowtex.c singlebuffer.c \ -+ spectex.c stex3d.c teapot.c terrain.c tessdemo.c texcyl.c \ -+ texenv.c textures.c trispd.c $(tunnel_SOURCES) tunnel2.c \ -+ vao_demo.c winpos.c - ETAGS = etags - CTAGS = ctags - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -@@ -653,9 +645,6 @@ multiarb$(EXEEXT): $(multiarb_OBJECTS) $ - paltex$(EXEEXT): $(paltex_OBJECTS) $(paltex_DEPENDENCIES) - @rm -f paltex$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(paltex_OBJECTS) $(paltex_LDADD) $(LIBS) --pointblast$(EXEEXT): $(pointblast_OBJECTS) $(pointblast_DEPENDENCIES) +@@ -325,8 +319,8 @@ + fbotexture.c fire.c fogcoord.c fplight.c fslight.c gamma.c \ + gearbox.c gears.c geartrain.c glinfo.c gloss.c gltestperf.c \ + ipers.c isosurf.c lodbias.c morph3d.c multiarb.c paltex.c \ +- pixeltest.c pointblast.c projtex.c ray.c readpix.c reflect.c \ +- renormal.c shadowtex.c singlebuffer.c spectex.c spriteblast.c \ ++ pixeltest.c projtex.c ray.c readpix.c reflect.c \ ++ renormal.c shadowtex.c singlebuffer.c spectex.c \ + stex3d.c teapot.c terrain.c tessdemo.c texcyl.c texenv.c \ + textures.c trispd.c $(tunnel_SOURCES) tunnel2.c vao_demo.c \ + winpos.c +@@ -336,8 +330,8 @@ + fbotexture.c fire.c fogcoord.c fplight.c fslight.c gamma.c \ + gearbox.c gears.c geartrain.c glinfo.c gloss.c gltestperf.c \ + ipers.c isosurf.c lodbias.c morph3d.c multiarb.c paltex.c \ +- pixeltest.c pointblast.c projtex.c ray.c readpix.c reflect.c \ +- renormal.c shadowtex.c singlebuffer.c spectex.c spriteblast.c \ ++ pixeltest.c projtex.c ray.c readpix.c reflect.c \ ++ renormal.c shadowtex.c singlebuffer.c spectex.c \ + stex3d.c teapot.c terrain.c tessdemo.c texcyl.c texenv.c \ + textures.c trispd.c $(tunnel_SOURCES) tunnel2.c vao_demo.c \ + winpos.c +@@ -722,9 +716,6 @@ + pixeltest$(EXEEXT): $(pixeltest_OBJECTS) $(pixeltest_DEPENDENCIES) $(EXTRA_pixeltest_DEPENDENCIES) + @rm -f pixeltest$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(pixeltest_OBJECTS) $(pixeltest_LDADD) $(LIBS) +-pointblast$(EXEEXT): $(pointblast_OBJECTS) $(pointblast_DEPENDENCIES) $(EXTRA_pointblast_DEPENDENCIES) - @rm -f pointblast$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(pointblast_OBJECTS) $(pointblast_LDADD) $(LIBS) - projtex$(EXEEXT): $(projtex_OBJECTS) $(projtex_DEPENDENCIES) + projtex$(EXEEXT): $(projtex_OBJECTS) $(projtex_DEPENDENCIES) $(EXTRA_projtex_DEPENDENCIES) @rm -f projtex$(EXEEXT) $(AM_V_CCLD)$(LINK) $(projtex_OBJECTS) $(projtex_LDADD) $(LIBS) -@@ -680,9 +669,6 @@ singlebuffer$(EXEEXT): $(singlebuffer_OB - spectex$(EXEEXT): $(spectex_OBJECTS) $(spectex_DEPENDENCIES) +@@ -749,9 +740,6 @@ + spectex$(EXEEXT): $(spectex_OBJECTS) $(spectex_DEPENDENCIES) $(EXTRA_spectex_DEPENDENCIES) @rm -f spectex$(EXEEXT) $(AM_V_CCLD)$(LINK) $(spectex_OBJECTS) $(spectex_LDADD) $(LIBS) --spriteblast$(EXEEXT): $(spriteblast_OBJECTS) $(spriteblast_DEPENDENCIES) +-spriteblast$(EXEEXT): $(spriteblast_OBJECTS) $(spriteblast_DEPENDENCIES) $(EXTRA_spriteblast_DEPENDENCIES) - @rm -f spriteblast$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(spriteblast_OBJECTS) $(spriteblast_LDADD) $(LIBS) - stex3d$(EXEEXT): $(stex3d_OBJECTS) $(stex3d_DEPENDENCIES) + stex3d$(EXEEXT): $(stex3d_OBJECTS) $(stex3d_DEPENDENCIES) $(EXTRA_stex3d_DEPENDENCIES) @rm -f stex3d$(EXEEXT) $(AM_V_CCLD)$(LINK) $(stex3d_OBJECTS) $(stex3d_LDADD) $(LIBS) -@@ -756,7 +742,6 @@ distclean-compile: - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/morph3d.Po@am__quote@ +@@ -828,7 +816,6 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multiarb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paltex.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pixeltest.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pointblast.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/projtex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ray.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readpix.Po@am__quote@ -@@ -765,7 +750,6 @@ distclean-compile: +@@ -837,7 +824,6 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shadowtex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/singlebuffer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spectex.Po@am__quote@ @@ -123,1070 +112,3 @@ diff -rauNp Desktop/mesa-demos-8.0.1//src/demos/Makefile.in mesa-demos-8.0.1//sr @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stex3d.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/teapot.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/terrain.Po@am__quote@ -diff -rauNp Desktop/mesa-demos-8.0.1//src/demos/pointblast.c mesa-demos-8.0.1//src/demos/pointblast.c ---- Desktop/mesa-demos-8.0.1//src/demos/pointblast.c 2010-07-07 13:57:15.000000000 -0400 -+++ mesa-demos-8.0.1/src/demos/pointblast.c 1969-12-31 19:00:00.000000000 -0500 -@@ -1,504 +0,0 @@ -- --/* Copyright (c) Mark J. Kilgard, 1997. */ -- --/* This program is freely distributable without licensing fees -- and is provided without guarantee or warrantee expressed or -- implied. This program is -not- in the public domain. */ -- --/* This example demonstrates how to render particle effects -- with OpenGL. A cloud of pinkish/orange particles explodes with the -- particles bouncing off the ground. When the EXT_point_parameters -- is present , the particle size is attenuated based on eye distance. */ -- -- --#include --#include --#include --#include /* for cos(), sin(), and sqrt() */ --#ifdef _WIN32 --#include --#endif --#include --#include -- --/* Some files do not define M_PI... */ --#ifndef M_PI --#define M_PI 3.14159265 --#endif -- --#if 0 /* For debugging. */ --#undef GL_EXT_point_parameters --#endif -- --static GLfloat angle = -150; /* in degrees */ --static int spin = 0; --static int moving, begin; --static int newModel = 1; --static float theTime; --static int repeat = 1; --static int blend = 1; --int useMipmaps = 1; --int linearFiltering = 1; -- --static GLfloat constant[3] = { 1/5.0, 0.0, 0.0 }; --static GLfloat linear[3] = { 0.0, 1/5.0, 0.0 }; --static GLfloat theQuad[3] = { 0.25, 0.0, 1/60.0 }; -- --#define MAX_POINTS 2000 -- --static int numPoints = 200; -- --static GLfloat pointList[MAX_POINTS][3]; --static GLfloat pointTime[MAX_POINTS]; --static GLfloat pointVelocity[MAX_POINTS][2]; --static GLfloat pointDirection[MAX_POINTS][2]; --static int colorList[MAX_POINTS]; --static int animate = 1, motion = 0; -- --static GLfloat colorSet[][4] = { -- /* Shades of red. */ -- { 0.7, 0.2, 0.4, 0.5 }, -- { 0.8, 0.0, 0.7, 0.5 }, -- { 1.0, 0.0, 0.0, 0.5 }, -- { 0.9, 0.3, 0.6, 0.5 }, -- { 1.0, 0.4, 0.0, 0.5 }, -- { 1.0, 0.0, 0.5, 0.5 }, --}; -- --#define NUM_COLORS (sizeof(colorSet)/sizeof(colorSet[0])) -- --#define DEAD (NUM_COLORS+1) -- -- --#if 0 /* drand48 might be better on Unix machines */ --#define RANDOM_RANGE(lo, hi) ((lo) + (hi - lo) * drand48()) --#else --static float float_rand(void) { return rand() / (float) RAND_MAX; } --#define RANDOM_RANGE(lo, hi) ((lo) + (hi - lo) * float_rand()) --#endif -- --#define MEAN_VELOCITY 3.0 --#define GRAVITY 2.0 -- --/* Modeling units of ground extent in each X and Z direction. */ --#define EDGE 12 -- --static void --makePointList(void) --{ -- float angle, velocity, direction; -- int i; -- -- motion = 1; -- for (i=0; i EDGE) { -- /* Particle has hit ground past the distance duration of -- the particles. Mark particle as dead. */ -- colorList[i] = NUM_COLORS; /* Not moving. */ -- continue; -- } -- -- pointVelocity[i][1] *= 0.8; /* 80% of previous up velocity. */ -- pointTime[i] = 0.0; /* Reset the particles sense of up time. */ -- } -- motion = 1; -- pointTime[i] += dt; -- } -- theTime += dt; -- if (!motion && !spin) { -- if (repeat) { -- makePointList(); -- } else { -- glutIdleFunc(NULL); -- } -- } --} -- --static void --idle(void) --{ -- updatePointList(); -- if (spin) { -- angle += 0.3; -- newModel = 1; -- } -- glutPostRedisplay(); --} -- --static void --visible(int vis) --{ -- if (vis == GLUT_VISIBLE) { -- if (animate && (motion || spin)) { -- glutIdleFunc(idle); -- } -- } else { -- glutIdleFunc(NULL); -- } --} -- --static void --recalcModelView(void) --{ -- glPopMatrix(); -- glPushMatrix(); -- glRotatef(angle, 0.0, 1.0, 0.0); -- newModel = 0; --} -- --static void --redraw(void) --{ -- int i; -- -- glDepthMask(GL_TRUE); -- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); -- if (newModel) -- recalcModelView(); -- -- -- /* Draw the floor. */ --/* glEnable(GL_TEXTURE_2D);*/ -- glColor3f(0.5, 1.0, 0.5); -- glBegin(GL_QUADS); -- glTexCoord2f(0.0, 0.0); -- glVertex3f(-EDGE, -0.05, -EDGE); -- glTexCoord2f(20.0, 0.0); -- glVertex3f(EDGE, -0.05, -EDGE); -- glTexCoord2f(20.0, 20.0); -- glVertex3f(EDGE, -0.05, EDGE); -- glTexCoord2f(0.0, 20.0); -- glVertex3f(-EDGE, -0.05, EDGE); -- glEnd(); -- -- /* Allow particles to blend with each other. */ -- glDepthMask(GL_FALSE); -- -- if (blend) -- glEnable(GL_BLEND); -- -- glDisable(GL_TEXTURE_2D); -- glBegin(GL_POINTS); -- for (i=0; i --#include --#include --#include /* for cos(), sin(), and sqrt() */ --#ifdef _WIN32 --#include --#endif --#include --#include -- --/* Some files do not define M_PI... */ --#ifndef M_PI --#define M_PI 3.14159265 --#endif -- --#if 0 /* For debugging. */ --#undef GL_EXT_point_parameters --#endif -- --static GLfloat angle = -150; /* in degrees */ --static int spin = 0; --static int moving, begin; --static float theTime; --static int repeat = 1; --static int blend = 1; --int useMipmaps = 1; --int linearFiltering = 1; -- --static GLfloat constant[3] = { .2, 0.0, 0.0 }; --static GLfloat linear[3] = { .0, .1, 0.0 }; --static GLfloat theQuad[3] = { .005, 0.1, 1/600.0 }; -- --#define MAX_POINTS 2000 -- --static int numPoints = 200; -- --static GLfloat pointList[MAX_POINTS][3]; --static GLfloat pointTime[MAX_POINTS]; --static GLfloat pointVelocity[MAX_POINTS][2]; --static GLfloat pointDirection[MAX_POINTS][2]; --static int colorList[MAX_POINTS]; --static int animate = 1, motion = 0, org = 0, sprite = 1, smooth = 1; -- --static GLfloat colorSet[][4] = { -- /* Shades of red. */ -- { 0.7, 0.2, 0.4, 0.5 }, -- { 0.8, 0.0, 0.7, 0.5 }, -- { 1.0, 0.0, 0.0, 0.5 }, -- { 0.9, 0.3, 0.6, 0.5 }, -- { 1.0, 0.4, 0.0, 0.5 }, -- { 1.0, 0.0, 0.5, 0.5 }, --}; -- --#define NUM_COLORS (sizeof(colorSet)/sizeof(colorSet[0])) -- --#define DEAD (NUM_COLORS+1) -- -- --/* GL */ --static GLint spritePattern[16][16] = { -- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, -- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, -- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, -- { 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 }, -- { 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0 }, -- { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0 }, -- { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 }, -- { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 }, -- { 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0 }, -- { 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0 }, -- { 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0 }, -- { 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0 }, -- { 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0 }, -- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, -- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, -- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } --}; -- -- -- -- --#if 0 /* drand48 might be better on Unix machines */ --#define RANDOM_RANGE(lo, hi) ((lo) + (hi - lo) * drand48()) --#else --static float float_rand(void) { return rand() / (float) RAND_MAX; } --#define RANDOM_RANGE(lo, hi) ((lo) + (hi - lo) * float_rand()) --#endif -- --#define MEAN_VELOCITY 3.0 --#define GRAVITY 2.0 -- --/* Modeling units of ground extent in each X and Z direction. */ --#define EDGE 12 -- --static void --makePointList(void) --{ -- float angle, velocity, direction; -- int i; -- -- motion = 1; -- for (i=0; i EDGE) { -- /* Particle has hit ground past the distance duration of -- the particles. Mark particle as dead. */ -- colorList[i] = NUM_COLORS; /* Not moving. */ -- continue; -- } -- -- pointVelocity[i][1] *= 0.8; /* 80% of previous up velocity. */ -- pointTime[i] = 0.0; /* Reset the particles sense of up time. */ -- } -- motion = 1; -- pointTime[i] += dt; -- } -- theTime += dt; -- if (!motion && !spin) { -- if (repeat) { -- makePointList(); -- } else { -- glutIdleFunc(NULL); -- } -- } --} -- --static void --idle(void) --{ -- updatePointList(); -- if (spin) { -- angle += 0.3; -- } -- glutPostRedisplay(); --} -- --static void --visible(int vis) --{ -- if (vis == GLUT_VISIBLE) { -- if (animate && (motion || spin)) { -- glutIdleFunc(idle); -- } -- } else { -- glutIdleFunc(NULL); -- } --} -- --static void --redraw(void) --{ -- int i; -- -- glDepthMask(GL_TRUE); -- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); -- -- glPushMatrix(); -- glRotatef(15.0, 1.0, 0.0, 0.0); -- glRotatef(angle, 0.0, 1.0, 0.0); -- -- -- /* Draw the floor. */ --/* glEnable(GL_TEXTURE_2D);*/ -- glColor3f(0.1, 0.5, 1.0); -- glBegin(GL_QUADS); -- glTexCoord2f(0.0, 0.0); -- glVertex3f(-EDGE, -0.05, -EDGE); -- glTexCoord2f(20.0, 0.0); -- glVertex3f(EDGE, -0.05, -EDGE); -- glTexCoord2f(20.0, 20.0); -- glVertex3f(EDGE, -0.05, EDGE); -- glTexCoord2f(0.0, 20.0); -- glVertex3f(-EDGE, -0.05, EDGE); -- glEnd(); -- -- /* Allow particles to blend with each other. */ -- glDepthMask(GL_FALSE); -- -- if (blend) -- glEnable(GL_BLEND); -- -- if (sprite) { -- glEnable(GL_TEXTURE_2D); --#ifdef GL_ARB_point_sprite -- glEnable(GL_POINT_SPRITE_ARB); --#endif -- } -- -- glColor3f(1,1,1); -- glBegin(GL_POINTS); -- for (i=0; i