summaryrefslogtreecommitdiff
path: root/progs/demos/stex3d.c
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2000-03-22 19:48:57 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2000-03-22 19:48:57 +0000
commit49dcae8c805b45ee6f66ea8152ce4c56a890f32d (patch)
treee16e8acef339a50c61c0dc94801639c3e2e63863 /progs/demos/stex3d.c
parentd21cdb6d84c75b56b482d605f4848aa4912e89e3 (diff)
converted from GL_EXT_texture3D to GL 1.2
Diffstat (limited to 'progs/demos/stex3d.c')
-rw-r--r--progs/demos/stex3d.c60
1 files changed, 23 insertions, 37 deletions
diff --git a/progs/demos/stex3d.c b/progs/demos/stex3d.c
index 114ba9a24f..2350532c98 100644
--- a/progs/demos/stex3d.c
+++ b/progs/demos/stex3d.c
@@ -1,4 +1,4 @@
-/* $Id: stex3d.c,v 1.3 1999/12/16 08:54:22 brianp Exp $ */
+/* $Id: stex3d.c,v 1.4 2000/03/22 19:48:57 brianp Exp $ */
/*-----------------------------
* stex3d.c GL example of the mesa 3d-texture extention to simulate procedural
@@ -17,6 +17,9 @@
/*
* $Log: stex3d.c,v $
+ * Revision 1.4 2000/03/22 19:48:57 brianp
+ * converted from GL_EXT_texture3D to GL 1.2
+ *
* Revision 1.3 1999/12/16 08:54:22 brianp
* added a cast to malloc call
*
@@ -56,7 +59,6 @@ void init(void),
initNoise(void);
float turbulence(float point[3], float lofreq, float hifreq);
-int isExtSupported(char *ext);
void KeyHandler( unsigned char key, int x, int y );
GLenum parseCmdLine(int argc, char **argv);
float noise3(float vec[3]);
@@ -124,17 +126,20 @@ void init()
/* start the noise function variables */
initNoise();
- /* see if the texture 3d extention is supported */
- if (!isExtSupported("GL_EXT_texture3D")) {
- printf("Sorry this GL implementation (%s) does not support 3d texture extentions\n",
- (char *)(glGetString(GL_RENDERER)));
-/* tkQuit();*/
+ /* see if we have OpenGL 1.2 or later, for 3D texturing */
+ {
+ const char *version = (const char *) glGetString(GL_VERSION);
+ if (strncmp(version, "1.0", 3) == 0 ||
+ strncmp(version, "1.1", 3) == 0) {
+ printf("Sorry, OpenGL 1.2 or later is required\n");
+ exit(1);
+ }
}
/* if texture is supported then generate the texture */
create3Dtexture();
- glEnable(GL_TEXTURE_3D_EXT);
+ glEnable(GL_TEXTURE_3D);
/*
glBlendFunc(GL_SRC_COLOR, GL_SRC_ALPHA);
glEnable(GL_BLEND);
@@ -252,39 +257,20 @@ void create3Dtexture()
printf("setting up 3d texture...\n");
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glTexParameteri(GL_TEXTURE_3D_EXT, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_3D_EXT, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_3D_EXT, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_3D_EXT, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_3D_EXT, GL_TEXTURE_WRAP_R_EXT, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_REPEAT);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
- glTexImage3DEXT(GL_TEXTURE_3D_EXT, 0, GL_RGBA,
- tex_width, tex_height, tex_depth,
- 0, GL_RGBA, GL_UNSIGNED_BYTE, voxels);
+ glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA,
+ tex_width, tex_height, tex_depth,
+ 0, GL_RGBA, GL_UNSIGNED_BYTE, voxels);
printf("finished setting up 3d texture image...\n");
}
-int isExtSupported(char *ext)
-{
- /* routine to find whether a specified OpenGL extension is supported */
-
- char *c;
- int len;
- char *allext = (char *)(glGetString(GL_EXTENSIONS));
-
- len = strlen(ext);
- if (len <= 0) return 0;
-
- c = allext;
- while (c) {
- if (!strncmp(c,ext,len)) return 1;
- c = strchr(c+1,'G');
- }
- return 0;
-}
-
void printHelp()
{
printf("\nUsage: stex3d <cmd line options>\n");
@@ -435,10 +421,10 @@ void KeyHandler( unsigned char key, int x, int y )
angz-=10;
break;
case 't':
- glEnable(GL_TEXTURE_3D_EXT);
+ glEnable(GL_TEXTURE_3D);
break;
case 'T':
- glDisable(GL_TEXTURE_3D_EXT);
+ glDisable(GL_TEXTURE_3D);
break;
case 's':
glShadeModel(GL_SMOOTH);