summaryrefslogtreecommitdiff
path: root/src/glu/mesa/glu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/glu/mesa/glu.c')
-rw-r--r--src/glu/mesa/glu.c294
1 files changed, 111 insertions, 183 deletions
diff --git a/src/glu/mesa/glu.c b/src/glu/mesa/glu.c
index 8ccacf5f7f..11d1cd8675 100644
--- a/src/glu/mesa/glu.c
+++ b/src/glu/mesa/glu.c
@@ -1,9 +1,9 @@
-/* $Id: glu.c,v 1.19 2000/01/07 07:22:48 brianp Exp $ */
+/* $Id: glu.c,v 1.20 2000/07/11 14:11:04 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
- * Copyright (C) 1999-2000 Brian Paul
+ * Copyright (C) 1995-2000 Brian Paul
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -21,108 +21,6 @@
*/
-/*
- * $Log: glu.c,v $
- * Revision 1.19 2000/01/07 07:22:48 brianp
- * updated version string
- *
- * Revision 1.18 1999/11/22 22:15:50 brianp
- * removed GLU_EXT_get_proc_address from ext strings
- *
- * Revision 1.17 1999/11/19 21:23:37 brianp
- * replace encounteed with encountered
- *
- * Revision 1.16 1999/10/27 09:47:41 brianp
- * disabled gluGetProcAddressEXT
- *
- * Revision 1.15 1999/09/19 02:03:19 tjump
- * More Win32 build compliance fixups
- *
- * Revision 1.14 1999/09/17 12:21:53 brianp
- * glGetProcAddressEXT changes to accomodate Win32 and non-Win32
- *
- * Revision 1.13 1999/09/17 03:17:18 tjump
- * Patch error fixup
- *
- * Revision 1.12 1999/09/17 03:07:28 tjump
- * Win32 build req't updates
- *
- * Revision 1.11 1999/09/17 01:00:38 brianp
- * fixed typo
- *
- * Revision 1.10 1999/09/17 00:06:14 brianp
- * gluGetProcAddressEXT change for C++ / BeOS
- *
- * Revision 1.9 1999/09/16 22:37:56 brianp
- * added some casts in gluGetProcAddressEXT()
- *
- * Revision 1.8 1999/09/16 16:53:28 brianp
- * clean-up of GLU_EXT_get_proc_address
- *
- * Revision 1.7 1999/09/14 00:11:40 brianp
- * added gluCheckExtension()
- *
- * Revision 1.6 1999/09/13 14:31:32 joukj
- *
- * strcmp needs the string.h
- *
- * Revision 1.5 1999/09/11 12:04:54 brianp
- * added 1.2 function to gluGetProcAddressEXT()
- *
- * Revision 1.4 1999/09/11 11:36:26 brianp
- * added GLU_EXT_get_proc_address
- *
- * Revision 1.3 1999/09/10 04:32:10 gareth
- * Fixed triangle output, recovery process termination.
- *
- * Revision 1.2 1999/09/10 02:03:31 gareth
- * Added GLU 1.3 tessellation (except winding rule code).
- *
- * Revision 1.1.1.1 1999/08/19 00:55:42 jtg
- * Imported sources
- *
- * Revision 1.13 1999/03/31 19:07:28 brianp
- * added GL_EXT_abgr to extensions
- *
- * Revision 1.12 1999/02/06 06:12:41 brianp
- * updated version string to 3.1
- *
- * Revision 1.11 1999/01/03 03:23:15 brianp
- * now using GLAPIENTRY and GLCALLBACK keywords (Ted Jump)
- *
- * Revision 1.10 1998/04/22 00:35:50 brianp
- * changed version to 3.0
- *
- * Revision 1.9 1997/12/09 03:03:32 brianp
- * changed version to 2.6
- *
- * Revision 1.8 1997/10/04 01:30:20 brianp
- * changed version to 2.5
- *
- * Revision 1.7 1997/08/13 01:25:21 brianp
- * changed version string to 2.4
- *
- * Revision 1.6 1997/07/24 01:28:44 brianp
- * changed precompiled header symbol from PCH to PC_HEADER
- *
- * Revision 1.5 1997/07/13 22:59:11 brianp
- * added const to viewport parameter of gluPickMatrix()
- *
- * Revision 1.4 1997/05/28 02:29:38 brianp
- * added support for precompiled headers (PCH), inserted APIENTRY keyword
- *
- * Revision 1.3 1997/04/12 16:19:02 brianp
- * changed version to 2.3
- *
- * Revision 1.2 1997/03/11 00:58:34 brianp
- * changed version to 2.2
- *
- * Revision 1.1 1996/09/27 01:19:39 brianp
- * Initial revision
- *
- */
-
-
#ifdef PC_HEADER
#include "all.h"
#else
@@ -148,9 +46,10 @@
-void GLAPIENTRY gluLookAt( GLdouble eyex, GLdouble eyey, GLdouble eyez,
- GLdouble centerx, GLdouble centery, GLdouble centerz,
- GLdouble upx, GLdouble upy, GLdouble upz )
+void GLAPIENTRY
+gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez,
+ GLdouble centerx, GLdouble centery, GLdouble centerz,
+ GLdouble upx, GLdouble upy, GLdouble upz)
{
GLdouble m[16];
GLdouble x[3], y[3], z[3];
@@ -162,8 +61,8 @@ void GLAPIENTRY gluLookAt( GLdouble eyex, GLdouble eyey, GLdouble eyez,
z[0] = eyex - centerx;
z[1] = eyey - centery;
z[2] = eyez - centerz;
- mag = sqrt( z[0]*z[0] + z[1]*z[1] + z[2]*z[2] );
- if (mag) { /* mpichler, 19950515 */
+ mag = sqrt(z[0] * z[0] + z[1] * z[1] + z[2] * z[2]);
+ if (mag) { /* mpichler, 19950515 */
z[0] /= mag;
z[1] /= mag;
z[2] /= mag;
@@ -175,28 +74,28 @@ void GLAPIENTRY gluLookAt( GLdouble eyex, GLdouble eyey, GLdouble eyez,
y[2] = upz;
/* X vector = Y cross Z */
- x[0] = y[1]*z[2] - y[2]*z[1];
- x[1] = -y[0]*z[2] + y[2]*z[0];
- x[2] = y[0]*z[1] - y[1]*z[0];
+ x[0] = y[1] * z[2] - y[2] * z[1];
+ x[1] = -y[0] * z[2] + y[2] * z[0];
+ x[2] = y[0] * z[1] - y[1] * z[0];
/* Recompute Y = Z cross X */
- y[0] = z[1]*x[2] - z[2]*x[1];
- y[1] = -z[0]*x[2] + z[2]*x[0];
- y[2] = z[0]*x[1] - z[1]*x[0];
+ y[0] = z[1] * x[2] - z[2] * x[1];
+ y[1] = -z[0] * x[2] + z[2] * x[0];
+ y[2] = z[0] * x[1] - z[1] * x[0];
/* mpichler, 19950515 */
/* cross product gives area of parallelogram, which is < 1.0 for
* non-perpendicular unit-length vectors; so normalize x, y here
*/
- mag = sqrt( x[0]*x[0] + x[1]*x[1] + x[2]*x[2] );
+ mag = sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]);
if (mag) {
x[0] /= mag;
x[1] /= mag;
x[2] /= mag;
}
- mag = sqrt( y[0]*y[0] + y[1]*y[1] + y[2]*y[2] );
+ mag = sqrt(y[0] * y[0] + y[1] * y[1] + y[2] * y[2]);
if (mag) {
y[0] /= mag;
y[1] /= mag;
@@ -204,47 +103,59 @@ void GLAPIENTRY gluLookAt( GLdouble eyex, GLdouble eyey, GLdouble eyez,
}
#define M(row,col) m[col*4+row]
- M(0,0) = x[0]; M(0,1) = x[1]; M(0,2) = x[2]; M(0,3) = 0.0;
- M(1,0) = y[0]; M(1,1) = y[1]; M(1,2) = y[2]; M(1,3) = 0.0;
- M(2,0) = z[0]; M(2,1) = z[1]; M(2,2) = z[2]; M(2,3) = 0.0;
- M(3,0) = 0.0; M(3,1) = 0.0; M(3,2) = 0.0; M(3,3) = 1.0;
+ M(0, 0) = x[0];
+ M(0, 1) = x[1];
+ M(0, 2) = x[2];
+ M(0, 3) = 0.0;
+ M(1, 0) = y[0];
+ M(1, 1) = y[1];
+ M(1, 2) = y[2];
+ M(1, 3) = 0.0;
+ M(2, 0) = z[0];
+ M(2, 1) = z[1];
+ M(2, 2) = z[2];
+ M(2, 3) = 0.0;
+ M(3, 0) = 0.0;
+ M(3, 1) = 0.0;
+ M(3, 2) = 0.0;
+ M(3, 3) = 1.0;
#undef M
- glMultMatrixd( m );
+ glMultMatrixd(m);
/* Translate Eye to Origin */
- glTranslated( -eyex, -eyey, -eyez );
+ glTranslated(-eyex, -eyey, -eyez);
}
-void GLAPIENTRY gluOrtho2D( GLdouble left, GLdouble right,
- GLdouble bottom, GLdouble top )
+void GLAPIENTRY
+gluOrtho2D(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top)
{
- glOrtho( left, right, bottom, top, -1.0, 1.0 );
+ glOrtho(left, right, bottom, top, -1.0, 1.0);
}
-void GLAPIENTRY gluPerspective( GLdouble fovy, GLdouble aspect,
- GLdouble zNear, GLdouble zFar )
+void GLAPIENTRY
+gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar)
{
GLdouble xmin, xmax, ymin, ymax;
- ymax = zNear * tan( fovy * M_PI / 360.0 );
+ ymax = zNear * tan(fovy * M_PI / 360.0);
ymin = -ymax;
xmin = ymin * aspect;
xmax = ymax * aspect;
- glFrustum( xmin, xmax, ymin, ymax, zNear, zFar );
+ glFrustum(xmin, xmax, ymin, ymax, zNear, zFar);
}
-void GLAPIENTRY gluPickMatrix( GLdouble x, GLdouble y,
- GLdouble width, GLdouble height,
- const GLint viewport[4] )
+void GLAPIENTRY
+gluPickMatrix(GLdouble x, GLdouble y,
+ GLdouble width, GLdouble height, const GLint viewport[4])
{
GLfloat m[16];
GLfloat sx, sy;
@@ -256,18 +167,31 @@ void GLAPIENTRY gluPickMatrix( GLdouble x, GLdouble y,
ty = (viewport[3] + 2.0 * (viewport[1] - y)) / height;
#define M(row,col) m[col*4+row]
- M(0,0) = sx; M(0,1) = 0.0; M(0,2) = 0.0; M(0,3) = tx;
- M(1,0) = 0.0; M(1,1) = sy; M(1,2) = 0.0; M(1,3) = ty;
- M(2,0) = 0.0; M(2,1) = 0.0; M(2,2) = 1.0; M(2,3) = 0.0;
- M(3,0) = 0.0; M(3,1) = 0.0; M(3,2) = 0.0; M(3,3) = 1.0;
+ M(0, 0) = sx;
+ M(0, 1) = 0.0;
+ M(0, 2) = 0.0;
+ M(0, 3) = tx;
+ M(1, 0) = 0.0;
+ M(1, 1) = sy;
+ M(1, 2) = 0.0;
+ M(1, 3) = ty;
+ M(2, 0) = 0.0;
+ M(2, 1) = 0.0;
+ M(2, 2) = 1.0;
+ M(2, 3) = 0.0;
+ M(3, 0) = 0.0;
+ M(3, 1) = 0.0;
+ M(3, 2) = 0.0;
+ M(3, 3) = 1.0;
#undef M
- glMultMatrixf( m );
+ glMultMatrixf(m);
}
-const GLubyte* GLAPIENTRY gluErrorString( GLenum errorCode )
+const GLubyte *GLAPIENTRY
+gluErrorString(GLenum errorCode)
{
static char *tess_error[] = {
"missing gluBeginPolygon",
@@ -320,48 +244,48 @@ const GLubyte* GLAPIENTRY gluErrorString( GLenum errorCode )
};
/* GL Errors */
- if (errorCode==GL_NO_ERROR) {
+ if (errorCode == GL_NO_ERROR) {
return (GLubyte *) "no error";
}
- else if (errorCode==GL_INVALID_VALUE) {
+ else if (errorCode == GL_INVALID_VALUE) {
return (GLubyte *) "invalid value";
}
- else if (errorCode==GL_INVALID_ENUM) {
+ else if (errorCode == GL_INVALID_ENUM) {
return (GLubyte *) "invalid enum";
}
- else if (errorCode==GL_INVALID_OPERATION) {
+ else if (errorCode == GL_INVALID_OPERATION) {
return (GLubyte *) "invalid operation";
}
- else if (errorCode==GL_STACK_OVERFLOW) {
+ else if (errorCode == GL_STACK_OVERFLOW) {
return (GLubyte *) "stack overflow";
}
- else if (errorCode==GL_STACK_UNDERFLOW) {
+ else if (errorCode == GL_STACK_UNDERFLOW) {
return (GLubyte *) "stack underflow";
}
- else if (errorCode==GL_OUT_OF_MEMORY) {
+ else if (errorCode == GL_OUT_OF_MEMORY) {
return (GLubyte *) "out of memory";
}
/* GLU Errors */
- else if (errorCode==GLU_NO_ERROR) {
+ else if (errorCode == GLU_NO_ERROR) {
return (GLubyte *) "no error";
}
- else if (errorCode==GLU_INVALID_ENUM) {
+ else if (errorCode == GLU_INVALID_ENUM) {
return (GLubyte *) "invalid enum";
}
- else if (errorCode==GLU_INVALID_VALUE) {
+ else if (errorCode == GLU_INVALID_VALUE) {
return (GLubyte *) "invalid value";
}
- else if (errorCode==GLU_OUT_OF_MEMORY) {
+ else if (errorCode == GLU_OUT_OF_MEMORY) {
return (GLubyte *) "out of memory";
}
- else if (errorCode==GLU_INCOMPATIBLE_GL_VERSION) {
+ else if (errorCode == GLU_INCOMPATIBLE_GL_VERSION) {
return (GLubyte *) "incompatible GL version";
}
- else if (errorCode>=GLU_TESS_ERROR1 && errorCode<=GLU_TESS_ERROR8) {
- return (GLubyte *) tess_error[errorCode-GLU_TESS_ERROR1];
+ else if (errorCode >= GLU_TESS_ERROR1 && errorCode <= GLU_TESS_ERROR8) {
+ return (GLubyte *) tess_error[errorCode - GLU_TESS_ERROR1];
}
- else if (errorCode>=GLU_NURBS_ERROR1 && errorCode<=GLU_NURBS_ERROR37) {
- return (GLubyte *) nurbs_error[errorCode-GLU_NURBS_ERROR1];
+ else if (errorCode >= GLU_NURBS_ERROR1 && errorCode <= GLU_NURBS_ERROR37) {
+ return (GLubyte *) nurbs_error[errorCode - GLU_NURBS_ERROR1];
}
else {
return NULL;
@@ -374,58 +298,60 @@ const GLubyte* GLAPIENTRY gluErrorString( GLenum errorCode )
* New in GLU 1.1
*/
-const GLubyte* GLAPIENTRY gluGetString( GLenum name )
+const GLubyte *GLAPIENTRY
+gluGetString(GLenum name)
{
static char *extensions = "GL_EXT_abgr";
- static char *version = "1.2 Mesa 3.3 beta";
+ static char *version = "1.1 Mesa 3.2.1";
switch (name) {
- case GLU_EXTENSIONS:
- return (GLubyte *) extensions;
- case GLU_VERSION:
- return (GLubyte *) version;
- default:
- return NULL;
+ case GLU_EXTENSIONS:
+ return (GLubyte *) extensions;
+ case GLU_VERSION:
+ return (GLubyte *) version;
+ default:
+ return NULL;
}
}
-#if 0 /* gluGetProcAddressEXT not finalized yet! */
+#if 0 /* gluGetProcAddressEXT not finalized yet! */
#ifdef __cplusplus
/* for BeOS R4.5 */
- void GLAPIENTRY (*gluGetProcAddressEXT(const GLubyte *procName))(...)
+void GLAPIENTRY(*gluGetProcAddressEXT(const GLubyte * procName)) (...)
#else
- void (GLAPIENTRY *gluGetProcAddressEXT(const GLubyte *procName))()
+void (GLAPIENTRY * gluGetProcAddressEXT(const GLubyte * procName)) ()
#endif
{
- struct proc {
+ struct proc
+ {
const char *name;
void *address;
};
static struct proc procTable[] = {
- { "gluGetProcAddressEXT", (void *) gluGetProcAddressEXT }, /* me! */
+ {"gluGetProcAddressEXT", (void *) gluGetProcAddressEXT}, /* me! */
/* new 1.1 functions */
- { "gluGetString", (void *) gluGetString },
+ {"gluGetString", (void *) gluGetString},
/* new 1.2 functions */
- { "gluTessBeginPolygon", (void *) gluTessBeginPolygon },
- { "gluTessBeginContour", (void *) gluTessBeginContour },
- { "gluTessEndContour", (void *) gluTessEndContour },
- { "gluTessEndPolygon", (void *) gluTessEndPolygon },
- { "gluGetTessProperty", (void *) gluGetTessProperty },
+ {"gluTessBeginPolygon", (void *) gluTessBeginPolygon},
+ {"gluTessBeginContour", (void *) gluTessBeginContour},
+ {"gluTessEndContour", (void *) gluTessEndContour},
+ {"gluTessEndPolygon", (void *) gluTessEndPolygon},
+ {"gluGetTessProperty", (void *) gluGetTessProperty},
/* new 1.3 functions */
- { NULL, NULL }
+ {NULL, NULL}
};
GLuint i;
for (i = 0; procTable[i].address; i++) {
if (strcmp((const char *) procName, procTable[i].name) == 0)
- return (void (GLAPIENTRY *)()) procTable[i].address;
+ return (void (GLAPIENTRY *) ()) procTable[i].address;
}
return NULL;
@@ -438,8 +364,9 @@ const GLubyte* GLAPIENTRY gluGetString( GLenum name )
/*
* New in GLU 1.3
*/
+#ifdef GLU_VERSION_1_3
GLboolean GLAPIENTRY
-gluCheckExtension( const char *extName, const GLubyte *extString )
+gluCheckExtension(const char *extName, const GLubyte * extString)
{
assert(extName);
assert(extString);
@@ -448,14 +375,15 @@ gluCheckExtension( const char *extName, const GLubyte *extString )
const char *start = (const char *) extString;
while (1) {
- const char *c = strstr( start, extName );
- if (!c)
- return GL_FALSE;
+ const char *c = strstr(start, extName);
+ if (!c)
+ return GL_FALSE;
- if ((c == start || c[-1] == ' ') && (c[len] == ' ' || c[len] == 0))
- return GL_TRUE;
+ if ((c == start || c[-1] == ' ') && (c[len] == ' ' || c[len] == 0))
+ return GL_TRUE;
- start = c + len;
+ start = c + len;
}
}
}
+#endif