summaryrefslogtreecommitdiff
path: root/progs/demos
diff options
context:
space:
mode:
Diffstat (limited to 'progs/demos')
-rw-r--r--progs/demos/cubemap.c16
-rw-r--r--progs/demos/fbo_firecube.c36
-rw-r--r--progs/demos/fogcoord.c2
-rw-r--r--progs/demos/fslight.c1
-rw-r--r--progs/demos/ipers.c2
-rw-r--r--progs/demos/morph3d.c3
-rw-r--r--progs/demos/multiarb.c16
-rw-r--r--progs/demos/projtex.c4
-rw-r--r--progs/demos/ray.c2
-rw-r--r--progs/demos/textures.c2
10 files changed, 72 insertions, 12 deletions
diff --git a/progs/demos/cubemap.c b/progs/demos/cubemap.c
index 015d50d86b..20332b1d96 100644
--- a/progs/demos/cubemap.c
+++ b/progs/demos/cubemap.c
@@ -59,6 +59,8 @@ static GLboolean supportFBO = GL_FALSE;
static GLboolean supportSeamless = GL_FALSE;
static GLboolean seamless = GL_FALSE;
static GLuint TexObj = 0;
+static GLint T0 = 0;
+static GLint Frames = 0;
static struct {
@@ -283,6 +285,20 @@ static void draw( void )
glPopMatrix();
glutSwapBuffers();
+
+ Frames++;
+
+ {
+ GLint t = glutGet(GLUT_ELAPSED_TIME);
+ if (t - T0 >= 5000) {
+ GLfloat seconds = (t - T0) / 1000.0;
+ GLfloat fps = Frames / seconds;
+ printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps);
+ fflush(stdout);
+ T0 = t;
+ Frames = 0;
+ }
+ }
}
diff --git a/progs/demos/fbo_firecube.c b/progs/demos/fbo_firecube.c
index 4e42924a09..b3f7e00e5a 100644
--- a/progs/demos/fbo_firecube.c
+++ b/progs/demos/fbo_firecube.c
@@ -938,7 +938,14 @@ reshape(int width, int height)
static void
init_fbotexture()
{
+ static const GLenum depthFormats[] = {
+ GL_DEPTH_COMPONENT,
+ GL_DEPTH_COMPONENT16,
+ GL_DEPTH_COMPONENT32
+ };
+ static int numDepthFormats = sizeof(depthFormats) / sizeof(depthFormats[0]);
GLint i;
+ GLenum stat;
/* gen framebuffer id, delete it, do some assertions, just for testing */
glGenFramebuffersEXT(1, &MyFB);
@@ -969,18 +976,31 @@ init_fbotexture()
/* make depth renderbuffer */
glGenRenderbuffersEXT(1, &DepthRB);
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, DepthRB);
- glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT16,
- TexWidth, TexHeight);
- CheckError(__LINE__);
+ /* we may have to try several formats */
+ for (i = 0; i < numDepthFormats; i++) {
+ glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, depthFormats[i],
+ TexWidth, TexHeight);
+ CheckError(__LINE__);
+
+ glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,
+ GL_RENDERBUFFER_EXT, DepthRB);
+ CheckError(__LINE__);
+ stat = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
+ if (stat == GL_FRAMEBUFFER_COMPLETE_EXT) {
+ break;
+ }
+ }
+
+ if (stat != GL_FRAMEBUFFER_COMPLETE_EXT) {
+ fprintf(stderr, "Error: unable to get usable FBO combination!\n");
+ exit(1);
+ }
+
glGetRenderbufferParameterivEXT(GL_RENDERBUFFER_EXT,
- GL_RENDERBUFFER_DEPTH_SIZE_EXT, &i);
+ GL_RENDERBUFFER_DEPTH_SIZE_EXT, &i);
CheckError(__LINE__);
printf("Depth renderbuffer size = %d bits\n", i);
- /* attach DepthRB to MyFB */
- glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,
- GL_RENDERBUFFER_EXT, DepthRB);
- CheckError(__LINE__);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
/*
diff --git a/progs/demos/fogcoord.c b/progs/demos/fogcoord.c
index 6f50993c98..7d5c11aabf 100644
--- a/progs/demos/fogcoord.c
+++ b/progs/demos/fogcoord.c
@@ -15,8 +15,6 @@
#define DEPTH 5.0f
-static PFNGLFOGCOORDPOINTEREXTPROC glFogCoordPointer_ext;
-
static GLfloat camz;
static GLint fogMode;
diff --git a/progs/demos/fslight.c b/progs/demos/fslight.c
index f0d76a4a06..acba3e9583 100644
--- a/progs/demos/fslight.c
+++ b/progs/demos/fslight.c
@@ -353,6 +353,7 @@ MakeSphere(void)
glNewList(SphereList, GL_COMPILE);
gluSphere(obj, 2.0f, 10, 5);
glEndList();
+ gluDeleteQuadric(obj);
}
static void
diff --git a/progs/demos/ipers.c b/progs/demos/ipers.c
index 5d82b0dc92..ed03673cb6 100644
--- a/progs/demos/ipers.c
+++ b/progs/demos/ipers.c
@@ -133,6 +133,8 @@ initdlists(void)
glEndList();
}
+
+ gluDeleteQuadric(obj);
}
static void
diff --git a/progs/demos/morph3d.c b/progs/demos/morph3d.c
index 6aca8270ff..01a06aba0f 100644
--- a/progs/demos/morph3d.c
+++ b/progs/demos/morph3d.c
@@ -887,5 +887,6 @@ int main(int argc, char **argv)
glutIdleFunc( idle_ );
glutDisplayFunc( draw );
glutMainLoop();
-
+
+ return 0;
}
diff --git a/progs/demos/multiarb.c b/progs/demos/multiarb.c
index 85c4e3a266..3d89d3a13e 100644
--- a/progs/demos/multiarb.c
+++ b/progs/demos/multiarb.c
@@ -27,6 +27,8 @@
#define ANIMATE 10
#define QUIT 100
+static GLint T0 = 0;
+static GLint Frames = 0;
static GLboolean Animate = GL_TRUE;
static GLint NumUnits = 1;
static GLboolean TexEnabled[8];
@@ -105,6 +107,20 @@ static void Display( void )
glPopMatrix();
glutSwapBuffers();
+
+ Frames++;
+
+ {
+ GLint t = glutGet(GLUT_ELAPSED_TIME);
+ if (t - T0 >= 5000) {
+ GLfloat seconds = (t - T0) / 1000.0;
+ GLfloat fps = Frames / seconds;
+ printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps);
+ fflush(stdout);
+ T0 = t;
+ Frames = 0;
+ }
+ }
}
diff --git a/progs/demos/projtex.c b/progs/demos/projtex.c
index 99154d7bdc..503cf5de08 100644
--- a/progs/demos/projtex.c
+++ b/progs/demos/projtex.c
@@ -245,6 +245,10 @@ loadImageTextures(void)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
}
glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, borderColor);
+
+ free(texData3);
+ free(texData4);
+ free(image);
}
}
diff --git a/progs/demos/ray.c b/progs/demos/ray.c
index c2d8e4f545..e9211aa339 100644
--- a/progs/demos/ray.c
+++ b/progs/demos/ray.c
@@ -834,6 +834,8 @@ initdlists(void)
gluQuadricTexture(obj, GL_TRUE);
gluSphere(obj, SPHERE_RADIUS, 16, 16);
glEndList();
+
+ gluDeleteQuadric(obj);
}
int
diff --git a/progs/demos/textures.c b/progs/demos/textures.c
index b7bf135d21..d94154a200 100644
--- a/progs/demos/textures.c
+++ b/progs/demos/textures.c
@@ -57,7 +57,7 @@ Idle(void)
{
Xrot = glutGet(GLUT_ELAPSED_TIME) * 0.02;
Yrot = glutGet(GLUT_ELAPSED_TIME) * 0.04;
- //Zrot += 2.0;
+ /*Zrot += 2.0;*/
glutPostRedisplay();
}