Compare commits

...

85 Commits

Author SHA1 Message Date
Brian Paul
a340c4f6ef disable blocks of GGI code so it at least compiles instead of bombing 2001-12-18 05:09:51 +00:00
Brian Paul
781f27575c added prototype glutGetProcAddress() function 2001-12-17 19:48:23 +00:00
Brian Paul
08e126fba6 Texture type is GLuint 2001-12-17 19:45:21 +00:00
Brian Paul
b03241a552 put the .type stuff on a separate line 2001-12-17 19:44:54 +00:00
Brian Paul
e4efc983bd minor update 2001-12-17 19:43:38 +00:00
Brian Paul
785bfd0c1e remove conditional in RESET_STIPPLE to fix conformance failure 2001-12-17 01:46:38 +00:00
Brian Paul
a0e4612f49 added normal length cache bug fix 2001-12-15 00:50:55 +00:00
Brian Paul
f6e1618f97 free the NormalLengthPtr if non-null in _tnl_free_immediate() 2001-12-15 00:48:41 +00:00
Karl Schultz
3a450fb4b0 Use $(MAKE) on the irix targets, instead of hard-coding pmake,
as suggested in SF bug 482149.  People can still use
pmake -v -f Makefile.X11 if they want to use pmake (works great for me).
Sorry, this should have been in the last check-in.
2001-12-14 17:46:20 +00:00
Karl Schultz
43daa03ac1 Add .cc as a valid suffix. 2001-12-14 17:18:08 +00:00
Karl Schultz
cb69912494 Cleanup for IRIX 6 platforms. Build src-glu instead of si-glu due
to problems with building the c++ code in the si-glu.
2001-12-14 17:11:46 +00:00
Karl Schultz
b4518ee5d4 Fix up targets for
irix6-o32, irix6-o32-dso, irix6-n32, irix6-n32-dso
2001-12-14 16:40:35 +00:00
Karl Schultz
6ef05c2817 Remove rules that were put into place to deal with compiling files that
are in subdirectories of this directory.  The list of rules that were here
was out of date for Mesa 4 and would likely get out of date again.  It is
better to have make handle it (e.g., use pmake -v on IRIX).
2001-12-14 16:33:06 +00:00
Brian Paul
26d31abd87 s/glxGetProcAddress/glXGetProcAddressARB/ 2001-12-14 11:39:39 +00:00
Brian Paul
7702362bda added GLX_SAMPLE_BUFFERS and GLX_SAMPLES 2001-12-14 03:20:57 +00:00
Karl Schultz
5141607357 Remove const from save_TexParameteri to match prototype for glTexParameteri.
Allows compilation on IRIX.
2001-12-13 19:55:00 +00:00
Brian Paul
a9e14e7bb9 added feedback bug fix item 2001-12-13 19:13:55 +00:00
Brian Paul
5196a16629 fixed errors in feedback for glDraw/CopyPixels and glBitmap 2001-12-13 19:12:30 +00:00
Karl Schultz
7f37280955 Add missing entry points 2001-12-13 19:07:28 +00:00
Brian Paul
986b7ec195 added optimized blending item 2001-12-13 16:24:28 +00:00
Brian Paul
9012185ae8 special case blend optmizations (Jeremy Fitzhardinge) 2001-12-13 16:14:17 +00:00
Brian Paul
2edf851932 added glTexParameter bug fix 2001-12-13 16:03:06 +00:00
Brian Paul
1703b67ee0 call FLUSH_VERTICES() in _mesaTexParameterfv() (bug 491832) 2001-12-13 16:02:32 +00:00
Brian Paul
9342fbe46e latest bug fixes 2001-12-13 14:18:46 +00:00
Keith Whitwell
2f88c5fbd4 fix primitive calculation in 1-line dlist immediates (molecules) 2001-12-13 10:57:55 +00:00
Keith Whitwell
dc35f387ca fix for ubyte colors 2001-12-13 10:57:41 +00:00
Keith Whitwell
597ec4040c fix glut tess lockup 2001-12-11 15:12:57 +00:00
Keith Whitwell
51aa3d2f30 Add INF_OR_NAN tests to swrast functions 2001-12-05 10:22:55 +00:00
Keith Whitwell
0c1f42ef29 further tweak to dlist change 2001-12-04 13:04:05 +00:00
Keith Whitwell
06ae58eebb remove debug 2001-12-03 17:59:36 +00:00
Keith Whitwell
d8deb468f7 guard ResetStipple calls 2001-12-03 17:49:01 +00:00
Keith Whitwell
4aac60f691 fx another place where PRIM_PARITY is calculated 2001-12-03 17:46:57 +00:00
Keith Whitwell
e20d35d74a correctly reset input after dlist execution 2001-12-03 17:44:02 +00:00
Keith Whitwell
ed26c2d950 remove debug 2001-12-03 17:40:43 +00:00
Keith Whitwell
95681b4a85 avoid side-effects in macro param 2001-12-03 17:39:09 +00:00
Karl Schultz
17a5135fee Add darwin target 2001-11-30 20:18:41 +00:00
Karl Schultz
69b71bc1ab malloc() prototype is in stdlib.h for darwin 2001-11-30 20:12:38 +00:00
Alan Hourihane
9f6957e702 Don't reset the _tnl_CurrentInput pointer on DestroyContext. 2001-11-30 15:42:32 +00:00
Karl Schultz
bf78731523 update version string to 4.0 2001-11-29 22:56:10 +00:00
Karl Schultz
c527df81df update updated date 2001-11-29 16:54:32 +00:00
Karl Schultz
ca2315d95b Update notes about si-glu NURBS code. 2001-11-29 16:53:16 +00:00
Karl Schultz
c4dd9e2a03 Fix compilation errors and warnings for NURBS support. (Robert Bergkvist) 2001-11-29 16:38:26 +00:00
Keith Whitwell
34174976c4 use smaller buffer when decomposing large drawarrays, for cache goodness 2001-11-29 15:15:11 +00:00
Brian Paul
ff23c15bdc updated comment about CHAN_BITS 2001-11-28 17:18:20 +00:00
Brian Paul
eb0ce107c7 use v2 color, not v0 in flat_ci_triangle() 2001-11-28 16:11:14 +00:00
Keith Whitwell
bfe6c71b99 update vendor string 2001-11-28 11:54:45 +00:00
Brian Paul
69f2ff5f38 added triangle parity bug fix and GLUT glXGetProcAddressARB item 2001-11-27 02:58:01 +00:00
Brian Paul
f28c19da41 use glXGetProcAddressARB to avoid extension linkage problems 2001-11-27 02:50:55 +00:00
Brian Paul
c132ca9774 don't directly call glSecondaryColor*EXT() or glFogCoord*EXT() 2001-11-26 23:45:36 +00:00
Brian Paul
8ca1772d4a fix some warnings 2001-11-26 17:21:24 +00:00
Keith Whitwell
ff5fe4836a Possible fix for vtk tristrip bug 2001-11-26 12:55:12 +00:00
Brian Paul
f88e0898a1 fixed some GLenum/GLuint mixups 2001-11-25 18:54:45 +00:00
Brian Paul
3f2eedd634 bump version to 4.0.1 2001-11-25 18:50:19 +00:00
Brian Paul
158c7413fb updates for 4.0.1 2001-11-23 20:47:25 +00:00
Brian Paul
0a96860e04 attempted fix for bug 474479 2001-11-23 20:43:32 +00:00
Keith Whitwell
37b10249e5 Fix decomposition of quads/quad-strips to indexed tris 2001-11-22 13:56:25 +00:00
Keith Whitwell
589cee71b8 Another locked drawarrays fix 2001-11-22 09:23:31 +00:00
Brian Paul
c6dcd5c4cf added CVA and glapi_sparc.S bug fixes 2001-11-20 00:08:17 +00:00
Brian Paul
e1ec4771f1 fixed Solaris/GCC compilation problems 2001-11-20 00:06:25 +00:00
Keith Whitwell
917e942fe2 3dnow normalize_normals function isn't working - disable it. 2001-11-19 13:50:35 +00:00
Keith Whitwell
f427427ca8 possible fix for cva ignore start index bug 2001-11-19 10:20:37 +00:00
Brian Paul
7ed97d4ef4 added latest bug fixes for 4.0.1 2001-11-18 23:25:35 +00:00
Brian Paul
267b9cc082 fixed a few missing entries for GetProcAddress() 2001-11-18 23:24:49 +00:00
Brian Paul
efb678da77 added missing const to glXGetContextIDEXT() prototype 2001-11-18 22:16:35 +00:00
Brian Paul
32aa05bfd6 added -Bsymbolic item 2001-11-15 19:50:24 +00:00
Brian Paul
299a71fe04 added better sub-pixel AA item 2001-11-13 00:26:07 +00:00
Brian Paul
63da26bd62 improved AA subpixel sample positions (Ray Tice) 2001-11-13 00:24:51 +00:00
Brian Paul
dfb7ebf8a0 added latest post-4.0 bug fixes 2001-11-09 22:05:10 +00:00
Brian Paul
64681c1f82 fix typedef problem found with MSDev 6.0 2001-11-09 22:03:54 +00:00
Brian Paul
8c3149f250 added GLX 1.4 function manglers 2001-11-09 22:00:26 +00:00
Brian Paul
53e284bda1 added 1.3 function manglers 2001-11-09 21:59:18 +00:00
Brian Paul
f46ce82219 define GL_VERSION_1_3 (doh!) 2001-11-09 21:54:05 +00:00
Brian Paul
4256cf0175 casts to silence warnings from gcc 2.96 2001-11-06 16:00:58 +00:00
Brian Paul
986749a4ea added GL_MAX_TEXTURE_LOD_BIAS_EXT fix 2001-11-06 15:53:25 +00:00
Brian Paul
07042d164b added missing GL_MAX_TEXTURE_LOD_BIAS_EXT query 2001-11-06 15:51:06 +00:00
Brian Paul
0739d6f158 fix error in error checking conditional (bug 476846) 2001-11-03 04:10:08 +00:00
Brian Paul
2fd7a602a7 added hash table mutex bug fix 2001-11-02 00:58:32 +00:00
Brian Paul
f97edb4ca3 init the hash table mutex in _mesa_NewHashTable (Won-Suk Chun) 2001-11-02 00:56:45 +00:00
Karl Schultz
3b0571dd5c Updates for improved DirectDraw support (Daniel Slater) 2001-11-01 22:52:18 +00:00
Brian Paul
c25f068355 added some (void *) casts to silence gcc 2.96 warnings 2001-11-01 00:38:37 +00:00
Keith Whitwell
3a05f42b28 add linux-x11-debug build target 2001-10-30 16:00:20 +00:00
Karl Schultz
2631c2a2de Change name of glut lib from glut32 to MesaGlut.
This helps avoid confusion with other gluts on the system that may be
lined with OpenGl32.dll and Glu32.dll.
2001-10-26 21:22:40 +00:00
Karl Schultz
b2728086ec Copy ../util/readtex.[ch] 2001-10-26 21:03:15 +00:00
Brian Paul
2e7644f13d bug fix: missing breaks in glGet*() 2001-10-25 23:21:52 +00:00
Brian Paul
9c3e7d2294 added a bunch of missing breaks for multisample gets 2001-10-25 23:21:11 +00:00
88 changed files with 2966 additions and 816 deletions

View File

@@ -1,7 +1,7 @@
# $Id: Make-config,v 1.51 2001/10/22 22:45:18 brianp Exp $
# $Id: Make-config,v 1.50.2.4 2001/12/14 17:46:20 kschultz Exp $
MESA_MAJOR=4
MESA_MINOR=1
MESA_MINOR=0
MESA_TINY=0
VERSION=$(MESA_MAJOR).$(MESA_MINOR)
@@ -178,6 +178,25 @@ cygnus-linux:
"MAKELIB = ../bin/mklib.cygnus-linux" \
"WLIBS = ../lib/wing32.a -lkernel32 -luser32 -lgdi32"
darwin:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.dylib" \
"GLU_LIB = libGLU.dylib" \
"GLUT_LIB = libglut.dylib" \
"GLW_LIB = libGLw.dylib" \
"OSMESA_LIB = libOSMesa.dylib" \
"CC = cc" \
"CPLUSPLUS = cc" \
"CFLAGS = -I/usr/X11R6/include -O3 -fPIC -fno-common -ffast-math \
-funroll-loops -fexpensive-optimizations -no-cpp-precomp \
-dynamic -Ddarwin" \
"CCFLAGS = $(CFLAGS)" \
"MAKELIB = ../bin/mklib.darwin" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL \
-L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm"
dgux:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
@@ -344,7 +363,7 @@ hpux10-gcc-sl:
# For IRIX 4: don't use -fullwarn because it causes too much garbage
irix4:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
@@ -357,7 +376,7 @@ irix4:
# On IRIX 5.3 -sopt causes a problem in drawpixels.c so we don't use it
irix5:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
@@ -385,7 +404,7 @@ irix5-gcc:
# IRIX 5 using Dynamic Shared Objects (DSO)
irix5-dso:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
@@ -396,34 +415,46 @@ irix5-dso:
"MAKELIB = ../bin/mklib.irix5" \
"APP_LIB_DEPS = -rpath ../lib -lX11 -lXmu -lXi -lm"
# IRIX 6 32-bit Targets
# Turn Warnings off for these errors (MIPSpro Compiler 7.30)
# 1521: A nonstandard preprocessing directive is used.
# 1552: The variable "" is set but never used.
# C++
# 3262: The variable "" was declared but never referenced.
# 3666: The variable "" is set but never used.
# Use -v if using pmake to compile files in subdirectories.
irix6-o32:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
"GLW_LIB = libGLw.a" \
"OSMESA_LIB = libOSMesa.a" \
"LIBDIR = ../lib32" \
"CC = cc" \
"CFLAGS = -32 -mips2 -O2 -ansi -DUSE_XSHM -DNO_CONST" \
"CPLUSPLUS = CC" \
"CFLAGS = -32 -mips2 -O2 -ansi -woff 1521,1552 -DUSE_XSHM" \
"CCFLAGS = -32 -mips2 -O2 -ansi -woff 3262,3666" \
"MAKELIB = ../bin/mklib.ar-rcv" \
"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm"
irix6-o32-dso:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"OSMESA_LIB = libOSMesa.so" \
"LIBDIR = ../lib32" \
"CC = cc" \
"CFLAGS = -32 -mips2 -O2 -ansi -DUSE_XSHM -DNO_CONST" \
"CPLUSPLUS = CC" \
"CFLAGS = -32 -mips2 -O2 -ansi -woff 1521,1552 -DUSE_XSHM" \
"CCFLAGS = -32 -mips2 -O2 -ansi -woff 3262,3666" \
"MAKELIB = ../bin/mklib.irix6-32" \
"APP_LIB_DEPS = -rpath ../lib -lX11 -lXext -lXmu -lXi -lm"
"APP_LIB_DEPS = -rpath ../lib32 -lX11 -lXext -lXmu -lXi -lm"
# For IRIX 6: -woff:
# 1209 - controlling expression is constant
irix6-n32:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
@@ -431,20 +462,24 @@ irix6-n32:
"OSMESA_LIB = libOSMesa.a" \
"LIBDIR = ../lib32" \
"CC = cc" \
"CFLAGS = -n32 -mips3 -O3 -ansi -woff 1209,1521" \
"CPLUSPLUS = CC" \
"CFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1521,1552 -DUSE_XSHM" \
"CCFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1552" \
"MAKELIB = ../bin/mklib.ar-rcv" \
"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm"
irix6-n32-dso:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.a" \
"OSMESA_LIB = libOSMesa.a" \
"GLW_LIB = libGLw.so" \
"OSMESA_LIB = libOSMesa.so" \
"LIBDIR = ../lib32" \
"CC = cc" \
"CFLAGS = -n32 -mips3 -O3 -ansi -DUSE_XSHM -woff 1185,1521" \
"CPLUSPLUS = CC" \
"CFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1521,1552 -DUSE_XSHM" \
"CCFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1552" \
"MAKELIB = ../bin/mklib.irix6-n32" \
"APP_LIB_DEPS = -rpath ../lib32 -lX11 -lXmu -lXi -lfpe -lm"
@@ -472,7 +507,7 @@ irix6-gcc-n32-sl:
# 1474 - declaring a void parameter list with a typedef is nonstandard
# 1552 - variable was set but never used
irix6-64:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
@@ -485,7 +520,7 @@ irix6-64:
"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm"
irix6-64-dso:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
@@ -1418,7 +1453,7 @@ vistra:
# -woff 1521 = "nonstandard preprocessing directive is used"
# -woff 3496 = "bitwise operator precedence"
irix-debug:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
@@ -1431,7 +1466,7 @@ irix-debug:
"APP_LIB_DEPS = -rpath ../lib32 -lX11 -lXext -lXmu -lXi -lfpe -lXext -lXmu -lXi -lm"
DEBUG:
pmake $(MFLAGS) -f Makefile.X11 targets \
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \
"GLU_LIB = libGLU.a" \
"GLUT_LIB = libglut.a" \
@@ -1460,6 +1495,24 @@ linux-debug:
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lglut -lGLU -lGL -L/usr/local/glide/lib -lglide2x"
linux-x11-debug:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.so" \
"GLU_LIB = libGLU.so" \
"GLUT_LIB = libglut.so" \
"GLW_LIB = libGLw.so" \
"OSMESA_LIB = libOSMesa.so" \
"CC = gcc" \
"CPLUSPLUS = g++" \
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DMESA_TRACE" \
"CCFLAGS = $(CFLAGS)" \
"MAKELIB = ../bin/mklib.linux" \
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread" \
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
"APP_LIB_DEPS = -lglut -lGLU -lGL"
linux-static-debug:
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
"GL_LIB = libGL.a" \

View File

@@ -1,7 +1,7 @@
# $Id: Makefile.X11,v 1.57 2001/10/22 22:45:18 brianp Exp $
# $Id: Makefile.X11,v 1.56.2.3 2001/12/14 17:11:46 kschultz Exp $
# Mesa 3-D graphics library
# Version: 4.1
# Version: 4.0
#
# Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
#
@@ -42,6 +42,7 @@ default:
@echo " make bsdos4 for BSD/OS 4.x, dynamic libraries"
@echo " make cygnus for Win95/NT using Cygnus-Win32"
@echo " make cygnus-linux for Win95/NT using Cygnus-Win32 under Linux"
@echo " make darwin for Darwin - Mac OS X"
@echo " make dgux for Data General"
@echo " make freebsd for FreeBSD systems with GCC"
@echo " make freebsd-386 for FreeBSD systems with GCC, w/ Intel assembly"
@@ -137,11 +138,11 @@ default:
# XXX we may have to split up this group of targets into those that
# have a C++ compiler and those that don't for the SI-GLU library.
aix aix-sl amix bsdos bsdos4 dgux freebsd freebsd-386 gcc \
aix aix-sl amix bsdos bsdos4 darwin dgux freebsd freebsd-386 gcc \
hpux9 hpux9-sl hpux9-gcc hpux9-gcc-sl \
hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \
irix4 irix5 irix5-gcc irix5-dso irix6-o32 irix6-o32-dso \
linux linux-static linux-debug linux-static-debug linux-prof \
irix4 irix5 irix5-gcc irix5-dso \
linux linux-static linux-debug linux-x11-debug linux-static-debug linux-prof \
linux-x86 linux-x86-static linux-x86-debug \
linux-glide linux-386-glide linux-386-opt-glide \
linux-x86-glide linux-glide-debug linux-glide-prof \
@@ -171,12 +172,11 @@ sunos5-x11r6-gcc-sl ultrix-gcc unicos unixware uwin vistra:
if [ -d book ] ; then cd book ; $(MAKE) -f Makefile.X11 $@ ; fi
if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi
irix6-n32 irix6-n32-dso irix6-gcc-n32-sl irix-debug:
irix6-o32 irix6-o32-dso irix6-n32 irix6-n32-dso irix6-gcc-n32-sl irix-debug:
-mkdir lib32
if [ -d src ] ; then touch src/depend ; fi
if [ -d src-glu ] ; then touch src-glu/depend ; fi
if [ -d src-glut ] ; then touch src-glut/depend ; fi
if [ -d src-glut ] ; then touch src-glut/depend ; fi
if [ -d widgets-sgi ] ; then touch widgets-sgi/depend ; fi
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.X11 $@ ; fi
if [ -d src-glu ] ; then cd src-glu ; $(MAKE) -f Makefile.X11 $@ ; fi
@@ -299,7 +299,6 @@ linux-osmesa16 linux-osmesa32:
-mkdir lib
if [ -d src ] ; then touch src/depend ; fi
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.OSMesa16 $@ ; fi
# Remove .o files, emacs backup files, etc.
clean:
@@ -322,13 +321,11 @@ clean:
# Remove everything that can be remade
realclean: clean
-rm -f lib/*
-rm -fr lib lib32 lib64
cd demos && $(MAKE) -f Makefile.X11 realclean || true
cd xdemos && $(MAKE) -f Makefile.X11 realclean || true
cd book && $(MAKE) -f Makefile.X11 realclean || true
cd samples && $(MAKE) -f Makefile.X11 realclean || true
cd ggi/demos && $(MAKE) -f Makefile.X11 realclean || true
cd src/GGI/default && $(MAKE) -f Makefile.X11 realclean || true

View File

@@ -1,6 +1,6 @@
File: docs/README.WIN32
Last updated: Oct 15, 2001 - Karl Schultz - kschultz@users.sourceforge.net
Last updated: Nov 29, 2001 - Karl Schultz - kschultz@users.sourceforge.net
Quick Start
@@ -52,10 +52,7 @@ Details and Notes
difficult to modify the makefiles to generate them.
- The si-glu sources are used to build the GLU libs. This was done
mainly to get the better tessellator code. However the C++ NURBS
code is not built. If you need NURBS, consider modifying the
makefiles to build the C++ code or try to build the older GLU
code in src-glu.
mainly to get the better tessellator code.
- The osmesa driver builds and should work on Windows as well as
any other platform.
@@ -68,11 +65,11 @@ Details and Notes
paths for the rasterizers. See src/osmesa/osmesa.c for some good
examples.
- There is DirectDraw support in the Windows driver, but I do not
know if it compiles or works. If you have an application that
does not draw much in a frame, but needs a higher framerate, then
it may pay to turn on the DirectDraw code, since DD often performs
the off-screen to on-screen blit faster than GDI.
- There is DirectDraw support in the Windows driver, updated by
Daniel Slater. You'll need to uncomment the #define DDRAW line
in src/Windows/wmesadef.h and add ddraw.lib to the list of libraries
in src/Makefile.win. On some systems, you will acheive significantly
higher framerates with DirectDraw.
- Some of the more specialized code like FX drivers, stereo, and
parallel support isn't compiled or tested. I left much of this

View File

@@ -1,5 +1,5 @@
Mesa 4.0 Unix/X11 Information
Mesa 4.0.1 Unix/X11 Information
@@ -25,7 +25,7 @@ There are two ways to compile Mesa on Unix/X11 systems:
The top-level makefile will execute the makefiles in a number of sub-
directories. When finished, the Mesa libraries will be in the Mesa-4.0/lib/
directories. When finished, the Mesa libraries will be in the Mesa-4.0.1/lib/
directory. A few GLUT demos in the demos/ directory should be ready to run.
If you also downloaded and unpacked the demos there should be executables
@@ -323,4 +323,4 @@ Summary of X-related environment variables:
----------------------------------------------------------------------
$Id: README.X11,v 3.8 2001/09/23 16:10:02 brianp Exp $
$Id: README.X11,v 3.8.2.1 2001/11/23 20:47:25 brianp Exp $

22
docs/RELNOTES-4.0.1 Normal file
View File

@@ -0,0 +1,22 @@
Mesa 4.0.1 release notes
December 17, 2001
PLEASE READ!!!!
Introduction
------------
Mesa uses an even/odd version number scheme like the Linux kernel.
Odd numbered versions (such as 3.3) designate new developmental releases.
Even numbered versions (such as 3.4) designate stable releases.
Mesa 4.0.1 only contains bug fixes since version 4.0.
See the docs/VERSIONS file for the list of bug fixes.
----------------------------------------------------------------------
$Id: RELNOTES-4.0.1,v 1.1.2.2 2001/12/17 19:43:38 brianp Exp $

View File

@@ -1,4 +1,4 @@
$Id: VERSIONS,v 1.74 2001/10/22 22:45:18 brianp Exp $
$Id: VERSIONS,v 1.73.2.14 2001/12/15 00:50:55 brianp Exp $
Mesa Version History
@@ -898,9 +898,29 @@ Mesa Version History
- lighting didn't always produce the correct alpha value
- fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
4.1 Month, ??, 2002
4.0.1 December 17, 2001
New:
-
- better sub-pixel sample positions for AA triangles (Ray Tice)
- slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
Bug fixes:
-
- added missing break statements in glGet*() for multisample cases
- fixed uninitialized hash table mutex bug (display lists / texobjs)
- fixed bad teximage error check conditional (bug 476846)
- fixed demos readtex.c compilation problem on Windows (Karl Schultz)
- added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT
- silence some compiler warnings (gcc 2.96)
- enable the #define GL_VERSION_1_3 in GL/gl.h
- added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h
- fixed glu.h typedef problem found with MSDev 6.0
- build libGL.so with -Bsymbolic (fixes bug found with Chromium)
- added missing 'const' to glXGetContextIDEXT() in glxext.h
- fixed a few glXGetProcAddress() errors (texture compression, etc)
- fixed start index bug in compiled vertex arrays (Keith)
- fixed compilation problems in src/SPARC/glapi_sparc.S
- fixed triangle strip "parity" bug found in VTK medical1 demo (Keith)
- use glXGetProcAddressARB in GLUT to avoid extension linking problems
- provoking vertex of flat-shaded, color-index triangles was wrong
- fixed a few display list bugs (GLUT walker, molecule, etc) (Keith)
- glTexParameter didn't flush the vertex buffer (Ray Tice)
- feedback attributes for glDraw/CopyPixels and glBitmap were wrong
- fixed bug in normal length caching (ParaView lighting bug)

View File

@@ -1,4 +1,4 @@
/* $Id: gl.h,v 1.59 2001/09/23 16:06:13 brianp Exp $ */
/* $Id: gl.h,v 1.59.2.1 2001/11/09 21:54:05 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -84,7 +84,7 @@ extern "C" {
#define GL_VERSION_1_1 1
#define GL_VERSION_1_2 1
/*#define GL_VERSION_1_3 1 not yet */
#define GL_VERSION_1_3 1
#define GL_ARB_imaging 1

View File

@@ -1,8 +1,8 @@
/* $Id: gl_mangle.h,v 1.7 2001/09/21 17:23:30 brianp Exp $ */
/* $Id: gl_mangle.h,v 1.7.2.2 2001/12/13 19:07:28 kschultz Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.0.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -557,6 +557,7 @@
#define glFogCoordPointerEXT mglFogCoordPointerEXT
#define glFogCoorddEXT mglFogCoorddEXT
#define glFogCoordfvEXT mglFogCoordfvEXT
#define glFogCoorddvEXT mglFogCoorddvEXT
#define glFogCoordfEXT mglFogCoordfEXT
#define glLightEnviSGIX mglLightEnviSGIX
#define glGetFragmentMaterialivSGIX mglGetFragmentMaterialivSGIX
@@ -616,6 +617,9 @@
#define glGetPixelTexGenParameterfvSGIS mglGetPixelTexGenParameterfvSGIS
#define glPixelTexGenParameteriSGIS mglPixelTexGenParameteriSGIS
#define glPixelTexGenParameterfSGIS mglPixelTexGenParameterfSGIS
#define glPixelTexGenParameterivSGIS mglPixelTexGenParameterivSGIS
#define glPixelTexGenParameterfvSGIS mglPixelTexGenParameterfvSGIS
#define glPixelTexGenSGIX mglPixelTexGenSGIX
#define glGetColorTableParameterivSGI mglGetColorTableParameterivSGI
#define glGetColorTableParameterfvSGI mglGetColorTableParameterfvSGI
#define glGetColorTableSGI mglGetColorTableSGI
@@ -676,6 +680,62 @@
#define glSecondaryColor3usEXT mglSecondaryColor3usEXT
#define glSecondaryColor3sEXT mglSecondaryColor3sEXT
/* 1.3 */
#define glActiveTexture mglActiveTexture
#define glClientActiveTexture mglClientActiveTexture
#define glSampleCoverage mglSampleCoverage
#define glSamplePass mglSamplePass
#define glMultTransposeMatrixf mglMultTransposeMatrixf
#define glMultTransposeMatrixd mglMultTransposeMatrixd
#define glLoadTransposeMatrixf mglLoadTransposeMatrixf
#define glLoadTransposeMatrixd mglLoadTransposeMatrixd
#define glGetCompressedTexImage mglGetCompressedTexImage
#define glGetCompressedTexImageARB mglGetCompressedTexImageARB
#define glCompressedTexSubImage3D mglCompressedTexSubImage3D
#define glCompressedTexSubImage2D mglCompressedTexSubImage2D
#define glCompressedTexSubImage1D mglCompressedTexSubImage1D
#define glCompressedTexImage3D mglCompressedTexImage3D
#define glCompressedTexImage2D mglCompressedTexImage2D
#define glCompressedTexImage1D mglCompressedTexImage1D
#define glCompressedTexSubImage3DARB mglCompressedTexSubImage3DARB
#define glCompressedTexSubImage2DARB mglCompressedTexSubImage2DARB
#define glCompressedTexSubImage1DARB mglCompressedTexSubImage1DARB
#define glCompressedTexImage3DARB mglCompressedTexImage3DARB
#define glCompressedTexImage2DARB mglCompressedTexImage2DARB
#define glCompressedTexImage1DARB mglCompressedTexImage1DARB
#define glMultiTexCoord1d mglMultiTexCoord1d
#define glMultiTexCoord1dv mglMultiTexCoord1dv
#define glMultiTexCoord1f mglMultiTexCoord1f
#define glMultiTexCoord1fv mglMultiTexCoord1fv
#define glMultiTexCoord1i mglMultiTexCoord1i
#define glMultiTexCoord1iv mglMultiTexCoord1iv
#define glMultiTexCoord1s mglMultiTexCoord1s
#define glMultiTexCoord1sv mglMultiTexCoord1sv
#define glMultiTexCoord2d mglMultiTexCoord2d
#define glMultiTexCoord2dv mglMultiTexCoord2dv
#define glMultiTexCoord2f mglMultiTexCoord2f
#define glMultiTexCoord2fv mglMultiTexCoord2fv
#define glMultiTexCoord2i mglMultiTexCoord2i
#define glMultiTexCoord2iv mglMultiTexCoord2iv
#define glMultiTexCoord2s mglMultiTexCoord2s
#define glMultiTexCoord2sv mglMultiTexCoord2sv
#define glMultiTexCoord3d mglMultiTexCoord3d
#define glMultiTexCoord3dv mglMultiTexCoord3dv
#define glMultiTexCoord3f mglMultiTexCoord3f
#define glMultiTexCoord3fv mglMultiTexCoord3fv
#define glMultiTexCoord3i mglMultiTexCoord3i
#define glMultiTexCoord3iv mglMultiTexCoord3iv
#define glMultiTexCoord3s mglMultiTexCoord3s
#define glMultiTexCoord3sv mglMultiTexCoord3sv
#define glMultiTexCoord4d mglMultiTexCoord4d
#define glMultiTexCoord4dv mglMultiTexCoord4dv
#define glMultiTexCoord4f mglMultiTexCoord4f
#define glMultiTexCoord4fv mglMultiTexCoord4fv
#define glMultiTexCoord4i mglMultiTexCoord4i
#define glMultiTexCoord4iv mglMultiTexCoord4iv
#define glMultiTexCoord4s mglMultiTexCoord4s
#define glMultiTexCoord4sv mglMultiTexCoord4sv
/* Internal symbols which may collide with other OpenGL implementations. */
#define __glCoreCreateContext __mglCoreCreateContext

View File

@@ -250,10 +250,10 @@ typedef struct GLUquadric GLUquadric;
typedef struct GLUtesselator GLUtesselator;
#endif
typedef struct GLUnurbs GLUnurbsObj;
typedef struct GLUquadric GLUquadricObj;
typedef struct GLUtesselator GLUtesselatorObj;
typedef struct GLUtesselator GLUtriangulatorObj;
typedef GLUnurbs GLUnurbsObj;
typedef GLUquadric GLUquadricObj;
typedef GLUtesselator GLUtesselatorObj;
typedef GLUtesselator GLUtriangulatorObj;
#define GLU_TESS_MAX_COORD 1.0e150

View File

@@ -1,4 +1,4 @@
/* $Id: glx.h,v 1.33 2001/09/24 14:15:58 brianp Exp $ */
/* $Id: glx.h,v 1.33.2.1 2001/12/14 03:20:57 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -172,8 +172,8 @@ extern "C" {
/*
* GLX 1.4 and later:
*/
#define GLX_SAMPLE_BUFFERS_SGIS 100000
#define GLX_SAMPLES_SGIS 100001
#define GLX_SAMPLE_BUFFERS 0x186a0 /*100000*/
#define GLX_SAMPLES 0x186a1 /*100001*/

View File

@@ -1,8 +1,8 @@
/* $Id: glx_mangle.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ */
/* $Id: glx_mangle.h,v 1.1.1.1.8.1 2001/11/09 22:00:26 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.0
* Version: 4.1
* Copyright (C) 1995-1998 Brian Paul
*
* This library is free software; you can redistribute it and/or
@@ -21,25 +21,6 @@
*/
/*
* $Log: glx_mangle.h,v $
* Revision 1.1 1999/08/19 00:55:40 jtg
* Initial revision
*
* Revision 3.3 1999/06/21 22:01:00 brianp
* added #ifndef GLX_MANGLE_H stuff, video sync extension functions
*
* Revision 3.2 1998/03/26 02:44:53 brianp
* removed ^M characters
*
* Revision 3.1 1998/03/17 02:41:19 brianp
* updated by Randy Frank
*
* Revision 3.0 1998/02/20 05:04:45 brianp
* initial rev
*
*/
#ifndef GLX_MANGLE_H
#define GLX_MANGLE_H
@@ -69,4 +50,8 @@
#define glXGetVideoSyncSGI mglXGetVideoSyncSGI
#define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI
/* GLX 1.4 */
#define glXGetProcAddress mglXGetProcAddress
#endif

View File

@@ -413,7 +413,7 @@ typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSou
#ifdef GLX_GLXEXT_PROTOTYPES
extern Display * glXGetCurrentDisplayEXT (void);
extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *);
extern GLXContextID glXGetContextIDEXT (GLXContext);
extern GLXContextID glXGetContextIDEXT (const GLXContext);
extern GLXContext glXImportContextEXT (Display *, GLXContextID);
extern void glXFreeContextEXT (Display *, GLXContext);
#endif /* GLX_GLXEXT_PROTOTYPES */

View File

@@ -1,4 +1,4 @@
# $Id: Makefile.win,v 1.5 2001/10/04 19:13:36 kschultz Exp $
# $Id: Makefile.win,v 1.5.2.1 2001/10/26 21:03:15 kschultz Exp $
# Mesa 3-D graphics library
# Version: 3.5
@@ -79,22 +79,20 @@ OSMESASRCS = osdemo.c
clean::
realclean::
clobber::
@del readtex.c readtex.h
targets: readtex.c readtex.h $(PROGS)
# remove comments when we get non-osmesa pgm working
$(EXES) : $*.obj
$(EXES) : $*.obj readtex.c readtex.h
@echo $@
$(link) -out:$@ $** /LIBPATH:$(LIBDIR) $(LIBS)
$(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS)
$(OSMESAEXES) : $*.obj
@echo $@
$(link) $(lcommon) -out:$@ $** /LIBPATH:$(LIBDIR) $(LIBS) $(EXTRALIBS)
$(link) $(lcommon) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) $(EXTRALIBS)
readtex.c:
@copy ../util/readtex.c .
-copy ..\util\readtex.c .
readtex.h:
@copy ../util/readtex.c .
-copy ..\util\readtex.h .

View File

@@ -40,7 +40,7 @@
static GLfloat Xrot = 0, Yrot = -30, Zrot = 0;
static GLboolean Anim = GL_TRUE;
static GLint Bias = 0, BiasStepSign = +1; /* ints avoid fp precision problem */
static GLint BiasMin = -200, BiasMax = 500;
static GLint BiasMin = -400, BiasMax = 400;
@@ -192,6 +192,8 @@ static void SpecialKey( int key, int x, int y )
static void Init( void )
{
const char *exten = (const char *) glGetString(GL_EXTENSIONS);
GLfloat maxBias;
if (!strstr(exten, "GL_EXT_texture_lod_bias")) {
printf("Sorry, GL_EXT_texture_lod_bias not supported by this renderer.\n");
exit(1);
@@ -207,6 +209,11 @@ static void Init( void )
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glGetFloatv(GL_MAX_TEXTURE_LOD_BIAS_EXT, &maxBias);
printf("LOD bias range: [%g, %g]\n", -maxBias, maxBias);
BiasMin = -100 * maxBias;
BiasMax = 100 * maxBias;
}

View File

@@ -1,4 +1,4 @@
/* $Id: manywin.c,v 1.4 2001/04/27 21:19:13 brianp Exp $ */
/* $Id: manywin.c,v 1.4.2.1 2001/11/26 17:21:24 brianp Exp $ */
/*
* Create N GLX windows/contexts and render to them in round-robin
@@ -29,6 +29,7 @@
#include <GL/glx.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
@@ -281,7 +282,7 @@ static void
PrintInfo(const struct head *h)
{
printf("Name: %s\n", h->DisplayName);
printf(" Display: %p\n", h->Dpy);
printf(" Display: %p\n", (void *) h->Dpy);
printf(" Window: 0x%x\n", (int) h->Win);
printf(" Context: 0x%x\n", (int) h->Context);
printf(" GL_VERSION: %s\n", h->Version);

View File

@@ -1,4 +1,4 @@
# $Id: Makefile.X11,v 1.5 2001/08/13 16:51:08 brianp Exp $
# $Id: Makefile.X11,v 1.5.2.1 2001/12/14 17:18:08 kschultz Exp $
# Mesa 3-D graphics library
# Version: 3.5
@@ -6,6 +6,7 @@
# Makefile for SGI SI GLU library
.SUFFIXES : .cc
##### MACROS #####
@@ -127,7 +128,6 @@ OBJECTS = $(C_OBJECTS) $(CC_OBJECTS)
$(CPLUSPLUS) -c $(INCDIRS) $(CCFLAGS) -DLIBRARYBUILD $< -o $@
##### TARGETS #####
default:

View File

@@ -1,14 +1,5 @@
# Makefile for Win32
#
# Sept 12, 2001
# Note: The nurbs code is not being built at this time.
# If you want to work on it, uncomment the definitions
# noted below to try to compile the sources.
# There are numerous problems, some of which may be solved
# by setting some #defines.
#
!include <win32.mak>
.SUFFIXES : .cc
@@ -116,16 +107,14 @@ all : gludll
gludll : $(GLUDLL)
CFLAGS = $(cvarsdll) $(CFLAGS) -D_OPENGL32_ -Iinclude -DBUILD_GL32
CFLAGS = $(cvarsdll) $(CFLAGS) -D_OPENGL32_ -Iinclude -DBUILD_GL32 -DLIBRARYBUILD
LFLAGS = $(dlllflags) $(lcommon) $(LFLAGS)
OBJS = $(GLU_SRCS:.c=.obj)
LIBS = ../lib/$(MESALIB) winmm.lib $(guilibsdll)
# Uncomment these definitions to try to compile the NURBS code.
#OBJS = $(GLU_SRCS_CC:.cc=.obj) $(GLU_SRCS:.c=.obj)
#NURBSINC = -Ilibnurbs\interface -Ilibnurbs\internals -Ilibnurbs\nurbtess
#CFLAGS = $(CFLAGS) $(NURBSINC)
OBJS = $(GLU_SRCS_CC:.cc=.obj) $(GLU_SRCS:.c=.obj)
NURBSINC = -Ilibnurbs\interface -Ilibnurbs\internals -Ilibnurbs\nurbtess
CFLAGS = $(CFLAGS) $(NURBSINC)
$(GLUDLL): $(OBJS) glu.def
$(link) $(LFLAGS) -out:$(GLUDLL) -def:glu.def $(OBJS) $(LIBS)

View File

@@ -1,8 +1,11 @@
DESCRIPTION 'Mesa GLU (OpenGL work-alike) for Win32'
VERSION 3.5
VERSION 4.0
EXPORTS
gluBeginCurve
gluBeginPolygon
gluBeginSurface
gluBeginTrim
gluBuild1DMipmapLevels
gluBuild1DMipmaps
gluBuild2DMipmapLevels
@@ -11,22 +14,36 @@ EXPORTS
gluBuild3DMipmaps
gluCheckExtension
gluCylinder
gluDeleteNurbsRenderer
gluDeleteQuadric
gluDeleteTess
gluDisk
gluEndCurve
gluEndPolygon
gluEndSurface
gluEndTrim
gluErrorString
gluGetNurbsProperty
gluGetString
gluGetTessProperty
gluLoadSamplingMatrices
gluLookAt
gluNewNurbsRenderer
gluNewQuadric
gluNewTess
gluNextContour
gluNurbsCallback
gluNurbsCallbackData
gluNurbsCallbackDataEXT
gluNurbsCurve
gluNurbsProperty
gluNurbsSurface
gluOrtho2D
gluPartialDisk
gluPerspective
gluPickMatrix
gluProject
gluPwlCurve
gluQuadricCallback
gluQuadricDrawStyle
gluQuadricNormals

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:40 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/interface/bezierEval.cc,v 1.1 2001/03/17 00:25:40 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/interface/bezierEval.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -72,8 +72,8 @@ void bezierCurveEval(float u0, float u1, int order, float *ctlpoints, int stride
{
float uprime = (u-u0)/(u1-u0);
float *ctlptr = ctlpoints;
float oneMinusX = 1.0-uprime;
float XPower = 1.0;
float oneMinusX = 1.0f-uprime;
float XPower = 1.0f;
int i,k;
for(k=0; k<dimension; k++)
@@ -171,7 +171,7 @@ void bezierCurveEvalDerGen(int der, float u0, float u1, int order, float *ctlpoi
*/
void bezierSurfEvalDerGen(int uder, int vder, float u0, float u1, int uorder, float v0, float v1, int vorder, int dimension, float *ctlpoints, int ustride, int vstride, float u, float v, float ret[])
{
int i,j,k;
int i;
float newPoints[MAX_ORDER][MAX_DIMENSION];
for(i=0; i<uorder; i++){
@@ -229,7 +229,7 @@ void bezierSurfEvalNormal(float u0, float u1, int uorder, float v0, float v1, in
/*if size is 0, then nothing is done*/
static void normalize(float vec[3])
{
float size = sqrt(vec[0]*vec[0] + vec[1]*vec[1] + vec[2]*vec[2]);
float size = (float)sqrt(vec[0]*vec[0] + vec[1]*vec[1] + vec[2]*vec[2]);
if(size < TOLERANCE)
{

View File

@@ -35,8 +35,8 @@
/*
* mapdesc.c++
*
* $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/mapdesc.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
* $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/mapdesc.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdio.h>
@@ -372,13 +372,13 @@ Mapdesc::xformAndCullCheck(
unsigned int bits = clipbits( cpts );
outbits |= bits;
inbits &= bits;
if( ( outbits == mask ) && ( inbits != mask ) ) return CULL_ACCEPT;
if( ( outbits == (unsigned int)mask ) && ( inbits != (unsigned int)mask ) ) return CULL_ACCEPT;
}
}
if( outbits != mask ) {
if( outbits != (unsigned int)mask ) {
return CULL_TRIVIAL_REJECT;
} else if( inbits == mask ) {
} else if( inbits == (unsigned int)mask ) {
return CULL_TRIVIAL_ACCEPT;
} else {
return CULL_ACCEPT;
@@ -404,13 +404,13 @@ Mapdesc::cullCheck( REAL *pts, int uorder, int ustride, int vorder, int vstride
unsigned int bits = clipbits( q );
outbits |= bits;
inbits &= bits;
if( ( outbits == mask ) && ( inbits != mask ) ) return CULL_ACCEPT;
if( ( outbits == (unsigned int)mask ) && ( inbits != (unsigned int)mask ) ) return CULL_ACCEPT;
}
}
if( outbits != mask ) {
if( outbits != (unsigned int)mask ) {
return CULL_TRIVIAL_REJECT;
} else if( inbits == mask ) {
} else if( inbits == (unsigned int)mask ) {
return CULL_TRIVIAL_ACCEPT;
} else {
return CULL_ACCEPT;
@@ -434,12 +434,12 @@ Mapdesc::cullCheck( REAL *pts, int order, int stride )
unsigned int bits = clipbits( p );
outbits |= bits;
inbits &= bits;
if( ( outbits == mask ) && ( inbits != mask ) ) return CULL_ACCEPT;
if( ( outbits == (unsigned int)mask ) && ( inbits != (unsigned int)mask ) ) return CULL_ACCEPT;
}
if( outbits != mask ) {
if( outbits != (unsigned int)mask ) {
return CULL_TRIVIAL_REJECT;
} else if( inbits == mask ) {
} else if( inbits == (unsigned int)mask ) {
return CULL_TRIVIAL_ACCEPT;
} else {
return CULL_ACCEPT;

View File

@@ -35,8 +35,8 @@
/*
* mesher.c++
*
* $Date: 2001/08/07 17:34:11 $ $Revision: 1.2 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/mesher.cc,v 1.2 2001/08/07 17:34:11 brianp Exp $
* $Date: 2001/11/29 16:38:27 $ $Revision: 1.2.2.1 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/mesher.cc,v 1.2.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include "glimports.h"
@@ -82,7 +82,7 @@ Mesher::init( unsigned int npts )
inline void
Mesher::push( GridTrimVertex *gt )
{
assert( itop+1 != stacksize );
assert( itop+1 != (int)stacksize );
vdata[++itop] = gt;
}

View File

@@ -35,8 +35,8 @@
/*
* sorter.c++
*
* $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/sorter.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
* $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
* $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/sorter.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include "glimports.h"
@@ -84,7 +84,7 @@ Sorter::qs1( char *a, char *l )
unsigned int n;
start:
if((n=l-a) <= es)
if((n=l-a) <= (unsigned int)es)
return;
n = es * (n / (2*es));
hp = lp = a+n;

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -596,7 +596,7 @@ Real directedLine::polyArea()
y2 = temp->next->head()[1];
ret += -( x2*y1-x1*y2);
}
return 0.5*ret;
return Real(0.5)*ret;
}
/*******************split or combine polygons begin********************/

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -231,7 +231,7 @@ Int sweepRangeEqual(sweepRange* src1, sweepRange* src2)
*/
inline/*static*/ Real intersectHoriz(Real x1, Real y1, Real x2, Real y2, Real y)
{
return ((y2==y1)? (x1+x2)*0.5 : x1 + ((y-y1)/(y2-y1)) * (x2-x1));
return ((y2==y1)? (x1+x2)*Real(0.5) : x1 + ((y-y1)/(y2-y1)) * (x2-x1));
/*
if(y2 == y1) return (x1+x2)*0.5;
else return x1 + ((y-y1)/(y2-y1)) * (x2-x1);
@@ -309,7 +309,7 @@ static Int compEdges(directedLine *e1, directedLine *e2)
Real Ymax = min(e1_Ymax, e2_Ymax);
Real Ymin = max(e1_Ymin, e2_Ymin);
Real y = 0.5*(Ymax + Ymin);
Real y = Real(0.5)*(Ymax + Ymin);
/* Real x1 = intersectHoriz(e1->head()[0], e1->head()[1], e1->tail()[0], e1->tail()[1], y);
Real x2 = intersectHoriz(e2->head()[0], e2->head()[1], e2->tail()[0], e2->tail()[1], y);

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -395,7 +395,7 @@ poly->printList();
*/
/*for debug purpose*/
assert( (DBG_rayIntersectPoly(v,1,0,poly) % 2 )
== (DBG_rayIntersectPoly(v,1,0.1234, poly) % 2 )
== (DBG_rayIntersectPoly(v,1,Real(0.1234), poly) % 2 )
);
if(DBG_rayIntersectPoly(v, 1, 0, poly) % 2 == 1)
return 1;

View File

@@ -31,20 +31,24 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.h,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.h,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#ifndef _POLYUTIL_H
#define _POLYUTIL_H
#include "definitions.h"
#ifdef __cplusplus
extern "C" {
#endif
Real area(Real A[2], Real B[2], Real C[2]);
Int pointLeftLine(Real A[2], Real B[2], Real P[2]);
Int pointLeft2Lines(Real A[2], Real B[2], Real C[2], Real P[2]);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -327,7 +327,7 @@ Int findBotSeparator(vertexArray* leftChain,
{
oldLeftI = leftCorner-1;
oldRightI = rightCorner;
leftMax = leftChain->getVertex(leftCorner)[0] - 1.0 ; //initilize to be left of leftCorner
leftMax = leftChain->getVertex(leftCorner)[0] - Real(1.0) ; //initilize to be left of leftCorner
rightMin = rightChain->getVertex(rightCorner)[0];
}
else //rightlower
@@ -335,7 +335,7 @@ Int findBotSeparator(vertexArray* leftChain,
oldLeftI = leftCorner;
oldRightI = rightCorner-1;
leftMax = leftChain->getVertex(leftCorner)[0];
rightMin = rightChain->getVertex(rightCorner)[0] + 1.0;
rightMin = rightChain->getVertex(rightCorner)[0] + Real(1.0);
}
//i: the current working leftChain Index

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -343,7 +343,7 @@ Int findTopSeparator(vertexArray* leftChain,
{
oldLeftI = leftEndIndex+1;
oldRightI = rightEndIndex;
leftMax = leftChain->getVertex(leftEndIndex)[0] - 1.0; //initilza to left of leftU
leftMax = leftChain->getVertex(leftEndIndex)[0] - Real(1.0); //initilza to left of leftU
rightMin = rightChain->getVertex(rightEndIndex)[0];
}
else
@@ -351,7 +351,7 @@ Int findTopSeparator(vertexArray* leftChain,
oldLeftI = leftEndIndex;
oldRightI = rightEndIndex+1;
leftMax = leftChain->getVertex(leftEndIndex)[0];
rightMin = rightChain->getVertex(rightEndIndex)[0] + 1.0;
rightMin = rightChain->getVertex(rightEndIndex)[0] + Real(1.0);
}
//i: the current working leftChain index,
@@ -826,19 +826,19 @@ static void sampleCompTopSimpleOpt(gridWrap* grid,
//find l in [j, k-1] so that dec_chain[l][0] 0 is closest to
// inc_chain[i]
int l;
Real tempI = j;
Real tempMin = fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]);
Real tempI = Real(j);
Real tempMin = (Real)fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]);
for(l=j+1; l<= k-1; l++)
{
if(fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0])
<= tempMin)
{
tempMin = fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0]);
tempI = l;
tempMin = (Real)fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0]);
tempI = (Real)l;
}
}
//inc_chain[i] and dec_chain[tempI] are connected.
monoTriangulationRecGenOpt(dec_chain->getVertex(tempI),
monoTriangulationRecGenOpt(dec_chain->getVertex((int)tempI),
botVertex,
inc_chain, i, inc_end,
dec_chain, (int)(tempI+1), dec_end,
@@ -866,12 +866,12 @@ static void sampleCompTopSimpleOpt(gridWrap* grid,
//inc_chain[l][0] is the closet to dec_chain[j][0]
int tempI = i;
int l;
Real tempMin = fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]);
Real tempMin = (Real)fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]);
for(l=i+1; l<=k-1; l++)
{
if(fabs(inc_chain->getVertex(l)[0] - dec_chain->getVertex(j)[0]) <= tempMin)
{
tempMin = fabs(inc_chain->getVertex(l)[0] - dec_chain->getVertex(j)[0]);
tempMin = (Real)fabs(inc_chain->getVertex(l)[0] - dec_chain->getVertex(j)[0]);
tempI = l;
}
}

View File

@@ -31,10 +31,10 @@
** published by SGI, but has not been independently verified as being
** compliant with the OpenGL(R) version 1.2.1 Specification.
**
** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $
** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $
*/
/*
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $
*/
#include <stdlib.h>
@@ -96,7 +96,6 @@ sampledLine::sampledLine(Int n_points, Real2 pts[])
sampledLine::sampledLine(Real pt1[2], Real pt2[2])
{
int i;
npoints = 2;
points = (Real2*) malloc(sizeof(Real2) * 2);
assert(points);

View File

@@ -35,14 +35,14 @@
/*
** Author: Eric Veach, July 1994.
**
** $Date: 2001/07/20 11:20:32 $ $Revision: 1.2 $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libtess/memalloc.h,v 1.2 2001/07/20 11:20:32 joukj Exp $
** $Date: 2001/11/30 20:12:38 $ $Revision: 1.2.2.1 $
** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libtess/memalloc.h,v 1.2.2.1 2001/11/30 20:12:38 kschultz Exp $
*/
#ifndef __memalloc_simple_h_
#define __memalloc_simple_h_
#ifdef __VMS
#if defined(__VMS) || defined(darwin)
# include <stdlib.h>
#else
# include <malloc.h>

View File

@@ -25,8 +25,8 @@ OBJS = $(SRCS:.c=.obj)
MS_LIBS = ../lib/$(MESALIB) ../lib/$(GLULIB) winmm.lib $(guilibsdll)
SGI_LIBS = $(SGI_OPENGL) $(SGI_GLU) winmm.lib $(guilibsdll)
glut32.dll : $(OBJS) glut.def
$(link) $(LFLAGS) -out:glut32.dll -def:glut.def $(OBJS) $(MS_LIBS)
MesaGlut.dll : $(OBJS) glut.def
$(link) $(LFLAGS) -out:MesaGlut.dll -def:glut.def $(OBJS) $(MS_LIBS)
@echo "copying GLUT dynamic link library to lib directory..."
-copy $(GLUTDLL) ..\lib
@echo "copying GLUT import library to lib directory..."

View File

@@ -439,15 +439,15 @@ loadVisuals(int *nitems_return)
GLXFBConfigSGIX fbc;
int fbconfigID, drawType, renderType;
fbc = glXGetFBConfigFromVisualSGIX(__glutDisplay, vlist[i]);
fbc = __glut_glXGetFBConfigFromVisualSGIX(__glutDisplay, vlist[i]);
if (fbc) {
rc = glXGetFBConfigAttribSGIX(__glutDisplay, fbc,
rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay, fbc,
GLX_FBCONFIG_ID_SGIX, &fbconfigID);
if ((rc == 0) && (fbconfigID != None)) {
rc = glXGetFBConfigAttribSGIX(__glutDisplay, fbc,
rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay, fbc,
GLX_DRAWABLE_TYPE_SGIX, &drawType);
if ((rc == 0) && (drawType & GLX_WINDOW_BIT_SGIX)) {
rc = glXGetFBConfigAttribSGIX(__glutDisplay, fbc,
rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay, fbc,
GLX_RENDER_TYPE_SGIX, &renderType);
if ((rc == 0) && (renderType & GLX_RGBA_BIT_SGIX)) {
mode->fbc = fbc;
@@ -459,7 +459,7 @@ loadVisuals(int *nitems_return)
/* Start with "j = 1" to skip the GLX_RGBA attribute. */
for (j = 1; j < NUM_GLXCAPS; j++) {
rc = glXGetFBConfigAttribSGIX(__glutDisplay,
rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay,
fbc, glxcap[j], &mode->cap[j]);
if (rc != 0) {
mode->valid = 0;
@@ -509,7 +509,7 @@ loadVisuals(int *nitems_return)
#define GLX_VISUAL_CAVEAT_EXT 0x20
#endif
rc = glXGetFBConfigAttribSGIX(__glutDisplay,
rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay,
fbc, GLX_VISUAL_CAVEAT_EXT, &rating);
if (rc != 0) {
mode->cap[SLOW] = 0;
@@ -558,7 +558,7 @@ loadVisuals(int *nitems_return)
#define GLX_TRANSPARENT_TYPE_EXT 0x23
#endif
rc = glXGetFBConfigAttribSGIX(__glutDisplay,
rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay,
fbc, GLX_TRANSPARENT_TYPE_EXT, &transparent);
if (rc != 0) {
mode->cap[TRANSPARENT] = 0;
@@ -573,7 +573,7 @@ loadVisuals(int *nitems_return)
#endif
#if defined(GLX_VERSION_1_1) && defined(GLX_SGIS_multisample)
if (multisample) {
rc = glXGetFBConfigAttribSGIX(__glutDisplay,
rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay,
fbc, GLX_SAMPLES_SGIS, &mode->cap[SAMPLES]);
if (rc != 0) {
mode->cap[SAMPLES] = 0;

View File

@@ -50,4 +50,19 @@ glutExtensionSupported(const char *extension)
return 0;
}
/* XXX This isn't an official GLUT function, yet */
void * APIENTRY
glutGetProcAddress(const char *procName)
{
#if defined(_WIN32)
return (void *) wglGetProcAddress((LPCSTR) procName);
#elif defined(GLX_ARB_get_proc_address)
return (void *) glXGetProcAddressARB((const GLubyte *) procName);
#else
return NULL;
#endif
}
/* ENDCENTRY */

View File

@@ -46,3 +46,210 @@ __glutIsSupportedByGLX(char *extension)
return 0;
}
#endif
/*
* Wrapping of GLX extension functions.
* Technically, we should do a runtime test to see if we've got the
* glXGetProcAddressARB() function. I think GLX_ARB_get_proc_address
* is pretty widely supported now and any system that has
* GLX_ARB_get_proc_address defined in its header files should be OK
* at runtime.
*/
int
__glut_glXBindChannelToWindowSGIX(Display *dpy, int screen,
int channel, Window window)
{
#ifdef GLX_ARB_get_proc_address
typedef int (*glXBindChannelToWindowSGIX_t) (Display *, int, int, Window);
static glXBindChannelToWindowSGIX_t glXBindChannelToWindowSGIX_ptr = NULL;
if (!glXBindChannelToWindowSGIX_ptr) {
glXBindChannelToWindowSGIX_ptr = (glXBindChannelToWindowSGIX_t)
glXGetProcAddressARB((const GLubyte *) "glXBindChannelToWindowSGIX");
}
if (glXBindChannelToWindowSGIX_ptr)
return (*glXBindChannelToWindowSGIX_ptr)(dpy, screen, channel, window);
else
return 0;
#elif defined(GLX_SGIX_video_resize)
return glXBindChannelToWindowSGIX(dpy, screen, channel, window);
#else
return 0;
#endif
}
int
__glut_glXChannelRectSGIX(Display *dpy, int screen, int channel,
int x, int y, int w, int h)
{
#ifdef GLX_ARB_get_proc_address
typedef int (*glXChannelRectSGIX_t)(Display *, int, int, int, int, int, int);
static glXChannelRectSGIX_t glXChannelRectSGIX_ptr = NULL;
if (!glXChannelRectSGIX_ptr) {
glXChannelRectSGIX_ptr = (glXChannelRectSGIX_t)
glXGetProcAddressARB((const GLubyte *) "glXChannelRectSGIX");
}
if (glXChannelRectSGIX_ptr)
return (*glXChannelRectSGIX_ptr)(dpy, screen, channel, x, y, w, h);
else
return 0;
#elif defined(GLX_SGIX_video_resize)
return glXChannelRectSGIX(dpy, screen, channel, x, y, w, h);
#else
return 0;
#endif
}
int
__glut_glXQueryChannelRectSGIX(Display *dpy, int screen, int channel,
int *x, int *y, int *w, int *h)
{
#ifdef GLX_ARB_get_proc_address
typedef int (*glXQueryChannelRectSGIX_t)(Display *, int, int,
int *, int *, int *, int *);
static glXQueryChannelRectSGIX_t glXQueryChannelRectSGIX_ptr = NULL;
if (!glXQueryChannelRectSGIX_ptr) {
glXQueryChannelRectSGIX_ptr = (glXQueryChannelRectSGIX_t)
glXGetProcAddressARB((const GLubyte *) "glXQueryChannelRectSGIX");
}
if (glXQueryChannelRectSGIX_ptr)
return (*glXQueryChannelRectSGIX_ptr)(dpy, screen, channel, x, y, w, h);
else
return 0;
#elif defined(GLX_SGIX_video_resize)
return glXQueryChannelRectSGIX(dpy, screen, channel, x, y, w, h);
#else
return 0;
#endif
}
int
__glut_glXQueryChannelDeltasSGIX(Display *dpy, int screen, int channel,
int *dx, int *dy, int *dw, int *dh)
{
#ifdef GLX_ARB_get_proc_address
typedef int (*glXQueryChannelDeltasSGIX_t)(Display *, int, int,
int *, int *, int *, int *);
static glXQueryChannelDeltasSGIX_t glXQueryChannelDeltasSGIX_ptr = NULL;
if (!glXQueryChannelDeltasSGIX_ptr) {
glXQueryChannelDeltasSGIX_ptr = (glXQueryChannelDeltasSGIX_t)
glXGetProcAddressARB((const GLubyte *) "glXQueryChannelDeltasSGIX");
}
if (glXQueryChannelDeltasSGIX_ptr)
return (*glXQueryChannelDeltasSGIX_ptr)(dpy, screen, channel,
dx, dy, dw, dh);
else
return 0;
#elif defined(GLX_SGIX_video_resize)
return glXQueryChannelDeltasSGIX(dpy, screen, channel, dx, dy, dw, dh);
#else
return 0;
#endif
}
int
__glut_glXChannelRectSyncSGIX(Display *dpy, int screen,
int channel, GLenum synctype)
{
#ifdef GLX_ARB_get_proc_address
typedef int (*glXChannelRectSyncSGIX_t)(Display *, int, int, GLenum);
static glXChannelRectSyncSGIX_t glXChannelRectSyncSGIX_ptr = NULL;
if (!glXChannelRectSyncSGIX_ptr) {
glXChannelRectSyncSGIX_ptr = (glXChannelRectSyncSGIX_t)
glXGetProcAddressARB((const GLubyte *) "glXChannelRectSyncSGIX");
}
if (glXChannelRectSyncSGIX_ptr)
return (*glXChannelRectSyncSGIX_ptr)(dpy, screen, channel, synctype);
else
return 0;
#elif defined(GLX_SGIX_video_resize)
return glXChannelRectSyncSGIX(dpy, screen, channel, synctype);
#else
return 0;
#endif
}
GLXContext
__glut_glXCreateContextWithConfigSGIX(Display *dpy, GLXFBConfigSGIX config,
int render_type, GLXContext share_list,
Bool direct)
{
#ifdef GLX_ARB_get_proc_address
typedef GLXContext (*glXCreateContextWithConfigSGIX_t)(Display *,
GLXFBConfigSGIX, int, GLXContext, Bool);
static glXCreateContextWithConfigSGIX_t glXCreateContextWithConfig_ptr = NULL;
if (!glXCreateContextWithConfig_ptr) {
glXCreateContextWithConfig_ptr = (glXCreateContextWithConfigSGIX_t)
glXGetProcAddressARB((const GLubyte *) "glXCreateContextWithConfigSGIX");
}
if (glXCreateContextWithConfig_ptr)
return (*glXCreateContextWithConfig_ptr)(dpy, config, render_type,
share_list, direct);
else
return 0;
#elif defined(GLX_SGIX_fbconfig)
return glXCreateContextWithConfigSGIX(dpy, config, render_type,
share_list, direct);
#else
return 0;
#endif
}
int
__glut_glXGetFBConfigAttribSGIX(Display *dpy, GLXFBConfigSGIX config,
int attribute, int *value)
{
#ifdef GLX_ARB_get_proc_address
typedef int (*glXGetFBConfigAttribSGIX_t)(Display *,
GLXFBConfigSGIX, int, int *);
static glXGetFBConfigAttribSGIX_t glXGetFBConfigAttrib_ptr = NULL;
if (!glXGetFBConfigAttrib_ptr) {
glXGetFBConfigAttrib_ptr = (glXGetFBConfigAttribSGIX_t)
glXGetProcAddressARB((const GLubyte *) "glXGetFBConfigAttribSGIX");
}
if (glXGetFBConfigAttrib_ptr)
return (*glXGetFBConfigAttrib_ptr)(dpy, config, attribute, value);
else
return 0;
#elif defined(GLX_SGIX_fbconfig)
return glXGetFBConfigAttribSGIX(dpy, config, attribute, value);
#else
return 0;
#endif
}
GLXFBConfigSGIX
__glut_glXGetFBConfigFromVisualSGIX(Display *dpy, XVisualInfo *vis)
{
#ifdef GLX_ARB_get_proc_address
typedef GLXFBConfigSGIX (*glXGetFBConfigFromVisualSGIX_t)(Display *,
XVisualInfo *);
static glXGetFBConfigFromVisualSGIX_t glXGetFBConfigFromVisual_ptr = NULL;
if (!glXGetFBConfigFromVisual_ptr) {
glXGetFBConfigFromVisual_ptr = (glXGetFBConfigFromVisualSGIX_t)
glXGetProcAddressARB((const GLubyte *) "glXGetFBConfigFromVisualSGIX");
}
if (glXGetFBConfigFromVisual_ptr)
return (*glXGetFBConfigFromVisual_ptr)(dpy, vis);
else
return 0;
#elif defined(GLX_SGIX_fbconfig)
return glXGetFBConfigFromVisualSGIX(dpy, vis);
#else
return 0;
#endif
}

View File

@@ -395,7 +395,7 @@ glutEstablishOverlay(void)
}
#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_fbconfig)
if (fbc) {
window->ctx = glXCreateContextWithConfigSGIX(__glutDisplay, fbc,
window->ctx = __glut_glXCreateContextWithConfigSGIX(__glutDisplay, fbc,
GLX_RGBA_TYPE_SGIX, None, __glutTryDirect);
} else
#endif

View File

@@ -57,7 +57,7 @@ glutVideoResizeGet(GLenum param)
if (canVideoResize < 0) {
canVideoResize = __glutIsSupportedByGLX("GLX_SGIX_video_resize");
if (canVideoResize) {
#if __sgi
#if defined(__sgi) && __sgi
/* This is a hack because IRIX 6.2, 6.3, and some 6.4
versions were released with GLX_SGIX_video_resize
being advertised by the X server though the video
@@ -94,7 +94,8 @@ glutVideoResizeGet(GLenum param)
#if defined(GLX_GLXEXT_PROTOTYPES)
#endif
glXQueryChannelDeltasSGIX(__glutDisplay, __glutScreen,
__glut_glXQueryChannelDeltasSGIX(__glutDisplay, __glutScreen,
videoResizeChannel, &dx, &dy, &dw, &dh);
/* glXQueryChannelDeltasSGIX is an inherent X server
@@ -138,7 +139,7 @@ glutVideoResizeGet(GLenum param)
if (videoResizeInUse) {
int x, y, width, height;
glXQueryChannelRectSGIX(__glutDisplay, __glutScreen,
__glut_glXQueryChannelRectSGIX(__glutDisplay, __glutScreen,
videoResizeChannel, &x, &y, &width, &height);
switch (param) {
case GLUT_VIDEO_RESIZE_X:
@@ -164,7 +165,7 @@ glutSetupVideoResizing(void)
{
#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_video_resize)
if (glutVideoResizeGet(GLUT_VIDEO_RESIZE_POSSIBLE)) {
glXBindChannelToWindowSGIX(__glutDisplay, __glutScreen,
__glut_glXBindChannelToWindowSGIX(__glutDisplay, __glutScreen,
videoResizeChannel, __glutCurrentWindow->win);
videoResizeInUse = 1;
} else
@@ -178,7 +179,7 @@ glutStopVideoResizing(void)
#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_video_resize)
if (glutVideoResizeGet(GLUT_VIDEO_RESIZE_POSSIBLE)) {
if (videoResizeInUse) {
glXBindChannelToWindowSGIX(__glutDisplay, __glutScreen,
__glut_glXBindChannelToWindowSGIX(__glutDisplay, __glutScreen,
videoResizeChannel, None);
videoResizeInUse = 0;
}
@@ -196,10 +197,10 @@ glutVideoResize(int x, int y, int width, int height)
/* glXChannelRectSyncSGIX introduced in a patch to IRIX
6.2; the original unpatched IRIX 6.2 behavior is always
GLX_SYNC_SWAP_SGIX. */
glXChannelRectSyncSGIX(__glutDisplay, __glutScreen,
__glut_glXChannelRectSyncSGIX(__glutDisplay, __glutScreen,
videoResizeChannel, GLX_SYNC_SWAP_SGIX);
#endif
glXChannelRectSGIX(__glutDisplay, __glutScreen,
__glut_glXChannelRectSGIX(__glutDisplay, __glutScreen,
videoResizeChannel, x, y, width, height);
}
#endif
@@ -218,10 +219,10 @@ glutVideoPan(int x, int y, int width, int height)
accomplish GLX_SYNC_FRAME_SGIX on IRIX unpatched 6.2;
this means you'd need a glutSwapBuffers to actually
realize the video resize. */
glXChannelRectSyncSGIX(__glutDisplay, __glutScreen,
__glut_glXChannelRectSyncSGIX(__glutDisplay, __glutScreen,
videoResizeChannel, GLX_SYNC_FRAME_SGIX);
#endif
glXChannelRectSGIX(__glutDisplay, __glutScreen,
__glut_glXChannelRectSGIX(__glutDisplay, __glutScreen,
videoResizeChannel, x, y, width, height);
}
#endif

View File

@@ -577,7 +577,7 @@ __glutCreateWindow(GLUTwindow * parent,
window->renderWin = window->win;
#if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_fbconfig)
if (fbc) {
window->ctx = glXCreateContextWithConfigSGIX(__glutDisplay, fbc,
window->ctx = __glut_glXCreateContextWithConfigSGIX(__glutDisplay, fbc,
GLX_RGBA_TYPE_SGIX, None, __glutTryDirect);
} else
#endif

View File

@@ -764,6 +764,29 @@ extern void __glutDestroyWindow(
#if !defined(_WIN32)
/* private routines from glut_glxext.c */
extern int __glutIsSupportedByGLX(char *);
extern int __glut_glXBindChannelToWindowSGIX(Display *dpy, int screen,
int channel, Window window);
extern int __glut_glXChannelRectSGIX(Display *dpy, int screen, int channel,
int x, int y, int w, int h);
extern int __glut_glXQueryChannelRectSGIX(Display *dpy, int screen,
int channel, int *x, int *y,
int *w, int *h);
extern int __glut_glXQueryChannelDeltasSGIX(Display *dpy, int screen,
int channel, int *dx, int *dy,
int *dw, int *dh);
extern int __glut_glXChannelRectSyncSGIX(Display *dpy, int screen, int channel,
GLenum synctype);
extern GLXContext __glut_glXCreateContextWithConfigSGIX(Display *dpy,
GLXFBConfigSGIX config,
int render_type,
GLXContext share_list,
Bool direct);
extern int __glut_glXGetFBConfigAttribSGIX(Display *dpy,
GLXFBConfigSGIX config,
int attribute,
int *value);
extern GLXFBConfigSGIX __glut_glXGetFBConfigFromVisualSGIX(Display *dpy,
XVisualInfo *vis);
#endif
/* private routines from glut_input.c */

View File

@@ -1,7 +1,7 @@
# $Id: Makefile.X11,v 1.58 2001/09/23 16:11:26 brianp Exp $
# $Id: Makefile.X11,v 1.58.2.2 2001/12/14 16:33:06 kschultz Exp $
# Mesa 3-D graphics library
# Version: 4.0
# Version: 4.0.1
# Copyright (C) 1995-2001 Brian Paul
# Makefile for core library
@@ -200,69 +200,6 @@ OSMESA_OBJECTS = OSmesa/osmesa.o
$(CC) -c -I. $(CFLAGS) $< -o $@
# UGH! These rules shouldn't be needed but IRIX's make (and others?) needs them
X/glxapi.o: X/glxapi.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/fakeglx.o: X/fakeglx.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xfonts.o: X/xfonts.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xm_api.o: X/xm_api.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xm_dd.o: X/xm_dd.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xm_span.o: X/xm_span.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xm_line.o: X/xm_line.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xm_tri.o: X/xm_tri.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
SVGA/svgamesa.o: SVGA/svgamesa.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
SVGA/svgamesa8.o: SVGA/svgamesa8.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
SVGA/svgamesa15.o: SVGA/svgamesa15.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
SVGA/svgamesa16.o: SVGA/svgamesa16.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
SVGA/svgamesa24.o: SVGA/svgamesa24.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
SVGA/svgamesa32.o: SVGA/svgamesa32.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
OSmesa/osmesa.o: OSmesa/osmesa.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxapi.o: FX/fxapi.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxclip.o: FX/fxclip.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxdd.o: FX/fxdd.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxddspan.o: FX/fxddspan.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxddtex.o: FX/fxddtex.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxfastpath.o: FX/fxfastpath.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxpipeline.o: FX/fxpipeline.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxrender.o: FX/fxrender.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxsanity.o: FX/fxsanity.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxsetup.o: FX/fxsetup.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxtrifuncs.o: FX/fxtrifuncs.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxtexman.o: FX/fxtexman.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxvsetup.o: FX/fxvsetup.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxglidew.o: FX/fxglidew.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/X86/fx_3dnow_fastpath.o: FX/X86/fx_3dnow_fastpath.S
X86/x86.o: X86/x86.c
@@ -279,26 +216,9 @@ X86/matypes.h: mtypes.h tnl/t_context.h X86/gen_matypes.c
./X86/gen_matypes > X86/matypes.h
rm -f X86/gen_matypes X86/*.o
$(ASM_SOURCES): X86/matypes.h
GGI/ggimesa.o: GGI/ggimesa.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_2string.o: Trace/tr_2string.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_attrib.o: Trace/tr_attrib.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_context.o: Trace/tr_context.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_control.o: Trace/tr_control.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_error.o: Trace/tr_error.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_print.o: Trace/tr_print.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_wrapper.o: Trace/tr_wrapper.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
# We have X86/matypes.h depend on X86/matypes.h so that if ASM_SOURCES
# is empty we don't get an invalid Makefile.
$(ASM_SOURCES) X86/matypes.h: X86/matypes.h
##### TARGETS #####

View File

@@ -1,4 +1,4 @@
/* $Id: t_dd_dmatmp.h,v 1.10 2001/04/09 15:41:11 alanh Exp $ */
/* $Id: t_dd_dmatmp.h,v 1.10.2.2 2001/12/11 15:12:57 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -49,6 +49,7 @@
#define ELTS_VARS
#define ALLOC_ELTS( nr )
#define EMIT_ELT( offset, elt )
#define EMIT_TWO_ELTS( offset, elt0, elt1 )
#define INCR_ELTS( nr )
#define ELT_INIT(prim)
#define GET_CURRENT_VB_MAX_ELTS() 0
@@ -310,7 +311,7 @@ static void TAG(render_tri_strip_verts)( GLcontext *ctx,
currentsz = dmasz;
}
if (flags & PRIM_PARITY) {
if ((flags & PRIM_PARITY) && count - start > 2) {
if (HAVE_TRI_STRIP_1 && 0) {
} else {
EMIT_VERTS( ctx, start, 1 );
@@ -433,11 +434,6 @@ static void TAG(render_quad_strip_verts)( GLcontext *ctx,
currentsz = dmasz;
}
if (flags & PRIM_PARITY) {
EMIT_VERTS( ctx, start, 1 );
currentsz--;
}
dmasz -= (dmasz & 2);
currentsz -= (currentsz & 2);
@@ -485,7 +481,7 @@ static void TAG(render_quad_strip_verts)( GLcontext *ctx,
NEW_PRIMITIVE();
ALLOC_ELTS_NEW_PRIMITIVE( quads*6 );
for ( i = 0 ; i < quads*2 ; i+=2 ) {
for ( i = j-start ; i < j-start+quads*2 ; i+=2 ) {
EMIT_TWO_ELTS( 0, (i+0), (i+1) );
EMIT_TWO_ELTS( 2, (i+2), (i+1) );
EMIT_TWO_ELTS( 4, (i+3), (i+2) );
@@ -606,7 +602,7 @@ static void TAG(render_quads_verts)( GLcontext *ctx,
NEW_PRIMITIVE();
ALLOC_ELTS_NEW_PRIMITIVE( quads*6 );
for ( i = 0 ; i < quads*4 ; i+=4 ) {
for ( i = j-start ; i < j-start+quads*4 ; i+=4 ) {
EMIT_TWO_ELTS( 0, (i+0), (i+1) );
EMIT_TWO_ELTS( 2, (i+3), (i+1) );
EMIT_TWO_ELTS( 4, (i+2), (i+3) );
@@ -866,7 +862,7 @@ static void TAG(render_tri_strip_elts)( GLcontext *ctx,
currentsz = dmasz;
}
if (flags & PRIM_PARITY) {
if ((flags & PRIM_PARITY) && count - start > 2) {
TAG(emit_elts)( ctx, elts+start, 1 );
}
@@ -1001,7 +997,7 @@ static void TAG(render_quad_strip_elts)( GLcontext *ctx,
NEW_PRIMITIVE();
ALLOC_ELTS_NEW_PRIMITIVE( quads*6 );
for ( i = 0 ; i < quads ; i++, elts += 2 ) {
for ( i = j-start ; i < j-start+quads ; i++, elts += 2 ) {
EMIT_TWO_ELTS( 0, elts[0], elts[1] );
EMIT_TWO_ELTS( 2, elts[2], elts[1] );
EMIT_TWO_ELTS( 4, elts[3], elts[2] );
@@ -1069,7 +1065,7 @@ static void TAG(render_quads_elts)( GLcontext *ctx,
NEW_PRIMITIVE();
ALLOC_ELTS_NEW_PRIMITIVE( quads * 6 );
for ( i = 0 ; i < quads ; i++, elts += 4 ) {
for ( i = j-start ; i < j-start+quads ; i++, elts += 4 ) {
EMIT_TWO_ELTS( 0, elts[0], elts[1] );
EMIT_TWO_ELTS( 2, elts[3], elts[1] );
EMIT_TWO_ELTS( 4, elts[2], elts[3] );

View File

@@ -1,4 +1,4 @@
/* $Id: t_dd_vb.c,v 1.15 2001/05/14 09:00:52 keithw Exp $ */
/* $Id: t_dd_vb.c,v 1.15.2.1 2001/12/13 10:57:41 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -277,7 +277,7 @@ IMPORT_QUALIFIER void TAG(import_float_spec_colors)( GLcontext *ctx )
#define INTERP_QUALIFIER static
#endif
#define GET_COLOR(ptr, idx) (((GLfloat (*)[4])((ptr)->Ptr))[idx])
#define GET_COLOR(ptr, idx) (((GLchan (*)[4])((ptr)->Ptr))[idx])
INTERP_QUALIFIER void TAG(interp_extras)( GLcontext *ctx,
@@ -289,16 +289,16 @@ INTERP_QUALIFIER void TAG(interp_extras)( GLcontext *ctx,
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
if (VB->ColorPtr[1]) {
INTERP_4F( t,
GET_COLOR(VB->ColorPtr[1], dst),
GET_COLOR(VB->ColorPtr[1], out),
GET_COLOR(VB->ColorPtr[1], in) );
INTERP_4CHAN( t,
GET_COLOR(VB->ColorPtr[1], dst),
GET_COLOR(VB->ColorPtr[1], out),
GET_COLOR(VB->ColorPtr[1], in) );
if (VB->SecondaryColorPtr[1]) {
INTERP_3F( t,
GET_COLOR(VB->SecondaryColorPtr[1], dst),
GET_COLOR(VB->SecondaryColorPtr[1], out),
GET_COLOR(VB->SecondaryColorPtr[1], in) );
INTERP_3CHAN( t,
GET_COLOR(VB->SecondaryColorPtr[1], dst),
GET_COLOR(VB->SecondaryColorPtr[1], out),
GET_COLOR(VB->SecondaryColorPtr[1], in) );
}
}
@@ -316,12 +316,12 @@ INTERP_QUALIFIER void TAG(copy_pv_extras)( GLcontext *ctx,
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
if (VB->ColorPtr[1]) {
COPY_4FV( GET_COLOR(VB->ColorPtr[1], dst),
GET_COLOR(VB->ColorPtr[1], src) );
COPY_CHAN4( GET_COLOR(VB->ColorPtr[1], dst),
GET_COLOR(VB->ColorPtr[1], src) );
if (VB->SecondaryColorPtr[1]) {
COPY_4FV( GET_COLOR(VB->SecondaryColorPtr[1], dst),
GET_COLOR(VB->SecondaryColorPtr[1], src) );
COPY_CHAN4( GET_COLOR(VB->SecondaryColorPtr[1], dst),
GET_COLOR(VB->SecondaryColorPtr[1], src) );
}
}

View File

@@ -295,7 +295,7 @@ void GGIread_rgba_pixels(const GLcontext *ctx,
int GGIsetup_driver(GGIMesaContext ggictx, struct ggi_mesa_info *info)
{
GLcontext *ctx = ggictx->gl_ctx;
#if 0
ctx->Driver.WriteRGBASpan = GGIwrite_rgba_span;
ctx->Driver.WriteRGBSpan = GGIwrite_rgb_span;
// ctx->Driver.WriteMonoRGBASpan = GGIwrite_mono_span;
@@ -312,7 +312,7 @@ int GGIsetup_driver(GGIMesaContext ggictx, struct ggi_mesa_info *info)
ctx->Driver.ReadRGBASpan = GGIread_rgba_span;
ctx->Driver.ReadCI32Pixels = GGIread_ci32_pixels;
ctx->Driver.ReadRGBAPixels = GGIread_rgba_pixels;
#endif
info->red_bits = R;
info->green_bits =G;
info->blue_bits = B;

View File

@@ -33,6 +33,7 @@
#include "swrast/s_context.h"
#include "swrast/s_depth.h"
#include "swrast/s_triangle.h"
#include "swrast/s_trispan.h"
/**********************************************************************/
/***** Write spans of pixels *****/
@@ -303,7 +304,7 @@ static swrast_tri_func ggimesa_stubs_get_triangle_func(GLcontext *ctx);
int GGIsetup_driver(GGIMesaContext ggictx, struct ggi_mesa_info *info)
{
GLcontext *ctx = ggictx->gl_ctx;
#if 0
ctx->Driver.WriteRGBASpan = GGIwrite_rgba_span;
ctx->Driver.WriteRGBSpan = GGIwrite_rgb_span;
ctx->Driver.WriteRGBAPixels = GGIwrite_rgba_pixels;
@@ -316,13 +317,15 @@ int GGIsetup_driver(GGIMesaContext ggictx, struct ggi_mesa_info *info)
ctx->Driver.ReadRGBASpan = GGIread_rgba_span;
ctx->Driver.ReadCI32Pixels = GGIread_ci32_pixels;
ctx->Driver.ReadRGBAPixels = GGIread_rgba_pixels;
#endif
return 0;
}
void GGIupdate_state(GLcontext *ctx)
{
#if 0
ctx->Driver.TriangleFunc = _swsetup_Triangle;
#endif
}

View File

@@ -224,6 +224,7 @@ static void gl_ggiSetupPointers(GLcontext *ctx)
ctx->Driver.ColorMask = gl_ggiColorMask;
ctx->Driver.Enable = gl_ggiEnable;
#if 0
ctx->Driver.SetDrawBuffer = gl_ggiSetDrawBuffer;
ctx->Driver.SetReadBuffer = gl_ggiSetReadBuffer;
@@ -239,7 +240,7 @@ static void gl_ggiSetupPointers(GLcontext *ctx)
ctx->Driver.LineFunc = _swsetup_Line;
ctx->Driver.TriangleFunc = _swsetup_Triangle;
ctx->Driver.QuadFunc = _swsetup_Quad;
#endif
}
static int gl_ggiInitInfo(GGIMesaContext ctx, struct ggi_mesa_info *info)

View File

@@ -1,4 +1,4 @@
/* $Id: fxddtex.c,v 1.45 2001/09/23 16:50:01 brianp Exp $ */
/* $Id: fxddtex.c,v 1.45.2.1 2001/11/06 16:00:58 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -327,7 +327,7 @@ fxDDTexDel(GLcontext * ctx, struct gl_texture_object *tObj)
tfxTexInfo *ti = fxTMGetTexInfo(tObj);
if (MESA_VERBOSE & VERBOSE_DRIVER) {
fprintf(stderr, "fxmesa: fxDDTexDel(%d,%p)\n", tObj->Name, ti);
fprintf(stderr, "fxmesa: fxDDTexDel(%d,%p)\n", tObj->Name, (void *) ti);
}
if (!ti)

View File

@@ -1,4 +1,4 @@
/* $Id: fxtris.c,v 1.17 2001/09/23 16:50:01 brianp Exp $ */
/* $Id: fxtris.c,v 1.17.2.1 2001/11/06 16:00:58 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -214,7 +214,7 @@ fx_fallback_point( fxMesaContext fxMesa,
static void fx_print_vertex( GLcontext *ctx, const GrVertex *v )
{
fprintf(stderr, "vertex at %p\n", v);
fprintf(stderr, "vertex at %p\n", (void *) v);
fprintf(stderr, "x %f y %f z %f oow %f\n",
v->x, v->y, v->ooz, v->oow);

View File

@@ -1,5 +1,5 @@
DESCRIPTION 'Mesa OSMesa lib for Win32'
VERSION 3.5
VERSION 4.0
EXPORTS
OSMesaCreateContext

View File

@@ -1,4 +1,4 @@
/* $Id: wmesa.c,v 1.22 2001/10/05 15:47:28 kschultz Exp $ */
/* $Id: wmesa.c,v 1.22.2.1 2001/11/01 22:52:18 kschultz Exp $ */
/*
* Windows (Win32) device driver for Mesa 3.4
@@ -19,7 +19,11 @@
* Updated for Mesa 4.0 by Karl Schultz (kschultz@sourceforge.net)
*/
#ifdef NDEBUG
#pragma auto_inline(on)
#pragma inline_depth(255)
#pragma inline_recursion(on)
#endif
#include "wmesadef.h"
#include <GL/wmesa.h>
@@ -53,7 +57,9 @@
/* Dither not tested for Mesa 4.0 */
#ifdef DITHER
#ifdef USE_WING
#include <wing.h>
#endif // USE_WING
#endif
#ifdef __CYGWIN32__
@@ -72,8 +78,15 @@
#include "parallel.h"
#endif
/* File global varaibles */
struct DISPLAY_OPTIONS displayOptions;
struct DISPLAY_OPTIONS displayOptions =
{
0, // stereo
0, // fullScreen
0, // full screen mode (1,2,3,4)
0 // bpp (8,16,24,32)
};
GLenum stereoCompile = GL_FALSE ;
GLenum stereoShowing = GL_FALSE ;
GLenum stereoBuffer = GL_FALSE;
@@ -85,6 +98,17 @@ GLint stereo_flag = 0 ;
static PWMC Current = NULL;
WMesaContext WC = NULL;
#ifdef COMPILE_SETPIXEL
__forceinline void wmSetPixel(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
{
pwc->wmSetPixel(pwc,iScanLine,iPixel,r,g,b);
}
void ChooseSetPixel(PWMC pwc);
#endif // COMPILE_SETPIXEL
/* If we are double-buffering, we want to get the DC for the
* off-screen DIB, otherwise the DC for the window.
*/
@@ -112,13 +136,18 @@ GLubyte pixelDithered;
pixelDithered = aWinGHalftoneTranslation[paletteindex]; \
}
#ifdef DDRAW
static BOOL DDInit( WMesaContext wc, HWND hwnd);
static void DDFree( WMesaContext wc);
static HRESULT DDRestoreAll( WMesaContext wc );
static void DDDeleteOffScreen(WMesaContext wc);
static BOOL DDCreateOffScreen(WMesaContext wc);
// define this to use the GDI Rectangle call to
// clear the back buffer. Otherwise will manually
// set the pixels. On an NVidia GEForce 2MX under Windows XP
// and DirectX 8 , defining this makes apps run much much faster
#define USE_GDI_TO_CLEAR 1
#endif
static void FlushToFile(PWMC pwc, PSTR szFile);
@@ -208,8 +237,10 @@ BOOL wmDeleteBackingStore(PWMC pwc)
SelectObject(pwc->dib.hDC, pwc->hOldBitmap);
DeleteDC(pwc->dib.hDC);
DeleteObject(pwc->hbmDIB);
#ifdef USE_MAPPED_FILE
UnmapViewOfFile(pwc->dib.base);
CloseHandle(pwc->dib.hFileMap);
#endif
return TRUE;
}
@@ -254,7 +285,8 @@ BOOL wmCreateBackingStore(PWMC pwc, long lxSize, long lySize)
return TRUE;
}
#if 0
// D.R.S. 10/30/01 - this function is never referenced
/*
* This function copies one scan line in a DIB section to another
*/
@@ -282,8 +314,9 @@ BOOL wmSetDIBits(PWMC pwc, UINT uiScanWidth, UINT uiNumScans,
}
return TRUE;
}
#endif // 0
#if defined(FAST_RASTERIZERS)
#define PIXELADDR(X,Y) \
((GLubyte *)Current->pbPixels + (Current->height-Y-1)* \
@@ -295,6 +328,7 @@ BOOL wmSetDIBits(PWMC pwc, UINT uiScanWidth, UINT uiNumScans,
#define PIXELADDR4( X, Y ) \
((GLubyte *)wmesa->pbPixels + (wmesa->height-Y-1)* wmesa->ScanWidth + (X)*4)
#endif // 0
BYTE DITHER_RGB_2_8BIT( int r, int g, int b, int x, int y);
@@ -351,13 +385,6 @@ static void clear_color( GLcontext* ctx, const GLchan color[4] )
static clear(GLcontext* ctx, GLbitfield mask,
GLboolean all, GLint x, GLint y, GLint width, GLint height)
{
DWORD dwColor;
WORD wColor;
BYTE bColor;
LPDWORD lpdw = (LPDWORD)Current->pbPixels;
LPWORD lpw = (LPWORD)Current->pbPixels;
LPBYTE lpb = Current->pbPixels;
int lines;
const GLuint *colorMask = (GLuint *) &ctx->Color.ColorMask;
if (all){
@@ -372,6 +399,50 @@ static clear(GLcontext* ctx, GLbitfield mask,
if (*colorMask == 0xffffffff && ctx->Color.IndexMask == 0xffffffff) {
if (mask & DD_BACK_LEFT_BIT) {
#if defined(USE_GDI_TO_CLEAR)
#if defined(DDRAW)
// D.R.S. 10/29/01 on my system (Pentium 4 with nvidia GeForce2 MX card,
// this is almose 100 times faster that the code below
HDC DC=NULL;
HPEN Pen=CreatePen(PS_SOLID,1,Current->clearpixel);
HBRUSH Brush=CreateSolidBrush(Current->clearpixel);
HPEN Old_Pen=NULL;
HBRUSH Old_Brush=NULL;
Current->lpDDSOffScreen->lpVtbl->Unlock(Current->lpDDSOffScreen,NULL);
Current->lpDDSOffScreen->lpVtbl->GetDC(Current->lpDDSOffScreen,&DC);
Old_Pen=SelectObject(DC,Pen);
Old_Brush=SelectObject(DC,Brush);
Rectangle(DC,x,y,x+width,y+height);
SelectObject(DC,Old_Pen);
SelectObject(DC,Old_Brush);
DeleteObject(Pen);
DeleteObject(Brush);
Current->lpDDSOffScreen->lpVtbl->ReleaseDC(Current->lpDDSOffScreen,DC);
while (Current->lpDDSOffScreen->lpVtbl->Lock(Current->lpDDSOffScreen,NULL, &(Current->ddsd), 0, NULL) == DDERR_WASSTILLDRAWING);
mask &= ~DD_BACK_LEFT_BIT;
#else
/* single-buffer */
HDC DC=DD_GETDC;
HPEN Pen=CreatePen(PS_SOLID,1,Current->clearpixel);
HBRUSH Brush=CreateSolidBrush(Current->clearpixel);
HPEN Old_Pen=SelectObject(DC,Pen);
HBRUSH Old_Brush=SelectObject(DC,Brush);
Rectangle(DC,x+Current->rectSurface.left,Current->rectSurface.top+y,x+width+Current->rectSurface.left,y+height+Current->rectSurface.top);
SelectObject(DC,Old_Pen);
SelectObject(DC,Old_Brush);
DeleteObject(Pen);
DeleteObject(Brush);
DD_RELEASEDC;
mask &= ~DD_BACK_LEFT_BIT;
#endif // DDRAW
#else
DWORD dwColor;
WORD wColor;
BYTE bColor;
LPDWORD lpdw = (LPDWORD)Current->pbPixels;
LPWORD lpw = (LPWORD)Current->pbPixels;
LPBYTE lpb = Current->pbPixels;
int lines;
/* Double-buffering - clear back buffer */
UINT nBypp = Current->cColorBits / 8;
int i = 0;
@@ -434,6 +505,7 @@ static clear(GLcontext* ctx, GLbitfield mask,
}
while (i<lines-1);
mask &= ~DD_BACK_LEFT_BIT;
#endif // defined(USE_GDI_TO_CLEAR)
} /* double-buffer */
if (mask & DD_FRONT_LEFT_BIT) {
@@ -443,7 +515,7 @@ static clear(GLcontext* ctx, GLbitfield mask,
HBRUSH Brush=CreateSolidBrush(Current->clearpixel);
HPEN Old_Pen=SelectObject(DC,Pen);
HBRUSH Old_Brush=SelectObject(DC,Brush);
Rectangle(DC,x,y,x+width,y+height);
Rectangle(DC,x+Current->rectSurface.left,Current->rectSurface.top+y,x+width+Current->rectSurface.left,y+height+Current->rectSurface.top);
SelectObject(DC,Old_Pen);
SelectObject(DC,Old_Brush);
DeleteObject(Pen);
@@ -733,23 +805,25 @@ static void write_mono_rgba_span( const GLcontext* ctx,
GLuint n, GLint x, GLint y,
const GLchan color[4], const GLubyte mask[])
{
ULONG pixel = RGB( color[RCOMP], color[GCOMP], color[BCOMP] );
GLuint i;
HDC DC=DD_GETDC;
PWMC pwc = Current;
assert(Current->rgb_flag==GL_TRUE);
y=FLIP(y);
if(Current->rgb_flag==GL_TRUE){
if(Current->rgb_flag==GL_TRUE)
{
for (i=0; i<n; i++)
if (mask[i])
wmSetPixel(pwc,y,x+i,color[RCOMP], color[GCOMP], color[BCOMP]);
}
else
{
HDC DC=DD_GETDC;
ULONG pixel = RGB( color[RCOMP], color[GCOMP], color[BCOMP] );
for (i=0; i<n; i++)
if (mask[i])
wmSetPixel(pwc,y,x+i,color[RCOMP], color[GCOMP], color[BCOMP]);
SetPixel(DC, y, x+i, pixel);
DD_RELEASEDC;
}
else {
for (i=0; i<n; i++)
if (mask[i])
SetPixel(DC, y, x+i, pixel);
}
DD_RELEASEDC;
}
@@ -932,18 +1006,11 @@ static const GLubyte *get_string(GLcontext *ctx, GLenum name)
}
}
static void wmesa_update_state( GLcontext *ctx, GLuint new_state )
static void wmesa_update_state( GLcontext *ctx, GLuint new_state );
static void SetFunctionPointers(GLcontext *ctx)
{
struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference( ctx );
TNLcontext *tnl = TNL_CONTEXT(ctx);
/*
* XXX these function pointers could be initialized just once during
* context creation since they don't depend on any state changes.
* kws - This is true - this function gets called a lot and it
* would be good to minimize setting all this when not needed.
*/
ctx->Driver.GetString = get_string;
ctx->Driver.UpdateState = wmesa_update_state;
ctx->Driver.SetDrawBuffer = set_draw_buffer;
@@ -1006,8 +1073,87 @@ static void wmesa_update_state( GLcontext *ctx, GLuint new_state )
swdd->ReadRGBASpan = read_rgba_span;
swdd->ReadCI32Pixels = read_ci32_pixels;
swdd->ReadRGBAPixels = read_rgba_pixels;
}
static void wmesa_update_state( GLcontext *ctx, GLuint new_state )
{
struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference( ctx );
TNLcontext *tnl = TNL_CONTEXT(ctx);
/*
* XXX these function pointers could be initialized just once during
* context creation since they don't depend on any state changes.
* kws - This is true - this function gets called a lot and it
* would be good to minimize setting all this when not needed.
*/
#ifndef SET_FPOINTERS_ONCE
SetFunctionPointers(ctx);
#if 0
ctx->Driver.GetString = get_string;
ctx->Driver.UpdateState = wmesa_update_state;
ctx->Driver.SetDrawBuffer = set_draw_buffer;
ctx->Driver.ResizeBuffersMESA = _swrast_alloc_buffers;
ctx->Driver.GetBufferSize = buffer_size;
ctx->Driver.Accum = _swrast_Accum;
ctx->Driver.Bitmap = _swrast_Bitmap;
ctx->Driver.Clear = clear;
ctx->Driver.Flush = flush;
ctx->Driver.ClearIndex = clear_index;
ctx->Driver.ClearColor = clear_color;
ctx->Driver.Enable = enable;
ctx->Driver.CopyPixels = _swrast_CopyPixels;
ctx->Driver.DrawPixels = _swrast_DrawPixels;
ctx->Driver.ReadPixels = _swrast_ReadPixels;
ctx->Driver.ChooseTextureFormat = _mesa_choose_tex_format;
ctx->Driver.TexImage1D = _mesa_store_teximage1d;
ctx->Driver.TexImage2D = _mesa_store_teximage2d;
ctx->Driver.TexImage3D = _mesa_store_teximage3d;
ctx->Driver.TexSubImage1D = _mesa_store_texsubimage1d;
ctx->Driver.TexSubImage2D = _mesa_store_texsubimage2d;
ctx->Driver.TexSubImage3D = _mesa_store_texsubimage3d;
ctx->Driver.TestProxyTexImage = _mesa_test_proxy_teximage;
ctx->Driver.CopyTexImage1D = _swrast_copy_teximage1d;
ctx->Driver.CopyTexImage2D = _swrast_copy_teximage2d;
ctx->Driver.CopyTexSubImage1D = _swrast_copy_texsubimage1d;
ctx->Driver.CopyTexSubImage2D = _swrast_copy_texsubimage2d;
ctx->Driver.CopyTexSubImage3D = _swrast_copy_texsubimage3d;
ctx->Driver.CopyColorTable = _swrast_CopyColorTable;
ctx->Driver.CopyColorSubTable = _swrast_CopyColorSubTable;
ctx->Driver.CopyConvolutionFilter1D = _swrast_CopyConvolutionFilter1D;
ctx->Driver.CopyConvolutionFilter2D = _swrast_CopyConvolutionFilter2D;
ctx->Driver.BaseCompressedTexFormat = _mesa_base_compressed_texformat;
ctx->Driver.CompressedTextureSize = _mesa_compressed_texture_size;
ctx->Driver.GetCompressedTexImage = _mesa_get_compressed_teximage;
swdd->SetReadBuffer = set_read_buffer;
/* Pixel/span writing functions: */
swdd->WriteRGBASpan = write_rgba_span;
swdd->WriteRGBSpan = write_rgb_span;
swdd->WriteMonoRGBASpan = write_mono_rgba_span;
swdd->WriteRGBAPixels = write_rgba_pixels;
swdd->WriteMonoRGBAPixels = write_mono_rgba_pixels;
swdd->WriteCI32Span = write_ci32_span;
swdd->WriteCI8Span = write_ci8_span;
swdd->WriteMonoCISpan = write_mono_ci_span;
swdd->WriteCI32Pixels = write_ci32_pixels;
swdd->WriteMonoCIPixels = write_mono_ci_pixels;
swdd->ReadCI32Span = read_ci32_span;
swdd->ReadRGBASpan = read_rgba_span;
swdd->ReadCI32Pixels = read_ci32_pixels;
swdd->ReadRGBAPixels = read_rgba_pixels;
#endif // 0
#endif // !SET_FPOINTERS_ONCE
tnl->Driver.RunPipeline = _tnl_run_pipeline;
_swrast_InvalidateState( ctx, new_state );
@@ -1106,7 +1252,11 @@ WMesaContext WMesaCreateContext( HWND hWnd, HPALETTE* Pal,
#ifdef DITHER
if ((true_color_flag==GL_FALSE) && (rgb_flag == GL_TRUE)){
c->dither_flag = GL_TRUE;
#ifdef USE_WING
c->hPalHalfTone = WinGCreateHalftonePalette();
#else
c->hPalHalfTone = CreateHalftonePalette(c->hDC);
#endif
}
else
c->dither_flag = GL_FALSE;
@@ -1209,14 +1359,19 @@ WMesaContext WMesaCreateContext( HWND hWnd, HPALETTE* Pal,
*/
{
GLcontext *ctx = c->gl_ctx;
_swrast_CreateContext( ctx );
_ac_CreateContext( ctx );
_tnl_CreateContext( ctx );
_swsetup_CreateContext( ctx );
#ifdef SET_FPOINTERS_ONCE
SetFunctionPointers(ctx);
#endif // SET_FPOINTERS_ONCE
_swsetup_Wakeup( ctx );
}
#ifdef COMPILE_SETPIXEL
ChooseSetPixel(c);
#endif
return c;
}
@@ -1296,7 +1451,9 @@ void WMesaSwapBuffers( void )
void WMesaPaletteChange(HPALETTE Pal)
{
#ifndef DDRAW
int vRet;
#endif
LPPALETTEENTRY pPal;
if (Current && (Current->rgb_flag==GL_FALSE ||
Current->dither_flag == GL_TRUE))
@@ -1407,33 +1564,121 @@ void wmCreatePalette( PWMC pwdc )
}
void wmSetPixel(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
void
#ifdef COMPILE_SETPIXEL
wmSetPixelDefault(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
{
if (Current->db_flag) {
LPBYTE lpb = pwc->pbPixels;
UINT nBypp = pwc->cColorBits >> 3;
UINT nOffset = iPixel % nBypp;
lpb += pwc->ScanWidth * iScanLine;
lpb += iPixel * nBypp;
if(nBypp == 1){
if(pwc->dither_flag)
*lpb = DITHER_RGB_2_8BIT(r,g,b,iScanLine,iPixel);
else
*lpb = BGR8(r,g,b);
}
else if(nBypp == 2)
*((LPWORD)lpb) = BGR16(r,g,b);
else if (nBypp == 3)
*((LPDWORD)lpb) = BGR24(r,g,b);
else if (nBypp == 4)
*((LPDWORD)lpb) = BGR32(r,g,b);
}
else{
SetPixel(Current->hDC, iPixel, iScanLine, RGB(r,g,b));
}
if (Current->db_flag)
{
#ifdef DDRAW
HDC hdc = NULL;
Current->lpDDSOffScreen->lpVtbl->Unlock(Current->lpDDSOffScreen,NULL);
Current->lpDDSOffScreen->lpVtbl->GetDC(Current->lpDDSOffScreen,&hdc);
SetPixelV(hdc,iPixel, iScanLine, RGB(r,g,b));
Current->lpDDSOffScreen->lpVtbl->ReleaseDC(Current->lpDDSOffScreen,hdc);
while (Current->lpDDSOffScreen->lpVtbl->Lock(Current->lpDDSOffScreen,NULL, &(Current->ddsd), 0, NULL) == DDERR_WASSTILLDRAWING);
#else
SetPixelV(Current->hDC, iPixel, iScanLine, RGB(r,g,b));
#endif
}
else
{
SetPixelV(Current->hDC, iPixel+pwc->rectSurface.left, pwc->rectSurface.top+iScanLine, RGB(r,g,b));
}
}
#else
wmSetPixel(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
{
if (Current->db_flag)
{
LPBYTE lpb = pwc->pbPixels;
UINT nBypp = pwc->cColorBits >> 3;
lpb += pwc->ScanWidth * iScanLine;
lpb += iPixel * nBypp;
if(nBypp == 1)
{
if(pwc->dither_flag)
*lpb = DITHER_RGB_2_8BIT(r,g,b,iScanLine,iPixel);
else
*lpb = BGR8(r,g,b);
}
else if(nBypp == 2)
*((LPWORD)lpb) = BGR16(r,g,b);
else if (nBypp == 3)
*((LPDWORD)lpb) = BGR24(r,g,b);
else if (nBypp == 4)
*((LPDWORD)lpb) = BGR32(r,g,b);
}
else
{
SetPixel(Current->hDC, iPixel, iScanLine, RGB(r,g,b));
}
}
#endif
#ifdef COMPILE_SETPIXEL
void wmSetPixel4(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
{
LPDWORD lpdw = ((LPDWORD)(pwc->pbPixels + pwc->ScanWidth * iScanLine)) + iPixel;
*lpdw = BGR32(r,g,b);
// LPBYTE lpb = pwc->pbPixels + pwc->ScanWidth * iScanLine + iPixel + iPixel + iPixel + iPixel;
// *((LPDWORD)lpb) = BGR32(r,g,b);
}
void wmSetPixel3(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
{
LPBYTE lpb = pwc->pbPixels + pwc->ScanWidth * iScanLine + iPixel + iPixel + iPixel;
*((LPDWORD)lpb) = BGR24(r,g,b);
}
void wmSetPixel2(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
{
LPWORD lpw = ((LPWORD)(pwc->pbPixels + pwc->ScanWidth * iScanLine)) + iPixel;
*lpw = BGR16(r,g,b);
// LPBYTE lpb = pwc->pbPixels + pwc->ScanWidth * iScanLine + iPixel + iPixel;
// *((LPWORD)lpb) = BGR16(r,g,b);
}
void wmSetPixel1(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
{
LPBYTE lpb = pwc->pbPixels + pwc->ScanWidth * iScanLine + iPixel;
*lpb = BGR8(r,g,b);
}
void wmSetPixel1Dither(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b)
{
LPBYTE lpb = pwc->pbPixels + pwc->ScanWidth * iScanLine + iPixel;
*lpb = DITHER_RGB_2_8BIT(r,g,b,iScanLine,iPixel);
}
void ChooseSetPixel(PWMC pwc)
{
UINT nBypp = (pwc ) ? pwc->cColorBits >> 3 : 0;
switch(nBypp)
{
case 1:
pwc->wmSetPixel = pwc->dither_flag ? &wmSetPixel1Dither : &wmSetPixel1;
break;
case 2:
pwc->wmSetPixel = &wmSetPixel2;
break;
case 3:
pwc->wmSetPixel = &wmSetPixel3;
break;
case 4:
pwc->wmSetPixel = &wmSetPixel4;
break;
default:
pwc->wmSetPixel = &wmSetPixelDefault;
break;
}
}
#endif
void wmCreateDIBSection(
HDC hDC,
@@ -1455,7 +1700,7 @@ void wmCreateDIBSection(
pwc->ScanWidth = 2* pwc->pitch;
dwSize = sizeof(BITMAPINFO) + (dwScanWidth * pwc->height);
#ifdef USE_MAPPED_FILE
pwc->dib.hFileMap = CreateFileMapping((HANDLE)PAGE_FILE,
NULL,
PAGE_READWRITE | SEC_COMMIT,
@@ -1476,13 +1721,15 @@ void wmCreateDIBSection(
CloseHandle(pwc->dib.hFileMap);
return;
}
CopyMemory(pwc->dib.base, pbmi, sizeof(BITMAPINFO));
#endif // USE_MAPPED_FILE
hic = CreateIC("display", NULL, NULL, NULL);
pwc->dib.hDC = CreateCompatibleDC(hic);
#ifdef USE_MAPPED_FILE
pwc->hbmDIB = CreateDIBSection(hic,
&(pwc->bmi),
@@ -1490,6 +1737,14 @@ void wmCreateDIBSection(
&(pwc->pbPixels),
pwc->dib.hFileMap,
0);
#else
pwc->hbmDIB = CreateDIBSection(hic,
&(pwc->bmi),
(iUsage ? DIB_PAL_COLORS : DIB_RGB_COLORS),
&(pwc->pbPixels),
0,
0);
#endif // USE_MAPPED_FILE
pwc->ScreenMem = pwc->addrOffScreen = pwc->pbPixels;
pwc->hOldBitmap = SelectObject(pwc->dib.hDC, pwc->hbmDIB);
@@ -1514,7 +1769,7 @@ BOOL wmFlush(PWMC pwc)
#ifdef DDRAW
if (pwc->lpDDSOffScreen == NULL)
if(DDCreateOffScreen(pwc) == GL_FALSE)
return;
return FALSE;
pwc->lpDDSOffScreen->lpVtbl->Unlock(pwc->lpDDSOffScreen, NULL);
@@ -1565,6 +1820,79 @@ BOOL wmFlush(PWMC pwc)
#if !defined(NO_STEREO)
static void __gluMakeIdentityf(GLfloat m[16])
{
m[0+4*0] = 1; m[0+4*1] = 0; m[0+4*2] = 0; m[0+4*3] = 0;
m[1+4*0] = 0; m[1+4*1] = 1; m[1+4*2] = 0; m[1+4*3] = 0;
m[2+4*0] = 0; m[2+4*1] = 0; m[2+4*2] = 1; m[2+4*3] = 0;
m[3+4*0] = 0; m[3+4*1] = 0; m[3+4*2] = 0; m[3+4*3] = 1;
}
static void normalize(float v[3])
{
float r;
r = sqrt( v[0]*v[0] + v[1]*v[1] + v[2]*v[2] );
if (r == 0.0) return;
v[0] /= r;
v[1] /= r;
v[2] /= r;
}
static void cross(float v1[3], float v2[3], float result[3])
{
result[0] = v1[1]*v2[2] - v1[2]*v2[1];
result[1] = v1[2]*v2[0] - v1[0]*v2[2];
result[2] = v1[0]*v2[1] - v1[1]*v2[0];
}
static void
__gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx,
GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy,
GLdouble upz)
{
int i;
float forward[3], side[3], up[3];
GLfloat m[4][4];
forward[0] = centerx - eyex;
forward[1] = centery - eyey;
forward[2] = centerz - eyez;
up[0] = upx;
up[1] = upy;
up[2] = upz;
normalize(forward);
/* Side = forward x up */
cross(forward, up, side);
normalize(side);
/* Recompute up as: up = side x forward */
cross(side, forward, up);
__gluMakeIdentityf(&m[0][0]);
m[0][0] = side[0];
m[1][0] = side[1];
m[2][0] = side[2];
m[0][1] = up[0];
m[1][1] = up[1];
m[2][1] = up[2];
m[0][2] = -forward[0];
m[1][2] = -forward[1];
m[2][2] = -forward[2];
glMultMatrixf(&m[0][0]);
glTranslated(-eyex, -eyey, -eyez);
}
GLfloat viewDistance = 1.0;
void WMesaShowStereo(GLuint list)
{
@@ -1585,7 +1913,7 @@ void WMesaShowStereo(GLuint list)
glGetFloatv(GL_MODELVIEW_MATRIX,cm);
glLoadIdentity();
gluLookAt(viewDistance/2,0.0,0.0 ,
__gluLookAt(viewDistance/2,0.0,0.0 ,
viewDistance/2,0.0,-1.0,
0.0,1.0,0.0 );
glMultMatrixf( cm );
@@ -1595,7 +1923,7 @@ void WMesaShowStereo(GLuint list)
glGetFloatv(GL_MODELVIEW_MATRIX,cm);
glLoadIdentity();
gluLookAt(-viewDistance/2,0.0,0.0 ,
__gluLookAt(-viewDistance/2,0.0,0.0 ,
-viewDistance/2,0.0,-1.0,
0.0,1.0,0.0 );
glMultMatrixf(cm);
@@ -1774,7 +2102,7 @@ static void DDFreePrimarySurface(WMesaContext wc)
static BOOL DDCreatePrimarySurface(WMesaContext wc)
{
HRESULT ddrval;
DDSCAPS ddscaps;
// DDSCAPS ddscaps;
wc->ddsd.dwSize = sizeof( wc->ddsd );
wc->ddsd.dwFlags = DDSD_CAPS;
wc->ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
@@ -1786,7 +2114,7 @@ static BOOL DDCreatePrimarySurface(WMesaContext wc)
return initFail(wc->hwnd , wc);
}
if(wc->db_flag == GL_FALSE)
wc->lpDDSPrimary->lpVtbl->GetDC(wc->lpDDSPrimary, wc->hDC);
wc->lpDDSPrimary->lpVtbl->GetDC(wc->lpDDSPrimary, &(wc->hDC));
return TRUE;
}
@@ -1831,6 +2159,80 @@ static BOOL DDCreateOffScreen(WMesaContext wc)
return TRUE;
}
typedef
struct tagWMesaContextList
{
WMesaContext wc;
struct tagWMesaContextList *next;
}WMesaContextList;
WMesaContextList *head = 0;
void AddContext(WMesaContext wc)
{
WMesaContextList *lst = (WMesaContextList *)malloc(sizeof(WMesaContextList));
lst->wc = wc;
if( head )
lst->next = head;
head = lst;
}
WMesaContext FindContext(HWND hWnd)
{
WMesaContextList *tmp = head;
while(tmp)
{
if( tmp->wc->hwnd == hWnd )
return tmp->wc;
tmp = tmp->next;
}
return NULL;
}
void RemoveContext(HWND hWnd)
{
WMesaContextList *tmp = head;
if(tmp )
{
if( tmp->wc->hwnd == hWnd )
{
WMesaContextList *lst = tmp;
head = tmp->next;
free((void *)lst);
}
else
while(tmp->next)
{
if( tmp->next->wc->hwnd == hWnd )
{
WMesaContextList *lst = tmp->next;
tmp->next = tmp->next->next;
free((void *)lst);
}
tmp = tmp->next;
}
}
}
static LRESULT CALLBACK MyWndProc(HWND hwnd,UINT message,WPARAM wParam, LPARAM lParam)
{
WMesaContext wc = Current->hwnd == hwnd ? Current : FindContext(hwnd);
if( wc )
{
LRESULT lret = CallWindowProc((WNDPROC)(wc->oldWndProc),hwnd,message,wParam,lParam);
if( message = WM_MOVE )
{
POINT pt = {0};
GetClientRect( wc->hwnd, &(wc->rectSurface) );
ClientToScreen( hwnd, &pt );
OffsetRect(&(wc->rectSurface), pt.x, pt.y);
}
return lret;
}
return 0L;
}
/*
* doInit - do work required for every instance of the application:
* create the window, initialize data
@@ -1838,11 +2240,11 @@ static BOOL DDCreateOffScreen(WMesaContext wc)
static BOOL DDInit( WMesaContext wc, HWND hwnd)
{
HRESULT ddrval;
DWORD dwFrequency;
LPDIRECTDRAW lpDD; // DirectDraw object
LPDIRECTDRAW2 lpDD2;
// DWORD dwFrequency;
// LPDIRECTDRAW lpDD; // DirectDraw object
// LPDIRECTDRAW2 lpDD2;
LPDIRECTDRAWCLIPPER pcClipper = NULL;
wc->fullScreen = displayOptions.fullScreen;
wc->gMode = displayOptions.mode;
@@ -1922,11 +2324,38 @@ static BOOL DDInit( WMesaContext wc, HWND hwnd)
return initFail(hwnd, wc);
if(wc->db_flag)
return DDCreateOffScreen(wc);
DDCreateOffScreen(wc);
if( FAILED( ddrval = wc->lpDD->lpVtbl->CreateClipper(wc->lpDD, 0, &pcClipper, NULL ) ) )
return E_FAIL;
if( FAILED( ddrval = pcClipper->lpVtbl->SetHWnd(pcClipper, 0, wc->hwnd ) ) )
{
pcClipper->lpVtbl->Release(pcClipper);
return E_FAIL;
}
if( FAILED( ddrval = wc->lpDDSPrimary->lpVtbl->SetClipper(wc->lpDDSPrimary, pcClipper ) ) )
{
pcClipper->lpVtbl->Release(pcClipper);
return E_FAIL;
}
// Done with clipper
pcClipper->lpVtbl->Release(pcClipper);
AddContext(wc);
// Hook the window so we can update the drawing rectangle when the window moves
wc->oldWndProc = SetWindowLong(wc->hwnd,GWL_WNDPROC,(LONG)MyWndProc);
return TRUE;
} /* DDInit */
static void DDFree( WMesaContext wc)
{
RemoveContext(wc->hwnd);
SetWindowLong(wc->hwnd,GWL_WNDPROC,(LONG)(wc->oldWndProc));
wc->oldWndProc = 0;
if( wc->lpDD != NULL )
{
DDFreePrimarySurface(wc);
@@ -1967,7 +2396,7 @@ void WMesaMove(void)
************************************************/
#if 0
#if defined(FAST_RASTERIZERS)
/*

View File

@@ -57,10 +57,23 @@
#ifndef DDMESADEF_H
#define DDMESADEF_H
// uncomment this to use DirectDraw driver
//#define DDRAW 1
// uncomment this to use a pointer to a function for setting the pixels
// in the buffer
#define COMPILE_SETPIXEL 1
// uncomment this to enable the fast win32 rasterizers ( commented out for MesaGL 4.0 )
// #define FAST_RASTERIZERS 1
// uncomment this to enable setting function pointers once inside of
// WMesaCreateContext instead of on every call to wmesa_update_state()
#define SET_FPOINTERS_ONCE 1
#include <windows.h>
#include <GL\gl.h>
#include "context.h"
#ifdef DDRAW
#define DIRECTDRAW_VERSION 0x0100
#include <ddraw.h>
#endif
//#include "profile.h"
@@ -79,6 +92,9 @@ typedef struct _dibSection{
LPVOID base;
}WMDIBSECTION, *PWMDIBSECTION;
#ifdef COMPILE_SETPIXEL
typedef void (*SETPIXELTYPE)(struct wmesa_context *pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b);
#endif
typedef struct wmesa_context{
GLcontext *gl_ctx; /* The core GL/Mesa context */
@@ -132,15 +148,19 @@ typedef struct wmesa_context{
LPDIRECTDRAWSURFACE lpDDSOffScreen; // DirectDraw off screen surface
LPDIRECTDRAWPALETTE lpDDPal; // DirectDraw palette
BOOL bActive; // is application active?
DDSURFACEDESC ddsd;
int fullScreen;
int gMode ;
DDSURFACEDESC ddsd; // surface description
int fullScreen; // fullscreen ?
int gMode ; // fullscreen mode
LONG oldWndProc; // old Window proc. we need to hook WM_MOVE message to update the drawing rectangle
#endif
RECT rectOffScreen;
RECT rectSurface;
HWND hwnd;
DWORD pitch;
PBYTE addrOffScreen;
#ifdef COMPILE_SETPIXEL
SETPIXELTYPE wmSetPixel;
#endif // COMPILE_SETPIXEL
//#ifdef PROFILE
// MESAPROF profile;
//#endif

View File

@@ -1,8 +1,8 @@
/* $Id: fakeglx.c,v 1.59 2001/10/22 22:45:18 brianp Exp $ */
/* $Id: fakeglx.c,v 1.58.2.1 2001/11/25 18:50:20 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 4.1
* Version: 4.0.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -66,7 +66,7 @@
#define SERVER_MINOR_VERSION 4
/* This is appended onto the glXGetClient/ServerString version strings. */
#define MESA_GLX_VERSION "Mesa 4.1"
#define MESA_GLX_VERSION "Mesa 4.0.1"
/* Who implemented this GLX? */
#define VENDOR "Brian Paul"

View File

@@ -1,4 +1,4 @@
/* $Id: xm_api.c,v 1.29 2001/09/12 03:32:29 brianp Exp $ */
/* $Id: xm_api.c,v 1.29.2.1 2001/11/06 16:00:58 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -1260,7 +1260,7 @@ static GLboolean initialize_visual_and_buffer( int client,
* reports bugs.
*/
if (getenv("MESA_INFO")) {
fprintf(stderr, "X/Mesa visual = %p\n", v);
fprintf(stderr, "X/Mesa visual = %p\n", (void *) v);
fprintf(stderr, "X/Mesa dithered pf = %u\n", v->dithered_pf);
fprintf(stderr, "X/Mesa undithered pf = %u\n", v->undithered_pf);
fprintf(stderr, "X/Mesa level = %d\n", v->level);

View File

@@ -1,4 +1,4 @@
/* $Id: xm_dd.c,v 1.26 2001/09/12 03:32:29 brianp Exp $ */
/* $Id: xm_dd.c,v 1.26.2.1 2001/11/28 11:54:45 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -854,7 +854,7 @@ get_string( GLcontext *ctx, GLenum name )
#endif
case GL_VENDOR:
#ifdef XFree86Server
return (const GLubyte *) "VA Linux Systems, Inc.";
return (const GLubyte *) "Mesa project: www.mesa3d.org";
#else
return NULL;
#endif

View File

@@ -1,8 +1,8 @@
/* $Id: glapi.c,v 1.58 2001/10/17 13:34:08 brianp Exp $ */
/* $Id: glapi.c,v 1.58.2.1 2001/11/18 23:24:49 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.0.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -971,8 +971,7 @@ static struct name_address_offset static_functions[] = {
#undef NAME
/* ARB 12. GL_ARB_texture_compression */
#if 000
#if defined(GL_ARB_texture_compression) && defined(_gloffset_CompressedTexImage3DARB)
#ifdef GL_ARB_texture_compression
#define NAME(X) (GLvoid *) X
#else
#define NAME(X) (GLvoid *) NotImplemented
@@ -985,7 +984,6 @@ static struct name_address_offset static_functions[] = {
{ "glCompressedTexSubImage1DARB", NAME(glCompressedTexSubImage1DARB), _gloffset_CompressedTexSubImage1DARB },
{ "glGetCompressedTexImageARB", NAME(glGetCompressedTexImageARB), _gloffset_GetCompressedTexImageARB },
#undef NAME
#endif
/* 2. GL_EXT_blend_color */
#ifdef GL_EXT_blend_color
@@ -1109,11 +1107,22 @@ static struct name_address_offset static_functions[] = {
#define NAME(X) (GLvoid *) NotImplemented
#endif
{ "glPixelTexGenParameterfSGIS", NAME(glPixelTexGenParameterfSGIS), _gloffset_PixelTexGenParameterfSGIS },
{ "glPixelTexGenParameterfvSGIS", NAME(glPixelTexGenParameterfvSGIS), _gloffset_PixelTexGenParameterfvSGIS },
{ "glPixelTexGenParameteriSGIS", NAME(glPixelTexGenParameteriSGIS), _gloffset_PixelTexGenParameteriSGIS },
{ "glPixelTexGenParameterivSGIS", NAME(glPixelTexGenParameterivSGIS), _gloffset_PixelTexGenParameterivSGIS },
{ "glGetPixelTexGenParameterfvSGIS", NAME(glGetPixelTexGenParameterfvSGIS), _gloffset_GetPixelTexGenParameterfvSGIS },
{ "glGetPixelTexGenParameterivSGIS", NAME(glGetPixelTexGenParameterivSGIS), _gloffset_GetPixelTexGenParameterivSGIS },
#undef NAME
/* 15a. GL_SGIX_pixel_texture */
#ifdef GL_SGIX_pixel_texture
#define NAME(X) (GLvoid *) X
#else
#define NAME(X) (GLvoid *) NotImplemented
#endif
{ "glPixelTexGenSGIX", NAME(glPixelTexGenSGIX), _gloffset_PixelTexGenSGIX },
#undef NAME
/* 16. GL_SGIS_texture4D */
#ifdef GL_SGIS_texture4D
#define NAME(X) (GLvoid *) X
@@ -1511,7 +1520,7 @@ static struct name_address_offset static_functions[] = {
{ "glFogCoordfEXT", NAME(glFogCoordfEXT), _gloffset_FogCoordfEXT },
{ "glFogCoordfvEXT", NAME(glFogCoordfvEXT), _gloffset_FogCoordfvEXT },
{ "glFogCoorddEXT", NAME(glFogCoorddEXT), _gloffset_FogCoorddEXT },
{ "glFogCoorddEXT", NAME(glFogCoorddEXT), _gloffset_FogCoorddEXT },
{ "glFogCoorddvEXT", NAME(glFogCoorddvEXT), _gloffset_FogCoorddvEXT },
{ "glFogCoordPointerEXT", NAME(glFogCoordPointerEXT), _gloffset_FogCoordPointerEXT },
#undef NAME
@@ -1699,7 +1708,30 @@ static struct name_address_offset static_functions[] = {
#else
#define NAME(X) (GLvoid *) NotImplemented
#endif
{ "glWindowPos2iMESA", NAME(glWindowPos2iMESA), _gloffset_WindowPos2iMESA },
{ "glWindowPos2sMESA", NAME(glWindowPos2sMESA), _gloffset_WindowPos2sMESA },
{ "glWindowPos2fMESA", NAME(glWindowPos2fMESA), _gloffset_WindowPos2fMESA },
{ "glWindowPos2dMESA", NAME(glWindowPos2dMESA), _gloffset_WindowPos2dMESA },
{ "glWindowPos2ivMESA", NAME(glWindowPos2ivMESA), _gloffset_WindowPos2ivMESA },
{ "glWindowPos2svMESA", NAME(glWindowPos2svMESA), _gloffset_WindowPos2svMESA },
{ "glWindowPos2fvMESA", NAME(glWindowPos2fvMESA), _gloffset_WindowPos2fvMESA },
{ "glWindowPos2dvMESA", NAME(glWindowPos2dvMESA), _gloffset_WindowPos2dvMESA },
{ "glWindowPos3iMESA", NAME(glWindowPos3iMESA), _gloffset_WindowPos3iMESA },
{ "glWindowPos3sMESA", NAME(glWindowPos3sMESA), _gloffset_WindowPos3sMESA },
{ "glWindowPos3fMESA", NAME(glWindowPos3fMESA), _gloffset_WindowPos3fMESA },
{ "glWindowPos3dMESA", NAME(glWindowPos3dMESA), _gloffset_WindowPos3dMESA },
{ "glWindowPos3ivMESA", NAME(glWindowPos3ivMESA), _gloffset_WindowPos3ivMESA },
{ "glWindowPos3svMESA", NAME(glWindowPos3svMESA), _gloffset_WindowPos3svMESA },
{ "glWindowPos3fvMESA", NAME(glWindowPos3fvMESA), _gloffset_WindowPos3fvMESA },
{ "glWindowPos3dvMESA", NAME(glWindowPos3dvMESA), _gloffset_WindowPos3dvMESA },
{ "glWindowPos4iMESA", NAME(glWindowPos4iMESA), _gloffset_WindowPos4iMESA },
{ "glWindowPos4sMESA", NAME(glWindowPos4sMESA), _gloffset_WindowPos4sMESA },
{ "glWindowPos4fMESA", NAME(glWindowPos4fMESA), _gloffset_WindowPos4fMESA },
{ "glWindowPos4dMESA", NAME(glWindowPos4dMESA), _gloffset_WindowPos4dMESA },
{ "glWindowPos4ivMESA", NAME(glWindowPos4ivMESA), _gloffset_WindowPos4ivMESA },
{ "glWindowPos4svMESA", NAME(glWindowPos4svMESA), _gloffset_WindowPos4svMESA },
{ "glWindowPos4fvMESA", NAME(glWindowPos4fvMESA), _gloffset_WindowPos4fvMESA },
{ "glWindowPos4dvMESA", NAME(glWindowPos4dvMESA), _gloffset_WindowPos4dvMESA },
#undef NAME
/* 209. WGL_EXT_multisample */

View File

@@ -313,7 +313,7 @@ struct _glapi_table
void (*Translatef)(GLfloat x, GLfloat y, GLfloat z); /* 304 */
void (*Viewport)(GLint x, GLint y, GLsizei width, GLsizei height); /* 305 */
void (*ArrayElement)(GLint i); /* 306 */
void (*BindTexture)(GLenum target, GLenum texture); /* 307 */
void (*BindTexture)(GLenum target, GLuint texture); /* 307 */
void (*ColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 308 */
void (*DisableClientState)(GLenum array); /* 309 */
void (*DrawArrays)(GLenum mode, GLint first, GLsizei count); /* 310 */
@@ -328,16 +328,16 @@ struct _glapi_table
void (*PolygonOffset)(GLfloat factor, GLfloat units); /* 319 */
void (*TexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 320 */
void (*VertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 321 */
GLboolean (*AreTexturesResident)(GLsizei n, const GLenum * textures, GLboolean * residences); /* 322 */
GLboolean (*AreTexturesResident)(GLsizei n, const GLuint * textures, GLboolean * residences); /* 322 */
void (*CopyTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); /* 323 */
void (*CopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); /* 324 */
void (*CopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); /* 325 */
void (*CopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); /* 326 */
void (*DeleteTextures)(GLsizei n, const GLenum * textures); /* 327 */
void (*GenTextures)(GLsizei n, GLenum * textures); /* 328 */
void (*DeleteTextures)(GLsizei n, const GLuint * textures); /* 327 */
void (*GenTextures)(GLsizei n, GLuint * textures); /* 328 */
void (*GetPointerv)(GLenum pname, GLvoid * * params); /* 329 */
GLboolean (*IsTexture)(GLenum texture); /* 330 */
void (*PrioritizeTextures)(GLsizei n, const GLenum * textures, const GLclampf * priorities); /* 331 */
GLboolean (*IsTexture)(GLuint texture); /* 330 */
void (*PrioritizeTextures)(GLsizei n, const GLuint * textures, const GLclampf * priorities); /* 331 */
void (*TexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels); /* 332 */
void (*TexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); /* 333 */
void (*PopClientAttrib)(void); /* 334 */
@@ -445,9 +445,9 @@ struct _glapi_table
void (*GetPixelTexGenParameterfvSGIS)(GLenum pname, GLfloat * params); /* 436 */
void (*TexImage4DSGIS)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid * pixels); /* 437 */
void (*TexSubImage4DSGIS)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid * pixels); /* 438 */
GLboolean (*AreTexturesResidentEXT)(GLsizei n, const GLenum * textures, GLboolean * residences); /* 439 */
void (*GenTexturesEXT)(GLsizei n, GLenum * textures); /* 440 */
GLboolean (*IsTextureEXT)(GLenum texture); /* 441 */
GLboolean (*AreTexturesResidentEXT)(GLsizei n, const GLuint * textures, GLboolean * residences); /* 439 */
void (*GenTexturesEXT)(GLsizei n, GLuint * textures); /* 440 */
GLboolean (*IsTextureEXT)(GLuint texture); /* 441 */
void (*DetailTexFuncSGIS)(GLenum target, GLsizei n, const GLfloat * points); /* 442 */
void (*GetDetailTexFuncSGIS)(GLenum target, GLfloat * points); /* 443 */
void (*SharpenTexFuncSGIS)(GLenum target, GLsizei n, const GLfloat * points); /* 444 */
@@ -566,7 +566,7 @@ struct _glapi_table
void (*CompressedTexSubImage3DARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data); /* 557 */
void (*CompressedTexSubImage2DARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data); /* 558 */
void (*CompressedTexSubImage1DARB)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data); /* 559 */
void (*GetCompressedTexImageARB)(GLenum target, GLint level, void * img); /* 560 */
void (*GetCompressedTexImageARB)(GLenum target, GLint level, GLvoid * img); /* 560 */
void (*SecondaryColor3bEXT)(GLbyte red, GLbyte green, GLbyte blue); /* 561 */
void (*SecondaryColor3bvEXT)(const GLbyte * v); /* 562 */
void (*SecondaryColor3dEXT)(GLdouble red, GLdouble green, GLdouble blue); /* 563 */

View File

@@ -1,4 +1,4 @@
/* $Id: glapitemp.h,v 1.31 2001/10/17 13:29:02 brianp Exp $ */
/* $Id: glapitemp.h,v 1.31.2.1 2001/11/01 00:38:37 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -159,7 +159,7 @@ KEYWORD1 void KEYWORD2 NAME(ClearStencil)(GLint s)
KEYWORD1 void KEYWORD2 NAME(ClipPlane)(GLenum plane, const GLdouble *equation)
{
DISPATCH(ClipPlane, (plane, equation), (F, "glClipPlane(%p);", equation));
DISPATCH(ClipPlane, (plane, equation), (F, "glClipPlane(%p);", (void *) equation));
}
KEYWORD1 void KEYWORD2 NAME(Color3b)(GLbyte red, GLbyte green, GLbyte blue)
@@ -249,37 +249,37 @@ KEYWORD1 void KEYWORD2 NAME(Color3bv)(const GLbyte *v)
KEYWORD1 void KEYWORD2 NAME(Color3dv)(const GLdouble *v)
{
DISPATCH(Color3dv, (v), (F, "glColor3dv(%p);", v));
DISPATCH(Color3dv, (v), (F, "glColor3dv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color3fv)(const GLfloat *v)
{
DISPATCH(Color3fv, (v), (F, "glColor3fv(%p);", v));
DISPATCH(Color3fv, (v), (F, "glColor3fv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color3iv)(const GLint *v)
{
DISPATCH(Color3iv, (v), (F, "glColor3iv(%p);", v));
DISPATCH(Color3iv, (v), (F, "glColor3iv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color3sv)(const GLshort *v)
{
DISPATCH(Color3sv, (v), (F, "glColor3sv(%p);", v));
DISPATCH(Color3sv, (v), (F, "glColor3sv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color3ubv)(const GLubyte *v)
{
DISPATCH(Color3ubv, (v), (F, "glColor3ubv(%p);", v));
DISPATCH(Color3ubv, (v), (F, "glColor3ubv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color3uiv)(const GLuint *v)
{
DISPATCH(Color3uiv, (v), (F, "glColor3uiv(%p);", v));
DISPATCH(Color3uiv, (v), (F, "glColor3uiv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color3usv)(const GLushort *v)
{
DISPATCH(Color3usv, (v), (F, "glColor3usv(%p);", v));
DISPATCH(Color3usv, (v), (F, "glColor3usv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color4bv)(const GLbyte *v)
@@ -289,37 +289,37 @@ KEYWORD1 void KEYWORD2 NAME(Color4bv)(const GLbyte *v)
KEYWORD1 void KEYWORD2 NAME(Color4dv)(const GLdouble *v)
{
DISPATCH(Color4dv, (v), (F, "glColor4dv(%p);", v));
DISPATCH(Color4dv, (v), (F, "glColor4dv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color4fv)(const GLfloat *v)
{
DISPATCH(Color4fv, (v), (F, "glColor4fv(%p);", v));
DISPATCH(Color4fv, (v), (F, "glColor4fv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color4iv)(const GLint *v)
{
DISPATCH(Color4iv, (v), (F, "glColor4iv(%p);", v));
DISPATCH(Color4iv, (v), (F, "glColor4iv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color4sv)(const GLshort *v)
{
DISPATCH(Color4sv, (v), (F, "glColor4sv(%p);", v));
DISPATCH(Color4sv, (v), (F, "glColor4sv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color4ubv)(const GLubyte *v)
{
DISPATCH(Color4ubv, (v), (F, "glColor4ubv(%p);", v));
DISPATCH(Color4ubv, (v), (F, "glColor4ubv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color4uiv)(const GLuint *v)
{
DISPATCH(Color4uiv, (v), (F, "glColor4uiv(%p);", v));
DISPATCH(Color4uiv, (v), (F, "glColor4uiv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Color4usv)(const GLushort *v)
{
DISPATCH(Color4usv, (v), (F, "glColor4usv(%p);", v));
DISPATCH(Color4usv, (v), (F, "glColor4usv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(ColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
@@ -469,7 +469,7 @@ KEYWORD1 void KEYWORD2 NAME(EvalPoint2)(GLint i, GLint j)
KEYWORD1 void KEYWORD2 NAME(FeedbackBuffer)(GLsizei size, GLenum type, GLfloat *buffer)
{
DISPATCH(FeedbackBuffer, (size, type, buffer), (F, "glFeedbackBuffer(%d, 0x%x, %p);", size, type, buffer));
DISPATCH(FeedbackBuffer, (size, type, buffer), (F, "glFeedbackBuffer(%d, 0x%x, %p);", size, type, (void *) buffer));
}
KEYWORD1 void KEYWORD2 NAME(Finish)(void)
@@ -494,12 +494,12 @@ KEYWORD1 void KEYWORD2 NAME(Fogi)(GLenum pname, GLint param)
KEYWORD1 void KEYWORD2 NAME(Fogfv)(GLenum pname, const GLfloat *params)
{
DISPATCH(Fogfv, (pname, params), (F, "glFogfv(0x%x, %p);", pname, params));
DISPATCH(Fogfv, (pname, params), (F, "glFogfv(0x%x, %p);", pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(Fogiv)(GLenum pname, const GLint *params)
{
DISPATCH(Fogiv, (pname, params), (F, "glFogiv(0x%x, %p);", pname, params));
DISPATCH(Fogiv, (pname, params), (F, "glFogiv(0x%x, %p);", pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(FrontFace)(GLenum mode)
@@ -524,12 +524,12 @@ KEYWORD1 void KEYWORD2 NAME(GetBooleanv)(GLenum pname, GLboolean *params)
KEYWORD1 void KEYWORD2 NAME(GetClipPlane)(GLenum plane, GLdouble *equation)
{
DISPATCH(GetClipPlane, (plane, equation), (F, "glGetClipPlane(x0%x, %p);", plane, equation));
DISPATCH(GetClipPlane, (plane, equation), (F, "glGetClipPlane(x0%x, %p);", plane, (void *) equation));
}
KEYWORD1 void KEYWORD2 NAME(GetDoublev)(GLenum pname, GLdouble *params)
{
DISPATCH(GetDoublev, (pname, params), (F, "glGetDoublev(0x%x, %p);", pname, params));
DISPATCH(GetDoublev, (pname, params), (F, "glGetDoublev(0x%x, %p);", pname, (void *) params));
}
KEYWORD1 GLenum KEYWORD2 NAME(GetError)(void)
@@ -539,62 +539,62 @@ KEYWORD1 GLenum KEYWORD2 NAME(GetError)(void)
KEYWORD1 void KEYWORD2 NAME(GetFloatv)(GLenum pname, GLfloat *params)
{
DISPATCH(GetFloatv, (pname, params), (F, "glGetFloatv(0x%x, %p);", pname, params));
DISPATCH(GetFloatv, (pname, params), (F, "glGetFloatv(0x%x, %p);", pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetIntegerv)(GLenum pname, GLint *params)
{
DISPATCH(GetIntegerv, (pname, params), (F, "glGetIntegerv(0x%x, %p);", pname, params));
DISPATCH(GetIntegerv, (pname, params), (F, "glGetIntegerv(0x%x, %p);", pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetLightfv)(GLenum light, GLenum pname, GLfloat *params)
{
DISPATCH(GetLightfv, (light, pname, params), (F, "glGetLightfv(0x%x, 0x%x, %p);", light, pname, params));
DISPATCH(GetLightfv, (light, pname, params), (F, "glGetLightfv(0x%x, 0x%x, %p);", light, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetLightiv)(GLenum light, GLenum pname, GLint *params)
{
DISPATCH(GetLightiv, (light, pname, params), (F, "glGetLightiv(0x%x, 0x%x, %p);", light, pname, params));
DISPATCH(GetLightiv, (light, pname, params), (F, "glGetLightiv(0x%x, 0x%x, %p);", light, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetMapdv)(GLenum target, GLenum query, GLdouble *v)
{
DISPATCH(GetMapdv, (target, query, v), (F, "glGetMapdv(0x%x, 0x%x, %p);", target, query, v));
DISPATCH(GetMapdv, (target, query, v), (F, "glGetMapdv(0x%x, 0x%x, %p);", target, query, (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(GetMapfv)(GLenum target, GLenum query, GLfloat *v)
{
DISPATCH(GetMapfv, (target, query, v), (F, "glGetMapfv(0x%x, 0x%x, %p);", target, query, v));
DISPATCH(GetMapfv, (target, query, v), (F, "glGetMapfv(0x%x, 0x%x, %p);", target, query, (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(GetMapiv)(GLenum target, GLenum query, GLint *v)
{
DISPATCH(GetMapiv, (target, query, v), (F, "glGetMapiv(0x%x, 0x%x, %p);", target, query, v));
DISPATCH(GetMapiv, (target, query, v), (F, "glGetMapiv(0x%x, 0x%x, %p);", target, query, (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(GetMaterialfv)(GLenum face, GLenum pname, GLfloat *params)
{
DISPATCH(GetMaterialfv, (face, pname, params), (F, "glGetMaterialfv(0x%x, 0x%x, %p;", face, pname, params));
DISPATCH(GetMaterialfv, (face, pname, params), (F, "glGetMaterialfv(0x%x, 0x%x, %p;", face, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetMaterialiv)(GLenum face, GLenum pname, GLint *params)
{
DISPATCH(GetMaterialiv, (face, pname, params), (F, "glGetMaterialiv(0x%x, 0x%x, %p);", face, pname, params));
DISPATCH(GetMaterialiv, (face, pname, params), (F, "glGetMaterialiv(0x%x, 0x%x, %p);", face, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetPixelMapfv)(GLenum map, GLfloat *values)
{
DISPATCH(GetPixelMapfv, (map, values), (F, "glGetPixelMapfv(0x%x, %p);", map, values));
DISPATCH(GetPixelMapfv, (map, values), (F, "glGetPixelMapfv(0x%x, %p);", map, (void *) values));
}
KEYWORD1 void KEYWORD2 NAME(GetPixelMapuiv)(GLenum map, GLuint *values)
{
DISPATCH(GetPixelMapuiv, (map, values), (F, "glGetPixelMapuiv(0x%x, %p);", map, values));
DISPATCH(GetPixelMapuiv, (map, values), (F, "glGetPixelMapuiv(0x%x, %p);", map, (void *) values));
}
KEYWORD1 void KEYWORD2 NAME(GetPixelMapusv)(GLenum map, GLushort *values)
{
DISPATCH(GetPixelMapusv, (map, values), (F, "glGetPixelMapusv(0x%x, %p);", map, values));
DISPATCH(GetPixelMapusv, (map, values), (F, "glGetPixelMapusv(0x%x, %p);", map, (void *) values));
}
KEYWORD1 void KEYWORD2 NAME(GetPolygonStipple)(GLubyte *mask)
@@ -609,27 +609,27 @@ KEYWORD1 const GLubyte * KEYWORD2 NAME(GetString)(GLenum name)
KEYWORD1 void KEYWORD2 NAME(GetTexEnvfv)(GLenum target, GLenum pname, GLfloat *params)
{
DISPATCH(GetTexEnvfv, (target, pname, params), (F, "glGettexEnvfv(0x%x, 0x%x, %p);", target, pname, params));
DISPATCH(GetTexEnvfv, (target, pname, params), (F, "glGettexEnvfv(0x%x, 0x%x, %p);", target, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetTexEnviv)(GLenum target, GLenum pname, GLint *params)
{
DISPATCH(GetTexEnviv, (target, pname, params), (F, "glGetTexEnviv(0x%x, 0x%x, %p);", target, pname, params));
DISPATCH(GetTexEnviv, (target, pname, params), (F, "glGetTexEnviv(0x%x, 0x%x, %p);", target, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetTexGeniv)(GLenum target, GLenum pname, GLint *params)
{
DISPATCH(GetTexGeniv, (target, pname, params), (F, "glGetTexGeniv(0x%x, 0x%x, %p);", target, pname, params));
DISPATCH(GetTexGeniv, (target, pname, params), (F, "glGetTexGeniv(0x%x, 0x%x, %p);", target, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetTexGendv)(GLenum target, GLenum pname, GLdouble *params)
{
DISPATCH(GetTexGendv, (target, pname, params), (F, "glGetTexGendv(0x%x, 0x%x, %p;", target, pname, params));
DISPATCH(GetTexGendv, (target, pname, params), (F, "glGetTexGendv(0x%x, 0x%x, %p;", target, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetTexGenfv)(GLenum target, GLenum pname, GLfloat *params)
{
DISPATCH(GetTexGenfv, (target, pname, params), (F, "glGetTexGenfv(0x%x, 0x%x, %p);", target, pname, params));
DISPATCH(GetTexGenfv, (target, pname, params), (F, "glGetTexGenfv(0x%x, 0x%x, %p);", target, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels)
@@ -639,22 +639,22 @@ KEYWORD1 void KEYWORD2 NAME(GetTexImage)(GLenum target, GLint level, GLenum form
KEYWORD1 void KEYWORD2 NAME(GetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params)
{
DISPATCH(GetTexLevelParameterfv, (target, level, pname, params), (F, "glGetTexLevelParameterfv(0x%x, %d, 0x%x, %p);", target, level, pname, params));
DISPATCH(GetTexLevelParameterfv, (target, level, pname, params), (F, "glGetTexLevelParameterfv(0x%x, %d, 0x%x, %p);", target, level, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params)
{
DISPATCH(GetTexLevelParameteriv, (target, level, pname, params), (F, "glGetTexLevelParameteriv(0x%x, %d, 0x%x, %p);", target, level, pname, params));
DISPATCH(GetTexLevelParameteriv, (target, level, pname, params), (F, "glGetTexLevelParameteriv(0x%x, %d, 0x%x, %p);", target, level, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params)
{
DISPATCH(GetTexParameterfv, (target, pname, params), (F, "glGetTexParameterfv(0x%x, 0x%x, %p);", target, pname, params));
DISPATCH(GetTexParameterfv, (target, pname, params), (F, "glGetTexParameterfv(0x%x, 0x%x, %p);", target, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(GetTexParameteriv)(GLenum target, GLenum pname, GLint *params)
{
DISPATCH(GetTexParameteriv, (target, pname, params), (F, "glGetTexParameteriv(0x%x, 0x%x, %p);", target, pname, params));
DISPATCH(GetTexParameteriv, (target, pname, params), (F, "glGetTexParameteriv(0x%x, 0x%x, %p);", target, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(Hint)(GLenum target, GLenum mode)
@@ -744,12 +744,12 @@ KEYWORD1 void KEYWORD2 NAME(Lighti)(GLenum light, GLenum pname, GLint param)
KEYWORD1 void KEYWORD2 NAME(Lightfv)(GLenum light, GLenum pname, const GLfloat *params)
{
DISPATCH(Lightfv, (light, pname, params), (F, "glLightfv(0x%x, 0x%x, %p);", light, pname, params));
DISPATCH(Lightfv, (light, pname, params), (F, "glLightfv(0x%x, 0x%x, %p);", light, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(Lightiv)(GLenum light, GLenum pname, const GLint *params)
{
DISPATCH(Lightiv, (light, pname, params), (F, "glLightiv(0x%x, 0x%x, %p);", light, pname, params));
DISPATCH(Lightiv, (light, pname, params), (F, "glLightiv(0x%x, 0x%x, %p);", light, pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(LightModelf)(GLenum pname, GLfloat param)
@@ -764,12 +764,12 @@ KEYWORD1 void KEYWORD2 NAME(LightModeli)(GLenum pname, GLint param)
KEYWORD1 void KEYWORD2 NAME(LightModelfv)(GLenum pname, const GLfloat *params)
{
DISPATCH(LightModelfv, (pname, params), (F, "glLightModelfv(0x%x, %p);", pname, params));
DISPATCH(LightModelfv, (pname, params), (F, "glLightModelfv(0x%x, %p);", pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(LightModeliv)(GLenum pname, const GLint *params)
{
DISPATCH(LightModeliv, (pname, params), (F, "glLightModeliv(0x%x, %p);", pname, params));
DISPATCH(LightModeliv, (pname, params), (F, "glLightModeliv(0x%x, %p);", pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(LineWidth)(GLfloat width)
@@ -794,12 +794,12 @@ KEYWORD1 void KEYWORD2 NAME(LoadIdentity)(void)
KEYWORD1 void KEYWORD2 NAME(LoadMatrixd)(const GLdouble *m)
{
DISPATCH(LoadMatrixd, (m), (F, "glLoadMatirxd(%p);", m));
DISPATCH(LoadMatrixd, (m), (F, "glLoadMatirxd(%p);", (void *) m));
}
KEYWORD1 void KEYWORD2 NAME(LoadMatrixf)(const GLfloat *m)
{
DISPATCH(LoadMatrixf, (m), (F, "glLoadMatrixf(%p);", m));
DISPATCH(LoadMatrixf, (m), (F, "glLoadMatrixf(%p);", (void *) m));
}
KEYWORD1 void KEYWORD2 NAME(LoadName)(GLuint name)
@@ -879,12 +879,12 @@ KEYWORD1 void KEYWORD2 NAME(MatrixMode)(GLenum mode)
KEYWORD1 void KEYWORD2 NAME(MultMatrixd)(const GLdouble *m)
{
DISPATCH(MultMatrixd, (m), (F, "glMultMatrixd(%p);", m));
DISPATCH(MultMatrixd, (m), (F, "glMultMatrixd(%p);", (void *) m));
}
KEYWORD1 void KEYWORD2 NAME(MultMatrixf)(const GLfloat *m)
{
DISPATCH(MultMatrixf, (m), (F, "glMultMatrixf(%p);", m));
DISPATCH(MultMatrixf, (m), (F, "glMultMatrixf(%p);", (void *) m));
}
KEYWORD1 void KEYWORD2 NAME(NewList)(GLuint list, GLenum mode)
@@ -899,7 +899,7 @@ KEYWORD1 void KEYWORD2 NAME(Normal3b)(GLbyte nx, GLbyte ny, GLbyte nz)
KEYWORD1 void KEYWORD2 NAME(Normal3bv)(const GLbyte *v)
{
DISPATCH(Normal3bv, (v), (F, "glNormal3bv(%p);", v));
DISPATCH(Normal3bv, (v), (F, "glNormal3bv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Normal3d)(GLdouble nx, GLdouble ny, GLdouble nz)
@@ -909,7 +909,7 @@ KEYWORD1 void KEYWORD2 NAME(Normal3d)(GLdouble nx, GLdouble ny, GLdouble nz)
KEYWORD1 void KEYWORD2 NAME(Normal3dv)(const GLdouble *v)
{
DISPATCH(Normal3dv, (v), (F, "glNormal3dv(%p);", v));
DISPATCH(Normal3dv, (v), (F, "glNormal3dv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Normal3f)(GLfloat nx, GLfloat ny, GLfloat nz)
@@ -919,7 +919,7 @@ KEYWORD1 void KEYWORD2 NAME(Normal3f)(GLfloat nx, GLfloat ny, GLfloat nz)
KEYWORD1 void KEYWORD2 NAME(Normal3fv)(const GLfloat *v)
{
DISPATCH(Normal3fv, (v), (F, "glNormal3fv(%p);", v));
DISPATCH(Normal3fv, (v), (F, "glNormal3fv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Normal3i)(GLint nx, GLint ny, GLint nz)
@@ -929,7 +929,7 @@ KEYWORD1 void KEYWORD2 NAME(Normal3i)(GLint nx, GLint ny, GLint nz)
KEYWORD1 void KEYWORD2 NAME(Normal3iv)(const GLint *v)
{
DISPATCH(Normal3iv, (v), (F, "glNormal3iv(%p);", v));
DISPATCH(Normal3iv, (v), (F, "glNormal3iv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Normal3s)(GLshort nx, GLshort ny, GLshort nz)
@@ -939,7 +939,7 @@ KEYWORD1 void KEYWORD2 NAME(Normal3s)(GLshort nx, GLshort ny, GLshort nz)
KEYWORD1 void KEYWORD2 NAME(Normal3sv)(const GLshort *v)
{
DISPATCH(Normal3sv, (v), (F, "glNormal3sv(%p);", v));
DISPATCH(Normal3sv, (v), (F, "glNormal3sv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Ortho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearval, GLdouble farval)
@@ -1519,7 +1519,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex2d)(GLdouble x, GLdouble y)
KEYWORD1 void KEYWORD2 NAME(Vertex2dv)(const GLdouble *v)
{
DISPATCH(Vertex2dv, (v), (F, "glVertex2dv(%p);", v));
DISPATCH(Vertex2dv, (v), (F, "glVertex2dv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex2f)(GLfloat x, GLfloat y)
@@ -1529,7 +1529,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex2f)(GLfloat x, GLfloat y)
KEYWORD1 void KEYWORD2 NAME(Vertex2fv)(const GLfloat *v)
{
DISPATCH(Vertex2fv, (v), (F, "glVertex2fv(%p);", v));
DISPATCH(Vertex2fv, (v), (F, "glVertex2fv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex2i)(GLint x, GLint y)
@@ -1539,7 +1539,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex2i)(GLint x, GLint y)
KEYWORD1 void KEYWORD2 NAME(Vertex2iv)(const GLint *v)
{
DISPATCH(Vertex2iv, (v), (F, "glVertex2iv(%p);", v));
DISPATCH(Vertex2iv, (v), (F, "glVertex2iv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex2s)(GLshort x, GLshort y)
@@ -1549,7 +1549,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex2s)(GLshort x, GLshort y)
KEYWORD1 void KEYWORD2 NAME(Vertex2sv)(const GLshort *v)
{
DISPATCH(Vertex2sv, (v), (F, "glVertex2sv(%p);", v));
DISPATCH(Vertex2sv, (v), (F, "glVertex2sv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex3d)(GLdouble x, GLdouble y, GLdouble z)
@@ -1559,7 +1559,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex3d)(GLdouble x, GLdouble y, GLdouble z)
KEYWORD1 void KEYWORD2 NAME(Vertex3dv)(const GLdouble *v)
{
DISPATCH(Vertex3dv, (v), (F, "glVertex3dv(%p);", v));
DISPATCH(Vertex3dv, (v), (F, "glVertex3dv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex3f)(GLfloat x, GLfloat y, GLfloat z)
@@ -1569,7 +1569,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex3f)(GLfloat x, GLfloat y, GLfloat z)
KEYWORD1 void KEYWORD2 NAME(Vertex3fv)(const GLfloat *v)
{
DISPATCH(Vertex3fv, (v), (F, "glVertex3fv(%p);", v));
DISPATCH(Vertex3fv, (v), (F, "glVertex3fv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex3i)(GLint x, GLint y, GLint z)
@@ -1579,7 +1579,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex3i)(GLint x, GLint y, GLint z)
KEYWORD1 void KEYWORD2 NAME(Vertex3iv)(const GLint *v)
{
DISPATCH(Vertex3iv, (v), (F, "glVertex3iv(%p);", v));
DISPATCH(Vertex3iv, (v), (F, "glVertex3iv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex3s)(GLshort x, GLshort y, GLshort z)
@@ -1589,7 +1589,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex3s)(GLshort x, GLshort y, GLshort z)
KEYWORD1 void KEYWORD2 NAME(Vertex3sv)(const GLshort *v)
{
DISPATCH(Vertex3sv, (v), (F, "glVertex3sv(%p);", v));
DISPATCH(Vertex3sv, (v), (F, "glVertex3sv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
@@ -1599,7 +1599,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdoub
KEYWORD1 void KEYWORD2 NAME(Vertex4dv)(const GLdouble *v)
{
DISPATCH(Vertex4dv, (v), (F, "glVertex4dv(%p);", v));
DISPATCH(Vertex4dv, (v), (F, "glVertex4dv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
@@ -1609,7 +1609,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w
KEYWORD1 void KEYWORD2 NAME(Vertex4fv)(const GLfloat *v)
{
DISPATCH(Vertex4fv, (v), (F, "glVertex4fv(%p);", v));
DISPATCH(Vertex4fv, (v), (F, "glVertex4fv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex4i)(GLint x, GLint y, GLint z, GLint w)
@@ -1619,7 +1619,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex4i)(GLint x, GLint y, GLint z, GLint w)
KEYWORD1 void KEYWORD2 NAME(Vertex4iv)(const GLint *v)
{
DISPATCH(Vertex4iv, (v), (F, "glVertex4iv(%p);", v));
DISPATCH(Vertex4iv, (v), (F, "glVertex4iv(%p);", (void *) v));
}
KEYWORD1 void KEYWORD2 NAME(Vertex4s)(GLshort x, GLshort y, GLshort z, GLshort w)
@@ -1629,7 +1629,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex4s)(GLshort x, GLshort y, GLshort z, GLshort w
KEYWORD1 void KEYWORD2 NAME(Vertex4sv)(const GLshort *v)
{
DISPATCH(Vertex4sv, (v), (F, "glVertex4sv(%p);", v));
DISPATCH(Vertex4sv, (v), (F, "glVertex4sv(%p);", (void *) v));
}
@@ -1644,7 +1644,7 @@ KEYWORD1 void KEYWORD2 NAME(Viewport)(GLint x, GLint y, GLsizei width, GLsizei h
KEYWORD1 GLboolean KEYWORD2 NAME(AreTexturesResident)(GLsizei n, const GLuint *textures, GLboolean *residences)
{
RETURN_DISPATCH(AreTexturesResident, (n, textures, residences), (F, "glAreTexturesResident(%d, %p, %p);", n, textures, residences));
RETURN_DISPATCH(AreTexturesResident, (n, textures, residences), (F, "glAreTexturesResident(%d, %p, %p);", n, (void *) textures, (void *) residences));
}
KEYWORD1 void KEYWORD2 NAME(ArrayElement)(GLint i)
@@ -1684,7 +1684,7 @@ KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage2D)(GLenum target, GLint level, GLint
KEYWORD1 void KEYWORD2 NAME(DeleteTextures)(GLsizei n, const GLuint *textures)
{
DISPATCH(DeleteTextures, (n, textures), (F, "glDeleteTextures(%d, %p);", n, textures));
DISPATCH(DeleteTextures, (n, textures), (F, "glDeleteTextures(%d, %p);", n, (void *) textures));
}
KEYWORD1 void KEYWORD2 NAME(DisableClientState)(GLenum cap)
@@ -1699,7 +1699,7 @@ KEYWORD1 void KEYWORD2 NAME(DrawArrays)(GLenum mode, GLint first, GLsizei count)
KEYWORD1 void KEYWORD2 NAME(EdgeFlagPointer)(GLsizei stride, const GLvoid *ptr)
{
DISPATCH(EdgeFlagPointer, (stride, ptr), (F, "glEdgeFlagPointer(%d, %p);", stride, ptr));
DISPATCH(EdgeFlagPointer, (stride, ptr), (F, "glEdgeFlagPointer(%d, %p);", stride, (void *) ptr));
}
KEYWORD1 void KEYWORD2 NAME(EnableClientState)(GLenum cap)
@@ -1709,12 +1709,12 @@ KEYWORD1 void KEYWORD2 NAME(EnableClientState)(GLenum cap)
KEYWORD1 void KEYWORD2 NAME(GenTextures)(GLsizei n, GLuint *textures)
{
DISPATCH(GenTextures, (n, textures), (F, "glGenTextures(%d, %p);", n, textures));
DISPATCH(GenTextures, (n, textures), (F, "glGenTextures(%d, %p);", n, (void *) textures));
}
KEYWORD1 void KEYWORD2 NAME(GetPointerv)(GLenum pname, GLvoid **params)
{
DISPATCH(GetPointerv, (pname, params), (F, "glGetPointerv(0x%x, %p);", pname, params));
DISPATCH(GetPointerv, (pname, params), (F, "glGetPointerv(0x%x, %p);", pname, (void *) params));
}
KEYWORD1 void KEYWORD2 NAME(IndexPointer)(GLenum type, GLsizei stride, const GLvoid *ptr)
@@ -1734,7 +1734,7 @@ KEYWORD1 GLboolean KEYWORD2 NAME(IsTexture)(GLuint texture)
KEYWORD1 void KEYWORD2 NAME(NormalPointer)(GLenum type, GLsizei stride, const GLvoid *ptr)
{
DISPATCH(NormalPointer, (type, stride, ptr), (F, "glNormalPointer(0x%x, %d, %p);", type, stride, ptr));
DISPATCH(NormalPointer, (type, stride, ptr), (F, "glNormalPointer(0x%x, %d, %p);", type, stride, (void *) ptr));
}
KEYWORD1 void KEYWORD2 NAME(PolygonOffset)(GLfloat factor, GLfloat units)
@@ -1749,7 +1749,7 @@ KEYWORD1 void KEYWORD2 NAME(PopClientAttrib)(void)
KEYWORD1 void KEYWORD2 NAME(PrioritizeTextures)(GLsizei n, const GLuint *textures, const GLclampf *priorities)
{
DISPATCH(PrioritizeTextures, (n, textures, priorities), (F, "glPrioritizeTextures(%d, %p, %p);", n, textures, priorities));
DISPATCH(PrioritizeTextures, (n, textures, priorities), (F, "glPrioritizeTextures(%d, %p, %p);", n, (void *) textures, (void *) priorities));
}
KEYWORD1 void KEYWORD2 NAME(PushClientAttrib)(GLbitfield mask)
@@ -2280,7 +2280,7 @@ KEYWORD1 void KEYWORD2 NAME(PrioritizeTexturesEXT)(GLsizei n, const GLuint *text
KEYWORD1 GLboolean KEYWORD2 NAME(AreTexturesResidentEXT)(GLsizei n, const GLuint *textures, GLboolean *residences)
{
RETURN_DISPATCH(AreTexturesResident, (n, textures, residences), (F, "glAreTexturesResidentEXT(%d %p %p);", n, textures, residences));
RETURN_DISPATCH(AreTexturesResident, (n, textures, residences), (F, "glAreTexturesResidentEXT(%d %p %p);", n, (void *) textures, (void *) residences));
}
KEYWORD1 GLboolean KEYWORD2 NAME(IsTextureEXT)(GLuint texture)
@@ -2703,7 +2703,7 @@ KEYWORD1 void KEYWORD2 NAME(LightEnviSGIX)(GLenum pname, GLint param)
/* 112. GL_EXT_draw_range_elements */
KEYWORD1 void KEYWORD2 NAME(DrawRangeElementsEXT)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices)
{
DISPATCH(DrawRangeElements, (mode, start, end, count, type, indices), (F, "glDrawRangeElementsEXT(0x%x, %u %u %d 0x%x %p);", mode, start, end, count, type, indices));
DISPATCH(DrawRangeElements, (mode, start, end, count, type, indices), (F, "glDrawRangeElementsEXT(0x%x, %u %u %d 0x%x %p);", mode, start, end, count, type, (void *) indices));
}
/* 117. GL_EXT_light_texture */
@@ -2887,9 +2887,9 @@ KEYWORD1 void KEYWORD2 NAME(FogCoordfEXT)(GLfloat coord)
DISPATCH(FogCoordfEXT, (coord), (F, "glFogCoordfEXT(%g);", coord));
}
KEYWORD1 void KEYWORD2 NAME(FogCoordfvEXT)(const GLfloat * coord)
KEYWORD1 void KEYWORD2 NAME(FogCoordfvEXT)(const GLfloat *coord)
{
DISPATCH(FogCoordfvEXT, (coord), (F, "glFogCoordfvEXT(%p);", coord));
DISPATCH(FogCoordfvEXT, (coord), (F, "glFogCoordfvEXT(%p);", (void *) coord));
}
KEYWORD1 void KEYWORD2 NAME(FogCoorddEXT)(GLdouble coord)
@@ -2899,12 +2899,12 @@ KEYWORD1 void KEYWORD2 NAME(FogCoorddEXT)(GLdouble coord)
KEYWORD1 void KEYWORD2 NAME(FogCoorddvEXT)(const GLdouble * coord)
{
DISPATCH(FogCoorddvEXT, (coord), (F, "glFogCoorddvEXT(%p);", coord));
DISPATCH(FogCoorddvEXT, (coord), (F, "glFogCoorddvEXT(%p);", (void *) coord));
}
KEYWORD1 void KEYWORD2 NAME(FogCoordPointerEXT)(GLenum type, GLsizei stride, const GLvoid * pointer)
{
DISPATCH(FogCoordPointerEXT, (type, stride, pointer), (F, "glFogCoordPointerEXT(0x%x, %d, %p);", type, stride, pointer));
DISPATCH(FogCoordPointerEXT, (type, stride, pointer), (F, "glFogCoordPointerEXT(0x%x, %d, %p);", type, stride, (void *) pointer));
}
/* 173. GL_EXT/INGR_blend_func_separate */
@@ -3332,22 +3332,22 @@ KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4svARB)(GLenum target, const GLshort *v
/* ARB 3. GL_ARB_transpose_matrix */
KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixdARB)(const GLdouble m[16])
{
DISPATCH(LoadTransposeMatrixdARB, (m), (F, "glLoadTransposeMatrixARB(%p);", m));
DISPATCH(LoadTransposeMatrixdARB, (m), (F, "glLoadTransposeMatrixARB(%p);", (void *) m));
}
KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixfARB)(const GLfloat m[16])
{
DISPATCH(LoadTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", m));
DISPATCH(LoadTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", (void *) m));
}
KEYWORD1 void KEYWORD2 NAME(MultTransposeMatrixdARB)(const GLdouble m[16])
{
DISPATCH(MultTransposeMatrixdARB, (m), (F, "glMultTransposeMatrixfARB(%p)", m));
DISPATCH(MultTransposeMatrixdARB, (m), (F, "glMultTransposeMatrixfARB(%p)", (void *) m));
}
KEYWORD1 void KEYWORD2 NAME(MultTransposeMatrixfARB)(const GLfloat m[16])
{
DISPATCH(MultTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", m));
DISPATCH(MultTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", (void *) m));
}
/* ARB 5. GL_ARB_multisample */
@@ -3610,22 +3610,22 @@ KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4sv)(GLenum target, const GLshort *v)
KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixd)(const GLdouble m[16])
{
DISPATCH(LoadTransposeMatrixdARB, (m), (F, "glLoadTransposeMatrixARB(%p);", m));
DISPATCH(LoadTransposeMatrixdARB, (m), (F, "glLoadTransposeMatrixARB(%p);", (void *) m));
}
KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixf)(const GLfloat m[16])
{
DISPATCH(LoadTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", m));
DISPATCH(LoadTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", (void *) m));
}
KEYWORD1 void KEYWORD2 NAME(MultTransposeMatrixd)(const GLdouble m[16])
{
DISPATCH(MultTransposeMatrixdARB, (m), (F, "glMultTransposeMatrixfARB(%p)", m));
DISPATCH(MultTransposeMatrixdARB, (m), (F, "glMultTransposeMatrixfARB(%p)", (void *) m));
}
KEYWORD1 void KEYWORD2 NAME(MultTransposeMatrixf)(const GLfloat m[16])
{
DISPATCH(MultTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", m));
DISPATCH(MultTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", (void *) m));
}
KEYWORD1 void KEYWORD2 NAME(SampleCoverage)(GLclampf value, GLboolean invert)

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env python
# $Id: glsparcasm.py,v 1.4 2001/08/03 13:16:31 davem69 Exp $
# $Id: glsparcasm.py,v 1.4.2.1 2001/12/17 19:44:54 brianp Exp $
# Mesa 3-D graphics library
# Version: 3.5
@@ -45,7 +45,7 @@ def PrintHead():
print '#include "glapioffsets.h"'
print ''
print '#define GL_PREFIX(n) gl##n'
print '#define GLOBL_FN(x) .globl x ; .type x,#function'
print '#define GLOBL_FN(x) .globl x'
print ''
print '/* The _glapi_Dispatch symbol addresses get relocated into the'
print ' * sethi/or instruction sequences below at library init time.'
@@ -83,6 +83,7 @@ def PrintTail():
def GenerateDispatchCode(name, offset):
print ''
print "GLOBL_FN(GL_PREFIX(%s))" % (name)
print ".type %s,#function" % (name)
print "GL_PREFIX(%s):" % (name)
print '#ifdef __sparc_v9__'
print '\tsethi\t%hi(0x00000000), %g2'
@@ -100,6 +101,7 @@ def GenerateDispatchCode(name, offset):
print "\tld\t[%%g1 + (4 * _gloffset_%s)], %%g3" % (offset)
print '#endif'
print '\tjmpl\t%g3, %g0'
print '\tnop'
#enddef

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env python
# $Id: gltable.py,v 1.2 2000/05/11 17:44:42 brianp Exp $
# $Id: gltable.py,v 1.2.6.1 2001/12/17 19:45:21 brianp Exp $
# Mesa 3-D graphics library
# Version: 3.3
@@ -89,6 +89,7 @@ TypeTable = {
'SizeI' : 'GLsizei',
'StencilValue' : 'GLint',
'String' : 'const GLubyte *',
'Texture' : 'GLuint',
'TexelInternalFormat' : 'GLint',
'TextureComponentCount' : 'GLint',
'WinCoord' : 'GLint',
@@ -297,4 +298,4 @@ def PrintTail():
PrintHead()
PrintTableEntries()
PrintTail()
PrintTail()

View File

@@ -1,7 +1,7 @@
# $Id: Makefile.X11,v 1.58 2001/09/23 16:11:26 brianp Exp $
# $Id: Makefile.X11,v 1.58.2.2 2001/12/14 16:33:06 kschultz Exp $
# Mesa 3-D graphics library
# Version: 4.0
# Version: 4.0.1
# Copyright (C) 1995-2001 Brian Paul
# Makefile for core library
@@ -200,69 +200,6 @@ OSMESA_OBJECTS = OSmesa/osmesa.o
$(CC) -c -I. $(CFLAGS) $< -o $@
# UGH! These rules shouldn't be needed but IRIX's make (and others?) needs them
X/glxapi.o: X/glxapi.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/fakeglx.o: X/fakeglx.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xfonts.o: X/xfonts.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xm_api.o: X/xm_api.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xm_dd.o: X/xm_dd.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xm_span.o: X/xm_span.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xm_line.o: X/xm_line.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xm_tri.o: X/xm_tri.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
SVGA/svgamesa.o: SVGA/svgamesa.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
SVGA/svgamesa8.o: SVGA/svgamesa8.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
SVGA/svgamesa15.o: SVGA/svgamesa15.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
SVGA/svgamesa16.o: SVGA/svgamesa16.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
SVGA/svgamesa24.o: SVGA/svgamesa24.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
SVGA/svgamesa32.o: SVGA/svgamesa32.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
OSmesa/osmesa.o: OSmesa/osmesa.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxapi.o: FX/fxapi.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxclip.o: FX/fxclip.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxdd.o: FX/fxdd.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxddspan.o: FX/fxddspan.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxddtex.o: FX/fxddtex.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxfastpath.o: FX/fxfastpath.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxpipeline.o: FX/fxpipeline.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxrender.o: FX/fxrender.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxsanity.o: FX/fxsanity.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxsetup.o: FX/fxsetup.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxtrifuncs.o: FX/fxtrifuncs.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxtexman.o: FX/fxtexman.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxvsetup.o: FX/fxvsetup.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/fxglidew.o: FX/fxglidew.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
FX/X86/fx_3dnow_fastpath.o: FX/X86/fx_3dnow_fastpath.S
X86/x86.o: X86/x86.c
@@ -279,26 +216,9 @@ X86/matypes.h: mtypes.h tnl/t_context.h X86/gen_matypes.c
./X86/gen_matypes > X86/matypes.h
rm -f X86/gen_matypes X86/*.o
$(ASM_SOURCES): X86/matypes.h
GGI/ggimesa.o: GGI/ggimesa.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_2string.o: Trace/tr_2string.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_attrib.o: Trace/tr_attrib.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_context.o: Trace/tr_context.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_control.o: Trace/tr_control.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_error.o: Trace/tr_error.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_print.o: Trace/tr_print.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
Trace/tr_wrapper.o: Trace/tr_wrapper.c
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
# We have X86/matypes.h depend on X86/matypes.h so that if ASM_SOURCES
# is empty we don't get an invalid Makefile.
$(ASM_SOURCES) X86/matypes.h: X86/matypes.h
##### TARGETS #####

View File

@@ -1,8 +1,8 @@
/* $Id: config.h,v 1.34 2001/07/16 15:54:23 brianp Exp $ */
/* $Id: config.h,v 1.34.2.2 2001/11/28 17:18:20 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.0.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -134,6 +134,9 @@
/* GL_EXT_texture_filter_anisotropic */
#define MAX_TEXTURE_MAX_ANISOTROPY 16.0
/* GL_EXT_texture_lod_bias */
#define MAX_TEXTURE_LOD_BIAS 4.0
/*
@@ -170,7 +173,7 @@
/*
* Bits per color channel (must be 8 at this time!)
* Bits per color channel: 8, 16 or 32
*/
#ifndef CHAN_BITS
#define CHAN_BITS 8

View File

@@ -1,4 +1,4 @@
/* $Id: context.c,v 1.148 2001/10/18 08:04:57 joukj Exp $ */
/* $Id: context.c,v 1.148.2.1 2001/11/06 15:51:06 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -738,6 +738,7 @@ init_attrib_groups( GLcontext *ctx )
ctx->Const.MaxCubeTextureLevels = MAX_CUBE_TEXTURE_LEVELS;
ctx->Const.MaxTextureUnits = MAX_TEXTURE_UNITS;
ctx->Const.MaxTextureMaxAnisotropy = MAX_TEXTURE_MAX_ANISOTROPY;
ctx->Const.MaxTextureLodBias = MAX_TEXTURE_LOD_BIAS;
ctx->Const.MaxArrayLockSize = MAX_ARRAY_LOCK_SIZE;
ctx->Const.SubPixelBits = SUB_PIXEL_BITS;
ctx->Const.MinPointSize = MIN_POINT_SIZE;

View File

@@ -1,4 +1,4 @@
/* $Id: dlist.c,v 1.76 2001/09/18 16:16:21 kschultz Exp $ */
/* $Id: dlist.c,v 1.76.2.1 2001/12/13 19:55:00 kschultz Exp $ */
/*
* Mesa 3-D graphics library
@@ -3130,7 +3130,7 @@ static void save_TexParameterf( GLenum target, GLenum pname, GLfloat param )
}
static void save_TexParameteri( GLenum target, GLenum pname, const GLint param )
static void save_TexParameteri( GLenum target, GLenum pname, GLint param )
{
GLfloat fparam[4];
fparam[0] = (GLfloat) param;

View File

@@ -1,8 +1,8 @@
/* $Id: drawpix.c,v 1.56 2001/06/26 21:15:35 brianp Exp $ */
/* $Id: drawpix.c,v 1.56.2.1 2001/12/13 19:12:30 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.0.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -72,20 +72,13 @@ _mesa_DrawPixels( GLsizei width, GLsizei height,
}
else if (ctx->RenderMode==GL_FEEDBACK) {
if (ctx->Current.RasterPosValid) {
GLfloat texcoord[4], invq;
FLUSH_CURRENT(ctx, 0);
invq = 1.0F / ctx->Current.Texcoord[0][3];
texcoord[0] = ctx->Current.Texcoord[0][0] * invq;
texcoord[1] = ctx->Current.Texcoord[0][1] * invq;
texcoord[2] = ctx->Current.Texcoord[0][2] * invq;
texcoord[3] = ctx->Current.Texcoord[0][3];
FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_DRAW_PIXEL_TOKEN );
_mesa_feedback_vertex( ctx,
ctx->Current.RasterPos,
ctx->Current.Color,
ctx->Current.Index,
texcoord );
ctx->Current.RasterColor,
ctx->Current.RasterIndex,
ctx->Current.RasterTexCoord );
}
}
else if (ctx->RenderMode==GL_SELECT) {
@@ -152,13 +145,15 @@ _mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height,
type );
}
else if (ctx->RenderMode == GL_FEEDBACK) {
FLUSH_CURRENT( ctx, 0 );
FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_COPY_PIXEL_TOKEN );
_mesa_feedback_vertex( ctx,
ctx->Current.RasterPos,
ctx->Current.Color,
ctx->Current.Index,
ctx->Current.Texcoord[0] );
if (ctx->Current.RasterPosValid) {
FLUSH_CURRENT(ctx, 0);
FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_COPY_PIXEL_TOKEN );
_mesa_feedback_vertex( ctx,
ctx->Current.RasterPos,
ctx->Current.RasterColor,
ctx->Current.RasterIndex,
ctx->Current.RasterTexCoord );
}
}
else if (ctx->RenderMode == GL_SELECT) {
_mesa_update_hitflag( ctx, ctx->Current.RasterPos[2] );
@@ -175,7 +170,6 @@ _mesa_Bitmap( GLsizei width, GLsizei height,
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
/* Error checking */
if (width < 0 || height < 0) {
_mesa_error( ctx, GL_INVALID_VALUE, "glBitmap" );
@@ -201,24 +195,15 @@ _mesa_Bitmap( GLsizei width, GLsizei height,
}
}
else if (ctx->RenderMode==GL_FEEDBACK) {
GLfloat color[4], texcoord[4], invq;
color[0] = ctx->Current.RasterColor[0];
color[1] = ctx->Current.RasterColor[1];
color[2] = ctx->Current.RasterColor[2];
color[3] = ctx->Current.RasterColor[3];
if (ctx->Current.Texcoord[0][3] == 0.0)
invq = 1.0F;
else
invq = 1.0F / ctx->Current.RasterTexCoord[3];
texcoord[0] = ctx->Current.RasterTexCoord[0] * invq;
texcoord[1] = ctx->Current.RasterTexCoord[1] * invq;
texcoord[2] = ctx->Current.RasterTexCoord[2] * invq;
texcoord[3] = ctx->Current.RasterTexCoord[3];
FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_BITMAP_TOKEN );
_mesa_feedback_vertex( ctx,
ctx->Current.RasterPos,
color, ctx->Current.RasterIndex, texcoord );
if (ctx->Current.RasterPosValid) {
FLUSH_CURRENT(ctx, 0);
FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_BITMAP_TOKEN );
_mesa_feedback_vertex( ctx,
ctx->Current.RasterPos,
ctx->Current.RasterColor,
ctx->Current.RasterIndex,
ctx->Current.RasterTexCoord );
}
}
else if (ctx->RenderMode==GL_SELECT) {
/* Bitmaps don't generate selection hits. See appendix B of 1.1 spec. */

View File

@@ -1,8 +1,8 @@
/* $Id: get.c,v 1.70 2001/10/22 22:45:18 brianp Exp $ */
/* $Id: get.c,v 1.69.2.3 2001/11/25 18:50:19 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 4.1
* Version: 4.0.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -1258,6 +1258,11 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
*params = INT_TO_BOOL(ctx->Array.FogCoord.Stride);
break;
/* GL_EXT_texture_lod_bias */
case GL_MAX_TEXTURE_LOD_BIAS_EXT:
*params = FLOAT_TO_BOOL(ctx->Const.MaxTextureLodBias);
break;
/* GL_EXT_texture_filter_anisotropic */
case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
if (ctx->Extensions.EXT_texture_filter_anisotropic) {
@@ -1278,6 +1283,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
return;
}
break;
case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = ctx->Multisample.SampleAlphaToCoverage;
@@ -1286,6 +1292,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
return;
}
break;
case GL_SAMPLE_ALPHA_TO_ONE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = ctx->Multisample.SampleAlphaToOne;
@@ -1294,6 +1301,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
return;
}
break;
case GL_SAMPLE_COVERAGE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = ctx->Multisample.SampleCoverage;
@@ -1302,6 +1310,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
return;
}
break;
case GL_SAMPLE_COVERAGE_VALUE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = FLOAT_TO_BOOL(ctx->Multisample.SampleCoverageValue);
@@ -1310,6 +1319,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
return;
}
break;
case GL_SAMPLE_COVERAGE_INVERT_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = ctx->Multisample.SampleCoverageInvert;
@@ -1318,6 +1328,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
return;
}
break;
case GL_SAMPLE_BUFFERS_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = 0; /* XXX fix someday */
@@ -1326,6 +1337,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
return;
}
break;
case GL_SAMPLES_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = 0; /* XXX fix someday */
@@ -1334,6 +1346,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv");
return;
}
break;
/* GL_IBM_rasterpos_clip */
case GL_RASTER_POSITION_UNCLIPPED_IBM:
@@ -1344,6 +1357,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBoolean");
return;
}
break;
/* GL_MESA_sprite_point */
case GL_SPRITE_POINT_MESA:
@@ -2548,6 +2562,11 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
*params = (GLdouble) ctx->Array.FogCoord.Stride;
break;
/* GL_EXT_texture_lod_bias */
case GL_MAX_TEXTURE_LOD_BIAS_EXT:
*params = (GLdouble) ctx->Const.MaxTextureLodBias;
break;
/* GL_EXT_texture_filter_anisotropic */
case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
if (ctx->Extensions.EXT_texture_filter_anisotropic) {
@@ -2568,6 +2587,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
return;
}
break;
case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLdouble) ctx->Multisample.SampleAlphaToCoverage;
@@ -2576,6 +2596,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
return;
}
break;
case GL_SAMPLE_ALPHA_TO_ONE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLdouble) ctx->Multisample.SampleAlphaToOne;
@@ -2584,6 +2605,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
return;
}
break;
case GL_SAMPLE_COVERAGE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLdouble) ctx->Multisample.SampleCoverage;
@@ -2592,6 +2614,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
return;
}
break;
case GL_SAMPLE_COVERAGE_VALUE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = ctx->Multisample.SampleCoverageValue;
@@ -2600,6 +2623,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
return;
}
break;
case GL_SAMPLE_COVERAGE_INVERT_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLdouble) ctx->Multisample.SampleCoverageInvert;
@@ -2608,6 +2632,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
return;
}
break;
case GL_SAMPLE_BUFFERS_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = 0.0; /* XXX fix someday */
@@ -2616,6 +2641,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
return;
}
break;
case GL_SAMPLES_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = 0.0; /* XXX fix someday */
@@ -2624,6 +2650,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
return;
}
break;
/* GL_IBM_rasterpos_clip */
case GL_RASTER_POSITION_UNCLIPPED_IBM:
@@ -2634,6 +2661,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev");
return;
}
break;
/* GL_MESA_sprite_point */
case GL_SPRITE_POINT_MESA:
@@ -3819,6 +3847,11 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
*params = (GLfloat) ctx->Array.FogCoord.Stride;
break;
/* GL_EXT_texture_lod_bias */
case GL_MAX_TEXTURE_LOD_BIAS_EXT:
*params = ctx->Const.MaxTextureLodBias;
break;
/* GL_EXT_texture_filter_anisotropic */
case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
if (ctx->Extensions.EXT_texture_filter_anisotropic) {
@@ -3839,6 +3872,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
GET_FLOAT_ERROR;
return;
}
break;
case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLfloat) ctx->Multisample.SampleAlphaToCoverage;
@@ -3847,6 +3881,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
GET_FLOAT_ERROR;
return;
}
break;
case GL_SAMPLE_ALPHA_TO_ONE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLfloat) ctx->Multisample.SampleAlphaToOne;
@@ -3855,6 +3890,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
GET_FLOAT_ERROR;
return;
}
break;
case GL_SAMPLE_COVERAGE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLfloat) ctx->Multisample.SampleCoverage;
@@ -3863,6 +3899,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
GET_FLOAT_ERROR;
return;
}
break;
case GL_SAMPLE_COVERAGE_VALUE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = ctx->Multisample.SampleCoverageValue;
@@ -3871,6 +3908,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
GET_FLOAT_ERROR;
return;
}
break;
case GL_SAMPLE_COVERAGE_INVERT_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLfloat) ctx->Multisample.SampleCoverageInvert;
@@ -3879,6 +3917,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
GET_FLOAT_ERROR;
return;
}
break;
case GL_SAMPLE_BUFFERS_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = 0.0; /* XXX fix someday */
@@ -3887,6 +3926,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
GET_FLOAT_ERROR;
return;
}
break;
case GL_SAMPLES_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = 0.0; /* XXX fix someday */
@@ -3895,6 +3935,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
GET_FLOAT_ERROR;
return;
}
break;
/* GL_IBM_rasterpos_clip */
case GL_RASTER_POSITION_UNCLIPPED_IBM:
@@ -3905,6 +3946,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
GET_FLOAT_ERROR;
return;
}
break;
/* GL_MESA_sprite_point */
case GL_SPRITE_POINT_MESA:
@@ -5132,6 +5174,11 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
}
break;
/* GL_EXT_texture_lod_bias */
case GL_MAX_TEXTURE_LOD_BIAS_EXT:
*params = (GLint) ctx->Const.MaxTextureLodBias;
break;
/* GL_EXT_texture_filter_anisotropic */
case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT:
if (ctx->Extensions.EXT_texture_filter_anisotropic) {
@@ -5152,6 +5199,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
return;
}
break;
case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLint) ctx->Multisample.SampleAlphaToCoverage;
@@ -5160,6 +5208,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
return;
}
break;
case GL_SAMPLE_ALPHA_TO_ONE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLint) ctx->Multisample.SampleAlphaToOne;
@@ -5168,6 +5217,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
return;
}
break;
case GL_SAMPLE_COVERAGE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLint) ctx->Multisample.SampleCoverage;
@@ -5176,6 +5226,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
return;
}
break;
case GL_SAMPLE_COVERAGE_VALUE_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLint) ctx->Multisample.SampleCoverageValue;
@@ -5184,6 +5235,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
return;
}
break;
case GL_SAMPLE_COVERAGE_INVERT_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = (GLint) ctx->Multisample.SampleCoverageInvert;
@@ -5192,6 +5244,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
return;
}
break;
case GL_SAMPLE_BUFFERS_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = 0; /* XXX fix someday */
@@ -5200,6 +5253,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
return;
}
break;
case GL_SAMPLES_ARB:
if (ctx->Extensions.ARB_multisample) {
*params = 0; /* XXX fix someday */
@@ -5208,6 +5262,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
return;
}
break;
/* GL_IBM_rasterpos_clip */
case GL_RASTER_POSITION_UNCLIPPED_IBM:
@@ -5218,6 +5273,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
_mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv");
return;
}
break;
/* GL_MESA_sprite_point */
case GL_SPRITE_POINT_MESA:
@@ -5310,8 +5366,8 @@ _mesa_GetString( GLenum name )
GET_CURRENT_CONTEXT(ctx);
static const char *vendor = "Brian Paul";
static const char *renderer = "Mesa";
static const char *version_1_2 = "1.2 Mesa 4.1";
static const char *version_1_3 = "1.3 Mesa 4.1";
static const char *version_1_2 = "1.2 Mesa 4.0.1";
static const char *version_1_3 = "1.3 Mesa 4.0.1";
ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, 0);

View File

@@ -1,4 +1,4 @@
/* $Id: hash.c,v 1.10 2001/03/12 00:48:38 gareth Exp $ */
/* $Id: hash.c,v 1.10.2.1 2001/11/02 00:56:45 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -64,7 +64,11 @@ struct _mesa_HashTable {
*/
struct _mesa_HashTable *_mesa_NewHashTable(void)
{
return CALLOC_STRUCT(_mesa_HashTable);
struct _mesa_HashTable *table = CALLOC_STRUCT(_mesa_HashTable);
if (table) {
_glthread_INIT_MUTEX(table->Mutex);
}
return table;
}

View File

@@ -1,5 +1,5 @@
DESCRIPTION 'Mesa (OpenGL work-alike) for Win32'
VERSION 3.5
VERSION 4.0
EXPORTS
glAccum

View File

@@ -1,4 +1,4 @@
/* $Id: mtypes.h,v 1.51 2001/10/17 13:31:07 brianp Exp $ */
/* $Id: mtypes.h,v 1.51.2.1 2001/11/06 15:51:07 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -1165,6 +1165,7 @@ struct gl_constants {
GLint MaxCubeTextureLevels;
GLuint MaxTextureUnits;
GLfloat MaxTextureMaxAnisotropy; /* GL_EXT_texture_filter_anisotropic */
GLfloat MaxTextureLodBias; /* GL_EXT_texture_lod_bias */
GLuint MaxArrayLockSize;
GLint SubPixelBits;
GLfloat MinPointSize, MaxPointSize; /* aliased */

View File

@@ -1,4 +1,4 @@
/* $Id: teximage.c,v 1.104 2001/09/18 23:06:14 kschultz Exp $ */
/* $Id: teximage.c,v 1.104.2.1 2001/11/03 04:10:08 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -665,7 +665,7 @@ texture_error_check( GLcontext *ctx, GLenum target,
_mesa_error( ctx, GL_INVALID_ENUM, "glTexImage2D(target)" );
return GL_TRUE;
}
if (target == GL_PROXY_TEXTURE_2D && target == GL_TEXTURE_2D)
if (target == GL_PROXY_TEXTURE_2D || target == GL_TEXTURE_2D)
maxLevels = ctx->Const.MaxTextureLevels;
else
maxLevels = ctx->Const.MaxCubeTextureLevels;

View File

@@ -1,8 +1,8 @@
/* $Id: texstate.c,v 1.58 2001/10/17 13:31:07 brianp Exp $ */
/* $Id: texstate.c,v 1.58.2.2 2001/12/13 16:02:32 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.0.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -413,7 +413,8 @@ _mesa_TexEnvfv( GLenum target, GLenum pname, const GLfloat *param )
if (texUnit->LodBias == param[0])
return;
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texUnit->LodBias = param[0];
texUnit->LodBias = CLAMP(param[0], -ctx->Const.MaxTextureLodBias,
ctx->Const.MaxTextureLodBias);
break;
default:
TE_ERROR(GL_INVALID_ENUM, "glTexEnv(pname=%s)", pname);
@@ -896,6 +897,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
|| eparam==GL_LINEAR_MIPMAP_NEAREST
|| eparam==GL_NEAREST_MIPMAP_LINEAR
|| eparam==GL_LINEAR_MIPMAP_LINEAR) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->MinFilter = eparam;
}
else {
@@ -909,6 +911,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
return;
if (eparam==GL_NEAREST || eparam==GL_LINEAR) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->MagFilter = eparam;
}
else {
@@ -926,6 +929,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
ctx->Extensions.ARB_texture_border_clamp) ||
(eparam == GL_MIRRORED_REPEAT_ARB &&
ctx->Extensions.ARB_texture_mirrored_repeat)) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->WrapS = eparam;
}
else {
@@ -943,6 +947,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
ctx->Extensions.ARB_texture_border_clamp) ||
(eparam == GL_MIRRORED_REPEAT_ARB &&
ctx->Extensions.ARB_texture_mirrored_repeat)) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->WrapT = eparam;
}
else {
@@ -960,6 +965,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
ctx->Extensions.ARB_texture_border_clamp) ||
(eparam == GL_MIRRORED_REPEAT_ARB &&
ctx->Extensions.ARB_texture_mirrored_repeat)) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->WrapR = eparam;
}
else {
@@ -967,15 +973,22 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
}
break;
case GL_TEXTURE_BORDER_COLOR:
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[0], params[0]);
UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[1], params[1]);
UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[2], params[2]);
UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[3], params[3]);
break;
case GL_TEXTURE_MIN_LOD:
if (texObj->MinLod == params[0])
return;
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->MinLod = params[0];
break;
case GL_TEXTURE_MAX_LOD:
if (texObj->MaxLod == params[0])
return;
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->MaxLod = params[0];
break;
case GL_TEXTURE_BASE_LEVEL:
@@ -983,6 +996,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
_mesa_error(ctx, GL_INVALID_VALUE, "glTexParameter(param)" );
return;
}
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->BaseLevel = (GLint) params[0];
break;
case GL_TEXTURE_MAX_LEVEL:
@@ -990,10 +1004,12 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
_mesa_error(ctx, GL_INVALID_VALUE, "glTexParameter(param)" );
return;
}
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->MaxLevel = (GLint) params[0];
break;
case GL_TEXTURE_PRIORITY:
/* (keithh@netcomuk.co.uk) */
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->Priority = CLAMP( params[0], 0.0F, 1.0F );
break;
case GL_TEXTURE_MAX_ANISOTROPY_EXT:
@@ -1002,6 +1018,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
_mesa_error(ctx, GL_INVALID_VALUE, "glTexParameter(param)" );
return;
}
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->MaxAnisotropy = params[0];
}
else {
@@ -1012,6 +1029,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
break;
case GL_TEXTURE_COMPARE_SGIX:
if (ctx->Extensions.SGIX_shadow) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->CompareFlag = params[0] ? GL_TRUE : GL_FALSE;
}
else {
@@ -1025,6 +1043,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
GLenum op = (GLenum) params[0];
if (op == GL_TEXTURE_LEQUAL_R_SGIX ||
op == GL_TEXTURE_GEQUAL_R_SGIX) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->CompareOperator = op;
}
else {
@@ -1039,6 +1058,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
break;
case GL_SHADOW_AMBIENT_SGIX:
if (ctx->Extensions.SGIX_shadow_ambient) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
UNCLAMPED_FLOAT_TO_CHAN(texObj->ShadowAmbient, params[0]);
}
else {
@@ -1049,6 +1069,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
break;
case GL_GENERATE_MIPMAP_SGIS:
if (ctx->Extensions.SGIS_generate_mipmap) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->GenerateMipmap = params[0] ? GL_TRUE : GL_FALSE;
}
else {
@@ -1066,7 +1087,6 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params )
return;
}
ctx->NewState |= _NEW_TEXTURE;
texObj->Complete = GL_FALSE;
if (ctx->Driver.TexParameter) {

View File

@@ -1,8 +1,8 @@
/* $Id: vtxfmt_tmp.h,v 1.4 2001/03/12 00:48:39 gareth Exp $ */
/* $Id: vtxfmt_tmp.h,v 1.4.2.1 2001/11/26 23:45:36 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.0.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -136,13 +136,13 @@ static void TAG(EvalPoint2)( GLint a, GLint b )
static void TAG(FogCoordfEXT)( GLfloat a )
{
PRE_LOOPBACK( FogCoordfEXT );
glFogCoordfEXT( a );
_glapi_Dispatch->FogCoordfEXT( a );
}
static void TAG(FogCoordfvEXT)( const GLfloat *v )
{
PRE_LOOPBACK( FogCoordfvEXT );
glFogCoordfvEXT( v );
_glapi_Dispatch->FogCoordfvEXT( v );
}
static void TAG(Indexi)( GLint a )
@@ -228,25 +228,25 @@ static void TAG(Normal3fv)( const GLfloat *v )
static void TAG(SecondaryColor3fEXT)( GLfloat a, GLfloat b, GLfloat c )
{
PRE_LOOPBACK( SecondaryColor3fEXT );
glSecondaryColor3fEXT( a, b, c );
_glapi_Dispatch->SecondaryColor3fEXT( a, b, c );
}
static void TAG(SecondaryColor3fvEXT)( const GLfloat *v )
{
PRE_LOOPBACK( SecondaryColor3fvEXT );
glSecondaryColor3fvEXT( v );
_glapi_Dispatch->SecondaryColor3fvEXT( v );
}
static void TAG(SecondaryColor3ubEXT)( GLubyte a, GLubyte b, GLubyte c )
{
PRE_LOOPBACK( SecondaryColor3ubEXT );
glSecondaryColor3ubEXT( a, b, c );
_glapi_Dispatch->SecondaryColor3ubEXT( a, b, c );
}
static void TAG(SecondaryColor3ubvEXT)( const GLubyte *v )
{
PRE_LOOPBACK( SecondaryColor3ubvEXT );
glSecondaryColor3ubvEXT( v );
_glapi_Dispatch->SecondaryColor3ubvEXT( v );
}
static void TAG(TexCoord1f)( GLfloat a )

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
/* $Id: s_aalinetemp.h,v 1.14 2001/09/19 20:30:44 kschultz Exp $ */
/* $Id: s_aalinetemp.h,v 1.14.2.1 2001/12/05 10:22:55 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -162,7 +162,7 @@ NAME(line)(GLcontext *ctx, const SWvertex *v0, const SWvertex *v1)
line.len = (GLfloat) sqrt(line.dx * line.dx + line.dy * line.dy);
line.halfWidth = 0.5F * ctx->Line.Width;
if (line.len == 0.0)
if (line.len == 0.0 || IS_INF_OR_NAN(line.len))
return;
line.xAdj = line.dx / line.len * line.halfWidth;

View File

@@ -1,8 +1,8 @@
/* $Id: s_aatriangle.c,v 1.19 2001/09/19 20:30:44 kschultz Exp $ */
/* $Id: s_aatriangle.c,v 1.19.2.1 2001/11/13 00:24:51 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.0.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -142,27 +142,43 @@ static GLfloat
compute_coveragef(const GLfloat v0[3], const GLfloat v1[3],
const GLfloat v2[3], GLint winx, GLint winy)
{
#define B 0.125
/* Given a position [0,3]x[0,3] return the sub-pixel sample position.
* Contributed by Ray Tice.
*
* Jitter sample positions -
* - average should be .5 in x & y for each column
* - each of the 16 rows and columns should be used once
* - the rectangle formed by the first four points
* should contain the other points
* - the distrubition should be fairly even in any given direction
*
* The pattern drawn below isn't optimal, but it's better than a regular
* grid. In the drawing, the center of each subpixel is surrounded by
* four dots. The "x" marks the jittered position relative to the
* subpixel center.
*/
#define POS(a, b) (0.5+a*4+b)/16
static const GLfloat samples[16][2] = {
/* start with the four corners */
{ 0.00+B, 0.00+B },
{ 0.75+B, 0.00+B },
{ 0.00+B, 0.75+B },
{ 0.75+B, 0.75+B },
{ POS(0, 2), POS(0, 0) },
{ POS(3, 3), POS(0, 2) },
{ POS(0, 0), POS(3, 1) },
{ POS(3, 1), POS(3, 3) },
/* continue with interior samples */
{ 0.25+B, 0.00+B },
{ 0.50+B, 0.00+B },
{ 0.00+B, 0.25+B },
{ 0.25+B, 0.25+B },
{ 0.50+B, 0.25+B },
{ 0.75+B, 0.25+B },
{ 0.00+B, 0.50+B },
{ 0.25+B, 0.50+B },
{ 0.50+B, 0.50+B },
{ 0.75+B, 0.50+B },
{ 0.25+B, 0.75+B },
{ 0.50+B, 0.75+B }
{ POS(1, 1), POS(0, 1) },
{ POS(2, 0), POS(0, 3) },
{ POS(0, 3), POS(1, 3) },
{ POS(1, 2), POS(1, 0) },
{ POS(2, 3), POS(1, 2) },
{ POS(3, 2), POS(1, 1) },
{ POS(0, 1), POS(2, 2) },
{ POS(1, 0), POS(2, 1) },
{ POS(2, 1), POS(2, 3) },
{ POS(3, 0), POS(2, 0) },
{ POS(1, 3), POS(3, 0) },
{ POS(2, 2), POS(3, 2) }
};
const GLfloat x = (GLfloat) winx;
const GLfloat y = (GLfloat) winy;
const GLfloat dx0 = v1[0] - v0[0];
@@ -226,28 +242,25 @@ static GLint
compute_coveragei(const GLfloat v0[3], const GLfloat v1[3],
const GLfloat v2[3], GLint winx, GLint winy)
{
/* NOTE: 15 samples instead of 16.
* A better sample distribution could be used.
*/
/* NOTE: 15 samples instead of 16. */
static const GLfloat samples[15][2] = {
/* start with the four corners */
{ 0.00+B, 0.00+B },
{ 0.75+B, 0.00+B },
{ 0.00+B, 0.75+B },
{ 0.75+B, 0.75+B },
{ POS(0, 2), POS(0, 0) },
{ POS(3, 3), POS(0, 2) },
{ POS(0, 0), POS(3, 1) },
{ POS(3, 1), POS(3, 3) },
/* continue with interior samples */
{ 0.25+B, 0.00+B },
{ 0.50+B, 0.00+B },
{ 0.00+B, 0.25+B },
{ 0.25+B, 0.25+B },
{ 0.50+B, 0.25+B },
{ 0.75+B, 0.25+B },
{ 0.00+B, 0.50+B },
{ 0.25+B, 0.50+B },
/*{ 0.50, 0.50 },*/
{ 0.75+B, 0.50+B },
{ 0.25+B, 0.75+B },
{ 0.50+B, 0.75+B }
{ POS(1, 1), POS(0, 1) },
{ POS(2, 0), POS(0, 3) },
{ POS(0, 3), POS(1, 3) },
{ POS(1, 2), POS(1, 0) },
{ POS(2, 3), POS(1, 2) },
{ POS(3, 2), POS(1, 1) },
{ POS(0, 1), POS(2, 2) },
{ POS(1, 0), POS(2, 1) },
{ POS(2, 1), POS(2, 3) },
{ POS(3, 0), POS(2, 0) },
{ POS(1, 3), POS(3, 0) }
};
const GLfloat x = (GLfloat) winx;
const GLfloat y = (GLfloat) winy;

View File

@@ -1,4 +1,4 @@
/* $Id: s_aatritemp.h,v 1.21 2001/09/19 20:30:44 kschultz Exp $ */
/* $Id: s_aatritemp.h,v 1.21.2.1 2001/12/05 10:22:55 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -149,7 +149,7 @@
const GLfloat area = majDx * botDy - botDx * majDy;
ltor = (GLboolean) (area < 0.0F);
/* Do backface culling */
if (area * bf < 0 || area * area < .0025)
if (area * bf < 0 || area == 0 || IS_INF_OR_NAN(area))
return;
}

View File

@@ -1,8 +1,8 @@
/* $Id: s_blend.c,v 1.9 2001/07/16 20:45:55 brianp Exp $ */
/* $Id: s_blend.c,v 1.9.2.1 2001/12/13 16:14:17 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.0.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -25,7 +25,6 @@
*/
#include "glheader.h"
#include "context.h"
#include "macros.h"
@@ -46,6 +45,48 @@
#endif
/*
* Special case for glBlendFunc(GL_ZERO, GL_ONE)
*/
static void _BLENDAPI
blend_noop( GLcontext *ctx, GLuint n, const GLubyte mask[],
GLchan rgba[][4], CONST GLchan dest[][4] )
{
int i;
ASSERT(ctx->Color.BlendEquation==GL_FUNC_ADD_EXT);
ASSERT(ctx->Color.BlendSrcRGB==GL_ZERO);
ASSERT(ctx->Color.BlendDstRGB==GL_ONE);
(void) ctx;
for (i = 0; i < n; i++) {
if (mask[i]) {
rgba[i][RCOMP] = dest[i][RCOMP];
rgba[i][GCOMP] = dest[i][GCOMP];
rgba[i][BCOMP] = dest[i][BCOMP];
rgba[i][ACOMP] = dest[i][ACOMP];
}
}
}
/*
* Special case for glBlendFunc(GL_ONE, GL_ZERO)
*/
static void _BLENDAPI
blend_replace( GLcontext *ctx, GLuint n, const GLubyte mask[],
GLchan rgba[][4], CONST GLchan dest[][4] )
{
ASSERT(ctx->Color.BlendEquation==GL_FUNC_ADD_EXT);
ASSERT(ctx->Color.BlendSrcRGB==GL_ONE);
ASSERT(ctx->Color.BlendDstRGB==GL_ZERO);
(void) ctx;
(void) n;
(void) mask;
(void) rgba;
(void) dest;
}
/*
* Common transparency blending mode.
*/
@@ -341,7 +382,7 @@ blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[],
default:
/* this should never happen */
_mesa_problem(ctx, "Bad blend source RGB factor in do_blend");
return;
return;
}
/* Source Alpha factor */
@@ -611,6 +652,12 @@ void _swrast_choose_blend_func( GLcontext *ctx )
else if (eq==GL_MAX_EXT) {
SWRAST_CONTEXT(ctx)->BlendFunc = blend_max;
}
else if (eq==GL_FUNC_ADD_EXT && srcRGB == GL_ZERO && dstRGB == GL_ONE) {
SWRAST_CONTEXT(ctx)->BlendFunc = blend_noop;
}
else if (eq==GL_FUNC_ADD_EXT && srcRGB == GL_ONE && dstRGB == GL_ZERO) {
SWRAST_CONTEXT(ctx)->BlendFunc = blend_replace;
}
else {
SWRAST_CONTEXT(ctx)->BlendFunc = blend_general;
}

View File

@@ -1,4 +1,4 @@
/* $Id: s_lines.c,v 1.21 2001/08/20 21:45:15 brianp Exp $ */
/* $Id: s_lines.c,v 1.21.2.1 2001/11/06 16:00:58 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -995,7 +995,7 @@ _mesa_print_line_function(GLcontext *ctx)
else if (swrast->Line == flat_multitextured_line)
printf("flat_multitextured_line\n");
else
printf("Driver func %p\n", swrast->Line);
printf("Driver func %p\n", (void *) swrast->Line);
}
#endif

View File

@@ -1,4 +1,4 @@
/* $Id: s_linetemp.h,v 1.9 2001/07/13 20:07:37 brianp Exp $ */
/* $Id: s_linetemp.h,v 1.9.2.1 2001/12/05 10:22:55 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -180,6 +180,13 @@
}
#endif
/* Cull primitives with malformed coordinates.
*/
{
float tmp = vert0->win[0] + vert0->win[1] + vert1->win[0] + vert1->win[1];
if (IS_INF_OR_NAN(tmp))
return;
}
/*
* Despite being clipped to the view volume, the line's window coordinates

View File

@@ -1,4 +1,4 @@
/* $Id: s_pointtemp.h,v 1.10 2001/09/19 20:30:44 kschultz Exp $ */
/* $Id: s_pointtemp.h,v 1.10.2.1 2001/12/05 10:22:55 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -119,6 +119,14 @@ NAME ( GLcontext *ctx, const SWvertex *vert )
size = ctx->Point._Size;
#endif
/* Cull primitives with malformed coordinates.
*/
{
float tmp = vert->win[0] + vert->win[1];
if (IS_INF_OR_NAN(tmp))
return;
}
#if FLAGS & SPRITE
{
SWcontext *swctx = SWRAST_CONTEXT(ctx);

View File

@@ -1,4 +1,4 @@
/* $Id: s_triangle.c,v 1.39 2001/09/19 22:21:13 brianp Exp $ */
/* $Id: s_triangle.c,v 1.39.2.1 2001/11/28 16:11:14 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -92,7 +92,7 @@ static void flat_ci_triangle( GLcontext *ctx,
span.fog += span.fogStep; \
} \
_mesa_write_monoindex_span(ctx, span.count, span.x, span.y, \
zSpan, fogSpan, v0->index, NULL, GL_POLYGON );
zSpan, fogSpan, v2->index, NULL, GL_POLYGON );
#include "s_tritemp.h"
}

View File

@@ -1,4 +1,4 @@
/* $Id: s_tritemp.h,v 1.27 2001/09/19 20:30:44 kschultz Exp $ */
/* $Id: s_tritemp.h,v 1.27.2.1 2001/12/05 10:22:55 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -199,7 +199,7 @@
if (area * bf < 0.0)
return;
if (area == 0.0F)
if (area == 0.0F || IS_INF_OR_NAN(area))
return;
oneOverArea = 1.0F / area;

View File

@@ -1,4 +1,4 @@
/* $Id: t_array_api.c,v 1.19 2001/09/14 17:00:42 brianp Exp $ */
/* $Id: t_array_api.c,v 1.19.2.2 2001/11/29 15:15:11 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -133,8 +133,6 @@ _tnl_DrawArrays(GLenum mode, GLint start, GLsizei count)
start = ctx->Array.LockFirst;
if (start + count > (GLint) ctx->Array.LockCount)
count = ctx->Array.LockCount - start;
if (start >= count)
return;
/* Locked drawarrays. Reuse any previously transformed data.
*/
@@ -160,7 +158,7 @@ _tnl_DrawArrays(GLenum mode, GLint start, GLsizei count)
}
}
else {
int bufsz = (ctx->Const.MaxArrayLockSize - 4) & ~3;
int bufsz = 256; /* use a small buffer for cache goodness */
int j, nr;
int minimum, modulo, skip;

View File

@@ -1,4 +1,4 @@
/* $Id: t_eval_api.c,v 1.7 2001/05/14 09:00:51 keithw Exp $ */
/* $Id: t_eval_api.c,v 1.7.2.1 2001/12/03 17:39:09 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -103,9 +103,10 @@ _tnl_exec_EvalMesh1( GLenum mode, GLint i1, GLint i2 )
struct immediate *im = TNL_CURRENT_IM(ctx);
if (compiling) {
struct immediate *IM = _tnl_alloc_immediate( ctx );
FLUSH_VERTICES( ctx, 0 );
SET_IMMEDIATE( ctx, _tnl_alloc_immediate( ctx ) );
TNL_CURRENT_IM(ctx)->ref_count++;
SET_IMMEDIATE( ctx, IM );
IM->ref_count++;
ctx->CompileFlag = GL_FALSE;
}
@@ -161,9 +162,10 @@ _tnl_exec_EvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 )
struct immediate *im = TNL_CURRENT_IM(ctx);
if (compiling) {
struct immediate *IM = _tnl_alloc_immediate( ctx );
FLUSH_VERTICES( ctx, 0 );
SET_IMMEDIATE( ctx, _tnl_alloc_immediate( ctx ) );
TNL_CURRENT_IM(ctx)->ref_count++;
SET_IMMEDIATE( ctx, IM );
IM->ref_count++;
ctx->CompileFlag = GL_FALSE;
}

View File

@@ -1,8 +1,8 @@
/* $Id: t_imm_alloc.c,v 1.10 2001/09/07 06:55:59 joukj Exp $ */
/* $Id: t_imm_alloc.c,v 1.10.2.1 2001/12/15 00:48:41 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.0.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -34,7 +34,7 @@
#include "t_imm_alloc.h"
static int id = 0;
static int id = 0; /* give each struct immediate a unique ID number */
static struct immediate *real_alloc_immediate( GLcontext *ctx )
{
@@ -130,6 +130,11 @@ void _tnl_free_immediate( struct immediate *IM )
ASSERT(IM->ref_count == 0);
if (IM->NormalLengthPtr) {
ALIGN_FREE(IM->NormalLengthPtr);
IM->NormalLengthPtr = NULL;
}
if (!tnl) {
real_free_immediate( IM );
}

View File

@@ -1,4 +1,4 @@
/* $Id: t_imm_dlist.c,v 1.29 2001/09/14 21:30:31 brianp Exp $ */
/* $Id: t_imm_dlist.c,v 1.29.2.4 2001/12/13 10:57:55 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -229,7 +229,7 @@ static void fixup_compiled_primitives( GLcontext *ctx, struct immediate *IM )
* set copystart because it might skip materials?
*/
ASSERT(IM->Start == IM->CopyStart);
if (i > IM->CopyStart) {
if (i > IM->CopyStart || !(IM->Flag[IM->Start] & VERT_BEGIN)) {
IM->Primitive[IM->CopyStart] = GL_POLYGON+1;
IM->PrimitiveLength[IM->CopyStart] = i - IM->CopyStart;
if (IM->Flag[i] & VERT_END_VB) {
@@ -293,7 +293,7 @@ execute_compiled_cassette( GLcontext *ctx, void *data )
TNLvertexcassette *node = (TNLvertexcassette *)data;
struct immediate *IM = node->IM;
/* fprintf(stderr, "%s\n", __FUNCTION__); */
/* fprintf(stderr, "%s IM: %d\n", __FUNCTION__, IM->id); */
IM->Start = node->Start;
IM->CopyStart = node->Start;
@@ -309,6 +309,7 @@ execute_compiled_cassette( GLcontext *ctx, void *data )
IM->MaterialOrMask = node->MaterialOrMask;
IM->MaterialAndMask = node->MaterialAndMask;
if ((MESA_VERBOSE & VERBOSE_DISPLAY_LIST) &&
(MESA_VERBOSE & VERBOSE_IMMEDIATE))
_tnl_print_cassette( IM );
@@ -421,16 +422,22 @@ _tnl_BeginCallList( GLcontext *ctx, GLuint list )
{
(void) ctx;
(void) list;
FLUSH_CURRENT(ctx, 0);
FLUSH_CURRENT(ctx, 0); /* Current immediate is emptied on CallList */
}
/* Called at the tail of a CallList. Nothing to do.
/* Called at the tail of a CallList. Make current immediate aware of
* any new to-be-copied vertices.
*/
void
_tnl_EndCallList( GLcontext *ctx )
{
(void) ctx;
GLuint beginstate = 0;
if (ctx->Driver.CurrentExecPrimitive != PRIM_OUTSIDE_BEGIN_END)
beginstate = VERT_BEGIN_0|VERT_BEGIN_1;
_tnl_reset_exec_input( ctx, TNL_CURRENT_IM(ctx)->Start, beginstate, 0 );
}
@@ -591,7 +598,6 @@ static void loopback_compiled_cassette( GLcontext *ctx, struct immediate *IM )
ASSERT((prim & PRIM_MODE_MASK) <= GL_POLYGON+1);
if (prim & PRIM_BEGIN) {
/* fprintf(stderr, "begin %s\n", _mesa_prim_name[prim&PRIM_MODE_MASK]); */
glBegin(prim & PRIM_MODE_MASK);
}
@@ -606,14 +612,10 @@ static void loopback_compiled_cassette( GLcontext *ctx, struct immediate *IM )
}
if (flags[i] & VERT_NORM) {
/* fprintf(stderr, "normal %d: %f %f %f\n", i, */
/* IM->Normal[i][0], IM->Normal[i][1], IM->Normal[i][2]); */
glNormal3fv(IM->Normal[i]);
}
if (flags[i] & VERT_RGBA) {
/* fprintf(stderr, "color %d: %f %f %f\n", i, */
/* IM->Color[i][0], IM->Color[i][1], IM->Color[i][2]); */
glColor4fv( IM->Color[i] );
}
@@ -633,8 +635,6 @@ static void loopback_compiled_cassette( GLcontext *ctx, struct immediate *IM )
emit_material( IM->Material[i], IM->MaterialMask[i] );
if (flags[i]&VERT_OBJ_234) {
/* fprintf(stderr, "vertex %d: %f %f %f\n", i, */
/* IM->Obj[i][0], IM->Obj[i][1], IM->Obj[i][2]); */
vertex( IM->Obj[i] );
}
else if (flags[i] & VERT_EVAL_C1)
@@ -648,7 +648,6 @@ static void loopback_compiled_cassette( GLcontext *ctx, struct immediate *IM )
}
if (prim & PRIM_END) {
/* fprintf(stderr, "end\n"); */
glEnd();
}
}

View File

@@ -1,4 +1,4 @@
/* $Id: t_imm_exec.c,v 1.29 2001/08/02 22:39:51 keithw Exp $ */
/* $Id: t_imm_exec.c,v 1.29.2.1 2001/11/30 15:42:32 alanh Exp $ */
/*
* Mesa 3-D graphics library
@@ -555,6 +555,13 @@ void _tnl_imm_destroy( GLcontext *ctx )
TNL_CURRENT_IM(ctx)->ref_count--;
if (TNL_CURRENT_IM(ctx)->ref_count == 0)
_tnl_free_immediate( TNL_CURRENT_IM(ctx) );
SET_IMMEDIATE(ctx, 0);
/*
* Don't use SET_IMMEDIATE here, or else we'll whack the
* _tnl_CurrentInput pointer - not good when another
* context has already been made current.
* So we just set the context's own tnl immediate pointer
* to 0.
*/
ctx->swtnl_im = 0;
}
}

View File

@@ -1,4 +1,4 @@
/* $Id: t_imm_fixup.c,v 1.26 2001/08/03 00:16:36 keithw Exp $ */
/* $Id: t_imm_fixup.c,v 1.26.2.2 2001/12/03 17:46:57 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -735,7 +735,11 @@ _tnl_get_exec_copy_verts( GLcontext *ctx, struct immediate *IM )
tnl->ExecCopySource = IM;
tnl->ExecCopyCount = 0;
tnl->ExecCopyTexSize = IM->CopyTexSize;
tnl->ExecParity = IM->PrimitiveLength[IM->LastPrimitive] & 1;
if (IM->LastPrimitive != IM->CopyStart)
tnl->ExecParity = 0;
tnl->ExecParity ^= IM->PrimitiveLength[IM->LastPrimitive] & 1;
if (pincr != 1 && (IM->Count - last - pintro))
ovf = (IM->Count - last - pintro) % pincr;
@@ -761,7 +765,10 @@ _tnl_get_purged_copy_verts( GLcontext *ctx, struct immediate *IM )
GLuint ovf = 0, i;
tnl->ExecCopyCount = 0;
tnl->ExecParity = IM->PrimitiveLength[last] & 1;
if (IM->LastPrimitive != IM->CopyStart)
tnl->ExecParity = 0;
tnl->ExecParity ^= IM->PrimitiveLength[IM->LastPrimitive] & 1;
if (pincr != 1 && (IM->Count - last - pintro))
ovf = (IM->Count - last - pintro) % pincr;

View File

@@ -1,4 +1,4 @@
/* $Id: t_vb_lighttmp.h,v 1.19 2001/10/20 00:13:45 keithw Exp $ */
/* $Id: t_vb_lighttmp.h,v 1.19.2.1 2001/12/03 17:40:43 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -560,7 +560,6 @@ static void TAG(light_fast_rgba_single)( GLcontext *ctx,
do {
if ( CHECK_COLOR_MATERIAL(j) ) {
/* fprintf(stderr, "colormaterial at %d (%p)\n", j, CMcolor); */
_mesa_update_color_material( ctx, CMcolor );
}
@@ -590,13 +589,6 @@ static void TAG(light_fast_rgba_single)( GLcontext *ctx,
do {
GLfloat n_dot_VP = DOT3(normal, light->_VP_inf_norm);
/* if (j < 5) */
/* fprintf(stderr, "light normal %d: %f %f %f\n", */
/* j, */
/* normal[0], */
/* normal[1], */
/* normal[2]); */
if (n_dot_VP < 0.0F) {
if (IDX & LIGHT_TWOSIDE) {
GLfloat n_dot_h = -DOT3(normal, light->_h_inf_norm);
@@ -639,14 +631,6 @@ static void TAG(light_fast_rgba_single)( GLcontext *ctx,
COPY_CHAN4(Fcolor[j], Fcolor[j-1]);
if (IDX & LIGHT_TWOSIDE)
COPY_CHAN4(Bcolor[j], Bcolor[j-1]);
/* if (j < 5) */
/* fprintf(stderr, "skip normal %d: %f %f %f\n", */
/* j, */
/* normal[0], */
/* normal[1], */
/* normal[2]); */
}
} while (!CHECK_END_VB(j));

View File

@@ -1,8 +1,8 @@
/* $Id: t_vb_render.c,v 1.22 2001/07/12 22:09:22 keithw Exp $ */
/* $Id: t_vb_render.c,v 1.22.2.3 2001/12/17 01:46:38 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.5
* Version: 4.0.1
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
@@ -142,7 +142,7 @@ do { \
#define TAG(x) clip_##x##_verts
#define INIT(x) tnl->Driver.Render.PrimitiveNotify( ctx, x )
#define RESET_STIPPLE if (stipple) tnl->Driver.Render.ResetLineStipple( ctx )
#define RESET_STIPPLE tnl->Driver.Render.ResetLineStipple( ctx )
#define RESET_OCCLUSION ctx->OcclusionResult = GL_TRUE
#define PRESERVE_VB_DEFS
#include "t_vb_rendertmp.h"
@@ -225,8 +225,9 @@ static void clip_elt_triangles( GLcontext *ctx,
const line_func LineFunc = tnl->Driver.Render.Line; \
const triangle_func TriangleFunc = tnl->Driver.Render.Triangle; \
const quad_func QuadFunc = tnl->Driver.Render.Quad; \
const GLboolean stipple = ctx->Line.StippleFlag; \
(void) (LineFunc && TriangleFunc && QuadFunc); \
(void) elt;
(void) elt; (void) stipple;
#define RESET_STIPPLE tnl->Driver.Render.ResetLineStipple( ctx )
#define RESET_OCCLUSION ctx->OcclusionResult = GL_TRUE
@@ -318,7 +319,7 @@ static GLboolean run_render( GLcontext *ctx,
do
{
GLuint i, length, flags = 0;
for (i = 0 ; !(flags & PRIM_LAST) ; i += length)
for (i = VB->FirstPrimitive ; !(flags & PRIM_LAST) ; i += length)
{
flags = VB->Primitive[i];
length= VB->PrimitiveLength[i];

View File

@@ -1,4 +1,4 @@
/* $Id: 3dnow.c,v 1.19 2001/03/30 14:44:43 gareth Exp $ */
/* $Id: 3dnow.c,v 1.19.2.1 2001/11/19 13:50:35 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -80,7 +80,9 @@ void _mesa_init_3dnow_transform_asm( void )
ASSIGN_XFORM_GROUP( 3dnow, 3 );
ASSIGN_XFORM_GROUP( 3dnow, 4 );
ASSIGN_NORM_GROUP( 3dnow );
/* Normalize function is broken - see demos/morph3d for example.
*/
/* ASSIGN_NORM_GROUP( 3dnow ); */
#ifdef DEBUG
_math_test_all_transform_functions( "3DNow!" );