Compare commits
	
		
			102 Commits
		
	
	
		
			21.0-branc
			...
			mesa_7_0_1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					ae16a51e95 | ||
| 
						 | 
					4398d67546 | ||
| 
						 | 
					c93738687c | ||
| 
						 | 
					799492e606 | ||
| 
						 | 
					f33ff071bb | ||
| 
						 | 
					99e854743c | ||
| 
						 | 
					6f79062d91 | ||
| 
						 | 
					2f682c3995 | ||
| 
						 | 
					067370e68f | ||
| 
						 | 
					2aa439a6a4 | ||
| 
						 | 
					b477182dc3 | ||
| 
						 | 
					a8964ca89e | ||
| 
						 | 
					4f0e92d07c | ||
| 
						 | 
					577f4e8a5f | ||
| 
						 | 
					0586d9fe56 | ||
| 
						 | 
					1f0d9bf05e | ||
| 
						 | 
					8bcae2a527 | ||
| 
						 | 
					35ca9aae91 | ||
| 
						 | 
					6cdd2bf8d7 | ||
| 
						 | 
					ce7d175adb | ||
| 
						 | 
					1904fd095f | ||
| 
						 | 
					897d0ac5cc | ||
| 
						 | 
					e262d0182f | ||
| 
						 | 
					aa5b748c10 | ||
| 
						 | 
					3c182c5bc8 | ||
| 
						 | 
					1b5677847b | ||
| 
						 | 
					1be59a9dbe | ||
| 
						 | 
					55c2178ad4 | ||
| 
						 | 
					3e3d392e1c | ||
| 
						 | 
					756a7a4e4b | ||
| 
						 | 
					121b4ac220 | ||
| 
						 | 
					cdbd5db3af | ||
| 
						 | 
					b2240f6ad4 | ||
| 
						 | 
					33814a55f8 | ||
| 
						 | 
					a57c5a417b | ||
| 
						 | 
					ff1a28de17 | ||
| 
						 | 
					772f57f99b | ||
| 
						 | 
					dacee32b8b | ||
| 
						 | 
					fa1a3eb06d | ||
| 
						 | 
					bd4817ca54 | ||
| 
						 | 
					005eea249c | ||
| 
						 | 
					9747de8ec6 | ||
| 
						 | 
					849a9799d0 | ||
| 
						 | 
					e32ae4fe33 | ||
| 
						 | 
					4595389c4c | ||
| 
						 | 
					e8ccc7cc49 | ||
| 
						 | 
					673d21047a | ||
| 
						 | 
					fdefc2bbda | ||
| 
						 | 
					2079df8527 | ||
| 
						 | 
					b53659452c | ||
| 
						 | 
					46f1d6653e | ||
| 
						 | 
					c1938a60f7 | ||
| 
						 | 
					d65110f352 | ||
| 
						 | 
					9fa3bbcb5a | ||
| 
						 | 
					99d62f2922 | ||
| 
						 | 
					284743cafe | ||
| 
						 | 
					08d7307b2a | ||
| 
						 | 
					ef6a64abe6 | ||
| 
						 | 
					18bfa52ef7 | ||
| 
						 | 
					d62be2652c | ||
| 
						 | 
					ea53ff80af | ||
| 
						 | 
					feeca1bcbc | ||
| 
						 | 
					12e7278c08 | ||
| 
						 | 
					45b5c44eb9 | ||
| 
						 | 
					e3456c1028 | ||
| 
						 | 
					327fb38573 | ||
| 
						 | 
					1d25d9e15f | ||
| 
						 | 
					cc7cee3f48 | ||
| 
						 | 
					d7062710cd | ||
| 
						 | 
					9bfba734d8 | ||
| 
						 | 
					aaebf2f47e | ||
| 
						 | 
					23f8d77b38 | ||
| 
						 | 
					87d22ee0fe | ||
| 
						 | 
					52e25f63d4 | ||
| 
						 | 
					f3fb67972b | ||
| 
						 | 
					6400756364 | ||
| 
						 | 
					d59f0314bd | ||
| 
						 | 
					131baefac3 | ||
| 
						 | 
					a450078b67 | ||
| 
						 | 
					f6b041bf6c | ||
| 
						 | 
					4f340d181a | ||
| 
						 | 
					b58e38e936 | ||
| 
						 | 
					8713cb48a8 | ||
| 
						 | 
					277c5e57ed | ||
| 
						 | 
					b3d62d5af5 | ||
| 
						 | 
					9c0f0c8d81 | ||
| 
						 | 
					18a0a2a7ac | ||
| 
						 | 
					8b99d9e33c | ||
| 
						 | 
					01e7e153e3 | ||
| 
						 | 
					0ad4ca24d2 | ||
| 
						 | 
					724a155552 | ||
| 
						 | 
					d38b74a316 | ||
| 
						 | 
					54cab4b47b | ||
| 
						 | 
					c093666bc5 | ||
| 
						 | 
					04972f6761 | ||
| 
						 | 
					67f8234622 | ||
| 
						 | 
					201d6dbd9c | ||
| 
						 | 
					fbcac5aa83 | ||
| 
						 | 
					2b72ab8f8f | ||
| 
						 | 
					0ea97b9408 | ||
| 
						 | 
					28683ac7c0 | ||
| 
						 | 
					c72e3e210f | 
							
								
								
									
										26
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,5 +1,7 @@
 | 
			
		||||
# Top-level Mesa makefile
 | 
			
		||||
 | 
			
		||||
SHELL = /bin/bash
 | 
			
		||||
 | 
			
		||||
TOP = .
 | 
			
		||||
 | 
			
		||||
SUBDIRS = src progs
 | 
			
		||||
@@ -67,6 +69,7 @@ aix-64-static \
 | 
			
		||||
aix-gcc \
 | 
			
		||||
aix-static \
 | 
			
		||||
beos \
 | 
			
		||||
bluegene-osmesa \
 | 
			
		||||
darwin \
 | 
			
		||||
darwin-static \
 | 
			
		||||
darwin-static-x86ppc \
 | 
			
		||||
@@ -151,6 +154,7 @@ sunos5-v8 \
 | 
			
		||||
sunos5-v8-static \
 | 
			
		||||
sunos5-v9 \
 | 
			
		||||
sunos5-v9-static \
 | 
			
		||||
sunos5-v9-cc-g++ \
 | 
			
		||||
ultrix-gcc:
 | 
			
		||||
	@ if [ -e configs/current ] ; then \
 | 
			
		||||
		echo "Please run 'make realclean' before changing configs" ; \
 | 
			
		||||
@@ -162,10 +166,10 @@ ultrix-gcc:
 | 
			
		||||
 | 
			
		||||
# Rules for making release tarballs
 | 
			
		||||
 | 
			
		||||
DIRECTORY = Mesa-7.1pre
 | 
			
		||||
LIB_NAME = MesaLib-7.1pre
 | 
			
		||||
DEMO_NAME = MesaDemos-7.1pre
 | 
			
		||||
GLUT_NAME = MesaGLUT-7.1pre
 | 
			
		||||
DIRECTORY = Mesa-7.0.1
 | 
			
		||||
LIB_NAME = MesaLib-7.0.1
 | 
			
		||||
DEMO_NAME = MesaDemos-7.0.1
 | 
			
		||||
GLUT_NAME = MesaGLUT-7.0.1
 | 
			
		||||
 | 
			
		||||
MAIN_FILES = \
 | 
			
		||||
	$(DIRECTORY)/Makefile*						\
 | 
			
		||||
@@ -288,17 +292,6 @@ MAIN_FILES = \
 | 
			
		||||
	$(DIRECTORY)/vms/analyze_map.com				\
 | 
			
		||||
	$(DIRECTORY)/vms/xlib.opt					\
 | 
			
		||||
	$(DIRECTORY)/vms/xlib_share.opt					\
 | 
			
		||||
	$(DIRECTORY)/windows/VC6/mesa/gdi/gdi.dsp			\
 | 
			
		||||
	$(DIRECTORY)/windows/VC6/mesa/glu/*.txt				\
 | 
			
		||||
	$(DIRECTORY)/windows/VC6/mesa/glu/glu.dsp			\
 | 
			
		||||
	$(DIRECTORY)/windows/VC6/mesa/mesa.dsw				\
 | 
			
		||||
	$(DIRECTORY)/windows/VC6/mesa/mesa/mesa.dsp			\
 | 
			
		||||
	$(DIRECTORY)/windows/VC6/mesa/osmesa/osmesa.dsp			\
 | 
			
		||||
	$(DIRECTORY)/windows/VC7/mesa/gdi/gdi.vcproj			\
 | 
			
		||||
	$(DIRECTORY)/windows/VC7/mesa/glu/glu.vcproj			\
 | 
			
		||||
	$(DIRECTORY)/windows/VC7/mesa/mesa.sln				\
 | 
			
		||||
	$(DIRECTORY)/windows/VC7/mesa/mesa/mesa.vcproj			\
 | 
			
		||||
	$(DIRECTORY)/windows/VC7/mesa/osmesa/osmesa.vcproj		\
 | 
			
		||||
	$(DIRECTORY)/windows/VC8/mesa/mesa.sln				\
 | 
			
		||||
	$(DIRECTORY)/windows/VC8/mesa/gdi/gdi.vcproj			\
 | 
			
		||||
	$(DIRECTORY)/windows/VC8/mesa/glu/glu.vcproj			\
 | 
			
		||||
@@ -328,6 +321,7 @@ SGI_GLU_FILES = \
 | 
			
		||||
	$(DIRECTORY)/src/glu/Makefile					\
 | 
			
		||||
	$(DIRECTORY)/src/glu/descrip.mms				\
 | 
			
		||||
	$(DIRECTORY)/src/glu/sgi/Makefile				\
 | 
			
		||||
	$(DIRECTORY)/src/glu/sgi/Makefile.mgw				\
 | 
			
		||||
	$(DIRECTORY)/src/glu/sgi/Makefile.win				\
 | 
			
		||||
	$(DIRECTORY)/src/glu/sgi/Makefile.DJ				\
 | 
			
		||||
	$(DIRECTORY)/src/glu/sgi/glu.def				\
 | 
			
		||||
@@ -372,6 +366,8 @@ DEMO_FILES = \
 | 
			
		||||
	$(DIRECTORY)/progs/demos/*.cxx			\
 | 
			
		||||
	$(DIRECTORY)/progs/demos/*.dat			\
 | 
			
		||||
	$(DIRECTORY)/progs/demos/README			\
 | 
			
		||||
	$(DIRECTORY)/progs/fbdev/Makefile		\
 | 
			
		||||
	$(DIRECTORY)/progs/fbdev/glfbdevtest.c		\
 | 
			
		||||
	$(DIRECTORY)/progs/osdemos/Makefile		\
 | 
			
		||||
	$(DIRECTORY)/progs/osdemos/*.c			\
 | 
			
		||||
	$(DIRECTORY)/progs/xdemos/Makefile*		\
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								Makefile.mgw
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								Makefile.mgw
									
									
									
									
									
								
							@@ -51,37 +51,59 @@
 | 
			
		||||
#	realclean:	remove all generated files
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# MinGW core makefile updated for Mesa 7.0
 | 
			
		||||
#
 | 
			
		||||
#  Updated : by Heromyth, on 2007-7-21
 | 
			
		||||
#  Email   : zxpmyth@yahoo.com.cn
 | 
			
		||||
#  Bugs    : 1) All the default settings work fine. But the setting X86=1 can't work. 
 | 
			
		||||
#            The others havn't been tested yet.
 | 
			
		||||
#            2) The generated DLLs are *not* compatible with the ones built
 | 
			
		||||
#            with the other compilers like VC8, especially for GLUT. 
 | 
			
		||||
#            3) MAlthough more tests are needed, it can be used individually!
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.PHONY : all libgl clean realclean
 | 
			
		||||
 | 
			
		||||
ifeq ($(ICD),1)
 | 
			
		||||
  # when -std=c99 mingw will not define WIN32
 | 
			
		||||
  CFLAGS = -Wall -W -Werror
 | 
			
		||||
  CFLAGS = -Wall -Werror
 | 
			
		||||
else
 | 
			
		||||
  # I love c89
 | 
			
		||||
  CFLAGS = -Wall -W -pedantic
 | 
			
		||||
  CFLAGS = -Wall -pedantic
 | 
			
		||||
endif
 | 
			
		||||
CFLAGS += -O2 -ffast-math
 | 
			
		||||
 | 
			
		||||
export CFLAGS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
 | 
			
		||||
UNLINK = del $(subst /,\,$(1))
 | 
			
		||||
else
 | 
			
		||||
UNLINK = $(RM) $(1)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
all: libgl
 | 
			
		||||
all: libgl libglu libglut example
 | 
			
		||||
 | 
			
		||||
libgl: lib
 | 
			
		||||
	$(MAKE) -f Makefile.mgw -C src/mesa
 | 
			
		||||
 | 
			
		||||
libglu: libgl
 | 
			
		||||
	$(MAKE) -f Makefile.mgw -C src/glu/sgi
 | 
			
		||||
 | 
			
		||||
libglut: libglu 
 | 
			
		||||
	$(MAKE) -f Makefile.mgw -C src/glut/glx
 | 
			
		||||
 | 
			
		||||
example: libglut 
 | 
			
		||||
	$(MAKE) -f Makefile.mgw star -C progs/samples
 | 
			
		||||
	copy progs\samples\star.exe lib
 | 
			
		||||
 | 
			
		||||
lib:
 | 
			
		||||
	mkdir lib
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	$(MAKE) -f Makefile.mgw clean -C src/mesa
 | 
			
		||||
	$(MAKE) -f Makefile.mgw clean -C src/glu/sgi
 | 
			
		||||
	$(MAKE) -f Makefile.mgw clean -C src/glut/glx
 | 
			
		||||
 | 
			
		||||
realclean: clean
 | 
			
		||||
	-$(call UNLINK,lib/*.a)
 | 
			
		||||
 
 | 
			
		||||
@@ -104,6 +104,10 @@ do
 | 
			
		||||
	    # this is a special case (see bugzilla 10876)
 | 
			
		||||
	    DEPS="$DEPS $1"
 | 
			
		||||
	    ;;
 | 
			
		||||
	'-pthread')
 | 
			
		||||
	    # for FreeBSD
 | 
			
		||||
	    DEPS="$DEPS -pthread"
 | 
			
		||||
	    ;;
 | 
			
		||||
	'-cplusplus')
 | 
			
		||||
	    CPLUSPLUS=1
 | 
			
		||||
	    ;;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								configs/bluegene-osmesa
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								configs/bluegene-osmesa
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
# Configuration for building only libOSMesa on BlueGene, no Xlib driver
 | 
			
		||||
# This doesn't really have a lot of dependencies, so it should be usable
 | 
			
		||||
# on other (gcc-based) systems too.
 | 
			
		||||
# It uses static linking and disables multithreading.
 | 
			
		||||
 | 
			
		||||
include $(TOP)/configs/default
 | 
			
		||||
 | 
			
		||||
CONFIG_NAME = bluegene-osmesa
 | 
			
		||||
 | 
			
		||||
# Compiler and flags
 | 
			
		||||
CC = /bgl/BlueLight/ppcfloor/blrts-gnu/bin/powerpc-bgl-blrts-gnu-gcc
 | 
			
		||||
CXX = /bgl/BlueLight/ppcfloor/blrts-gnu/bin/powerpc-bgl-blrts-gnu-g++
 | 
			
		||||
CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
 | 
			
		||||
CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURC
 | 
			
		||||
 | 
			
		||||
MKLIB_OPTIONS = -static
 | 
			
		||||
 | 
			
		||||
OSMESA_LIB_NAME = libOSMesa.a
 | 
			
		||||
 | 
			
		||||
# Directories
 | 
			
		||||
SRC_DIRS = mesa glu
 | 
			
		||||
DRIVER_DIRS = osmesa
 | 
			
		||||
PROGRAM_DIRS = osdemos
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Dependencies
 | 
			
		||||
OSMESA_LIB_DEPS = -lm
 | 
			
		||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
 | 
			
		||||
APP_LIB_DEPS = -lOSMesa -lGLU -lm
 | 
			
		||||
@@ -9,8 +9,8 @@ CONFIG_NAME = default
 | 
			
		||||
 | 
			
		||||
# Version info
 | 
			
		||||
MESA_MAJOR=7
 | 
			
		||||
MESA_MINOR=1
 | 
			
		||||
MESA_TINY=0
 | 
			
		||||
MESA_MINOR=0
 | 
			
		||||
MESA_TINY=1
 | 
			
		||||
 | 
			
		||||
# external projects.  This should be useless now that we use libdrm.
 | 
			
		||||
DRM_SOURCE_PATH=$(TOP)/../drm
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ OPT_FLAGS  = -O2
 | 
			
		||||
PIC_FLAGS  = -fPIC
 | 
			
		||||
 | 
			
		||||
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -DUSE_XSHM \
 | 
			
		||||
	-DHZ=100 -DHAVE_POSIX_MEMALIGN
 | 
			
		||||
	-DHZ=100
 | 
			
		||||
 | 
			
		||||
X11_INCLUDES = -I/usr/X11R6/include
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@ EXPAT_INCLUDES = -I/usr/local/include
 | 
			
		||||
X11_INCLUDES = -I/usr/X11R6/include
 | 
			
		||||
DEFINES = -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \
 | 
			
		||||
	-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING \
 | 
			
		||||
	-DHAVE_ALIAS -DHAVE_POSIX_MEMALIGN
 | 
			
		||||
	-DHAVE_ALIAS
 | 
			
		||||
 | 
			
		||||
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) -Wmissing-prototypes -std=c99 -Wundef -ffast-math \
 | 
			
		||||
	$(ASM_FLAGS) $(X11_INCLUDES) $(DEFINES)
 | 
			
		||||
@@ -27,9 +27,9 @@ ASM_SOURCES =
 | 
			
		||||
# Library/program dependencies
 | 
			
		||||
LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
 | 
			
		||||
LIBDRM_LIB = `pkg-config --libs libdrm`
 | 
			
		||||
DRI_LIB_DEPS = -L/usr/local/lib -lm -lpthread -lexpat $(LIBDRM_LIB)
 | 
			
		||||
DRI_LIB_DEPS = -L/usr/local/lib -lm -pthread -lexpat $(LIBDRM_LIB)
 | 
			
		||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
 | 
			
		||||
	-lm -lpthread $(LIBDRM_LIB)
 | 
			
		||||
	-lm -pthread $(LIBDRM_LIB)
 | 
			
		||||
 | 
			
		||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -lGLU -lGL -lX11 -lXmu -lXt -lXi -lm
 | 
			
		||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -lGL -lXt -lX11
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										32
									
								
								configs/sunos5-v9-cc-g++
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								configs/sunos5-v9-cc-g++
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
# Configuration for SunOS 5, SPARC V9 and cc/g++ (for C and C++ sources)
 | 
			
		||||
 | 
			
		||||
include $(TOP)/configs/default
 | 
			
		||||
 | 
			
		||||
CONFIG_NAME = sunos5-v9-cc-g++
 | 
			
		||||
 | 
			
		||||
MKLIB_OPTIONS = -cplusplus
 | 
			
		||||
 | 
			
		||||
LIB_DIR = lib64
 | 
			
		||||
 | 
			
		||||
# Compiler and flags
 | 
			
		||||
CC = cc
 | 
			
		||||
CXX = g++
 | 
			
		||||
 | 
			
		||||
CXX_WARN_FLAGS = -Wall
 | 
			
		||||
CXX_PIC_FLAGS  = -fPIC
 | 
			
		||||
CXX_OPT_FLAGS  = -O3 -m64 -mcpu=ultrasparc -mv8plus -mvis -g -fomit-frame-pointer -pipe
 | 
			
		||||
CXX_ARCH_FLAGS = -m64
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CXXFLAGS = $(CXX_WARN_FLAGS) $(CXX_OPT_FLAGS) $(CXX_PIC_FLAGS) $(CXX_ARCH_FLAGS) $(DEFINES) \
 | 
			
		||||
        -I/usr/openwin/include
 | 
			
		||||
 | 
			
		||||
CFLAGS = -xarch=v9 -KPIC -O -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DPTHREADS
 | 
			
		||||
#CXXFLAGS = -xarch=v9 -KPIC -O -I/usr/openwin/include -I/usr/dt/include -DPTHREADS
 | 
			
		||||
GLUT_CFLAGS = -DSOLARIS_2_4_BUG
 | 
			
		||||
 | 
			
		||||
GL_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -lX11 -lXext -lXmu -lXi -lm -lpthread
 | 
			
		||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm -lCstd -lCrun
 | 
			
		||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
 | 
			
		||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11
 | 
			
		||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
 | 
			
		||||
@@ -88,3 +88,66 @@ Running the Build:
 | 
			
		||||
 | 
			
		||||
		Paul G. <pgarceau@users.sourceforge.net>
 | 
			
		||||
		Daniel Borca <dborca@users.sourceforge.net>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
******This section is added by Heromyth <zxpmyth@yahoo.com.cn>*************
 | 
			
		||||
 | 
			
		||||
====================
 | 
			
		||||
Updated on 2007-7-21
 | 
			
		||||
====================
 | 
			
		||||
 | 
			
		||||
Notice:
 | 
			
		||||
	1) The generated DLLs are *not* compatible with the ones built
 | 
			
		||||
with the other compilers like VC8, especially for GLUT. 
 | 
			
		||||
 | 
			
		||||
	2) Although more tests are needed, it can be used individually!
 | 
			
		||||
 | 
			
		||||
	3) You can set the options about whether using STDCALL to build MESA. The 
 | 
			
		||||
config file is <Mesa3D-root>\configs\config.mgw. The default setting is that:
 | 
			
		||||
		ALL_USING_STDCALL = 1
 | 
			
		||||
, which means using STDCALL to build MESA. 
 | 
			
		||||
 | 
			
		||||
	4) Of course, you can MESA without using STDCALL,I like this:) 
 | 
			
		||||
The setting is :
 | 
			
		||||
		ALL_USING_STDCALL = 0
 | 
			
		||||
To do this, however, you must modify wingdi.h which is in MingW's include dir. 
 | 
			
		||||
For example, run:
 | 
			
		||||
	notepad	C:\MingW\include\wingdi.h
 | 
			
		||||
, and delete all the lines where all the wgl*() functions are. Because they would 
 | 
			
		||||
be conflicted with the ones in <Mesa3D-root>\include\GL\mesa_wgl.h.
 | 
			
		||||
 | 
			
		||||
>>>>>>>>>> Conflicted Functions List >>>>>>>>>>
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT);
 | 
			
		||||
WINGDIAPI HGLRC WINAPI wglCreateContext(HDC);
 | 
			
		||||
WINGDIAPI HGLRC WINAPI wglCreateLayerContext(HDC,int);
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglDeleteContext(HGLRC);
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglDescribeLayerPlane(HDC,int,int,UINT,LPLAYERPLANEDESCRIPTOR);
 | 
			
		||||
WINGDIAPI HGLRC WINAPI wglGetCurrentContext(void);
 | 
			
		||||
WINGDIAPI HDC WINAPI wglGetCurrentDC(void);
 | 
			
		||||
WINGDIAPI int WINAPI wglGetLayerPaletteEntries(HDC,int,int,int,COLORREF*);
 | 
			
		||||
WINGDIAPI PROC WINAPI wglGetProcAddress(LPCSTR);
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglMakeCurrent(HDC,HGLRC);
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglRealizeLayerPalette(HDC,int,BOOL);
 | 
			
		||||
WINGDIAPI int WINAPI wglSetLayerPaletteEntries(HDC,int,int,int,const COLORREF*);
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglShareLists(HGLRC,HGLRC);
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglSwapLayerBuffers(HDC,UINT);
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglUseFontBitmapsA(HDC,DWORD,DWORD,DWORD);
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglUseFontBitmapsW(HDC,DWORD,DWORD,DWORD);
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglUseFontOutlinesA(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglUseFontOutlinesW(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
 | 
			
		||||
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 | 
			
		||||
 | 
			
		||||
====================
 | 
			
		||||
Updated on 2007-7-22
 | 
			
		||||
====================
 | 
			
		||||
	I havn't thought that I would find a better way to solve my problems so soon. 
 | 
			
		||||
I changed the method in which the import-libs and DLLs are made. After this update,
 | 
			
		||||
the DLLs of MESA are more optimized and more compatible. 
 | 
			
		||||
	It seems that there is no need to keep the building way of 'NO-STDCALL'.The 
 | 
			
		||||
way of USING_STDCALL is so nice! The file <Mesa3D-root>\configs\config.mgw is 
 | 
			
		||||
also not needed, and can be deleted safely!
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*********************************************************************************
 | 
			
		||||
@@ -9,11 +9,7 @@
 | 
			
		||||
<H1>Downloading</H1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Last development release: <b>6.5.3</b>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Last stable release: <b>6.4.2</b>
 | 
			
		||||
Last stable release: <b>7.0.1</b>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
 
 | 
			
		||||
@@ -129,7 +129,7 @@ GL_ARB_fragment_program extensions.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
May 2007: Mesa 7.0 is released, implementing the OpenGL 2.1 specification
 | 
			
		||||
June 2007: Mesa 7.0 is released, implementing the OpenGL 2.1 specification
 | 
			
		||||
and OpenGL Shading Language.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,14 @@
 | 
			
		||||
<H1>News</H1>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>May ???, 2007</h2>
 | 
			
		||||
<h2>August 3, 2007</h2>
 | 
			
		||||
<p>
 | 
			
		||||
<a href="relnotes-7.0.html">Mesa 7.0.1</a> is released.
 | 
			
		||||
This is a bug-fix release.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>June 22, 2007</h2>
 | 
			
		||||
<p>
 | 
			
		||||
<a href="relnotes-7.0.html">Mesa 7.0</a> is released.
 | 
			
		||||
This is a stable release featuring OpenGL 2.1 support.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										92
									
								
								docs/relnotes-7.0.1.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								docs/relnotes-7.0.1.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,92 @@
 | 
			
		||||
<HTML>
 | 
			
		||||
 | 
			
		||||
<TITLE>Mesa Release Notes</TITLE>
 | 
			
		||||
 | 
			
		||||
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
 | 
			
		||||
 | 
			
		||||
<BODY>
 | 
			
		||||
 | 
			
		||||
<body bgcolor="#eeeeee">
 | 
			
		||||
 | 
			
		||||
<H1>Mesa 7.0.1 Release Notes / August 3, 2007</H1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 7.0.1 is a stable release with bug fixes since version 7.0.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>New features</h2>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>Added a bluegene-osmesa build config
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
<h2>Bug fixes</h2>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>Fixed some MingW build issues
 | 
			
		||||
<li>Added a few missing OpenGL 2.0 API entrypoints:
 | 
			
		||||
  <ul>
 | 
			
		||||
  <li>glVertexAttrib4bv
 | 
			
		||||
  <li>glVertexAttrib4iv
 | 
			
		||||
  <li>glVertexAttrib4ubv
 | 
			
		||||
  <li>glVertexAttrib4uiv
 | 
			
		||||
  <li>glVertexAttrib4usv
 | 
			
		||||
  </ul>
 | 
			
		||||
<li>Fixed glDrawPixels(GL_STENCIL_INDEX) pixel transfer bug 11457
 | 
			
		||||
<li>GLSL bug fix: added vec2(vec4) constructor
 | 
			
		||||
<li>GLSL bug fix: .strq and .rgba writemasks didn't always work
 | 
			
		||||
<li>Stencil pixel map didn't always work for glDrawPixels (bug 11475)
 | 
			
		||||
<li>Fixed polygon stipple bug in i915 driver
 | 
			
		||||
<li>Binding a zero-sized texture didn't disable texturing (bug 11309)
 | 
			
		||||
<li>Queries of GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH didn't include
 | 
			
		||||
the terminating zero (bug 11588)
 | 
			
		||||
<li>glXChooseFBConfig() in Xlib driver didn't handle GLX_STEREO flag properly
 | 
			
		||||
<li>Fixed a GLSL function call bug (#11731)
 | 
			
		||||
<li>glPointParameteriv(GL_DISTANCE_ATTENUATION_EXT) didn't work (bug 11754)
 | 
			
		||||
<li>glGetAttribLocation() always returned 1 (bug 11774)
 | 
			
		||||
<li>Fixed a few memory-related bugs in GLU library
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Changes</h2>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>The libOSMesa library version has been reverted to 6.5.3 (soname=6)
 | 
			
		||||
in order to avoid application linking issues.  Otherwise, applications
 | 
			
		||||
previously linked with libOSMesa.so.6 would no longer link with libOSMesa.so.7
 | 
			
		||||
<li>Dropped obsolete, unmaintained Windows project files for VC6 and VC7.
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>To Do (someday) items</h2>
 | 
			
		||||
<ul>
 | 
			
		||||
<li>Switch to freeglut
 | 
			
		||||
<li>Fix linux-glide target/driver.
 | 
			
		||||
<li>Improved lambda and derivative calculation for frag progs.
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Driver Status</h2>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
Driver			Status
 | 
			
		||||
----------------------	----------------------
 | 
			
		||||
DRI drivers		varies with the driver
 | 
			
		||||
XMesa/GLX (on Xlib)	implements OpenGL 2.1
 | 
			
		||||
OSMesa (off-screen)	implements OpenGL 2.1
 | 
			
		||||
Windows/Win32		implements OpenGL 2.1
 | 
			
		||||
Glide (3dfx Voodoo1/2)	implements OpenGL 1.3
 | 
			
		||||
SVGA			unsupported
 | 
			
		||||
Wind River UGL		unsupported
 | 
			
		||||
DJGPP			unsupported
 | 
			
		||||
GGI			unsupported
 | 
			
		||||
BeOS			unsupported
 | 
			
		||||
Allegro			unsupported
 | 
			
		||||
D3D			unsupported
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -8,16 +8,25 @@
 | 
			
		||||
 | 
			
		||||
<body bgcolor="#eeeeee">
 | 
			
		||||
 | 
			
		||||
<H1>Mesa 7.0 Release Notes / (<em>in progress</em>)</H1>
 | 
			
		||||
<H1>Mesa 7.0 Release Notes / June 22, 2007</H1>
 | 
			
		||||
 | 
			
		||||
<p>
 | 
			
		||||
Mesa 7.0 is a stable release, featuring OpenGL 2.1 API support.
 | 
			
		||||
A number of bugs have been fixed since the 6.5.3 release.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>MD5 checksums</h2>
 | 
			
		||||
<pre>
 | 
			
		||||
TBD
 | 
			
		||||
35a1698986f7ac8dc435624ee9256cda  MesaLib-7.0.tar.gz
 | 
			
		||||
50c371455fa7532c04aa0a970f9bc51f  MesaLib-7.0.tar.bz2
 | 
			
		||||
bcedb6f43c97c1bc49e5cc7f12835722  MesaLib-7.0.zip
 | 
			
		||||
9bad332c7b74f59be96556135212ca9e  MesaDemos-7.0.tar.gz
 | 
			
		||||
fada2bc1f29da513e015fda1e3abd0c0  MesaDemos-7.0.tar.bz2
 | 
			
		||||
84e3bbe470d983ae32f1f0c779faf99e  MesaDemos-7.0.zip
 | 
			
		||||
76c7bb54f9850c689eba844f6daed332  MesaGLUT-7.0.tar.gz
 | 
			
		||||
4af28296e02772ef1de00e4e79bf3d12  MesaGLUT-7.0.tar.bz2
 | 
			
		||||
9043cb0b54cc03d1874728d74b12188c  MesaGLUT-7.0.zip
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -37,6 +46,12 @@ TBD
 | 
			
		||||
<li>Fixed R300 vertex program/matrix bug (10848)
 | 
			
		||||
<li>GLSL dFdx() and dFdy() work for fragment program inputs now (texcoords)
 | 
			
		||||
<li>Specifying an invalid texture unit as a sampler could lead to a crash
 | 
			
		||||
<li>The GLX protocol request for glXDestroyPBuffer() was incorrect (bug 10983)
 | 
			
		||||
<li>ARB vp state.light[n].half value was incorrect (bug 10987)
 | 
			
		||||
<li>Fixed a positional light source bug (bug 11009)
 | 
			
		||||
<li>Fixed point size attenuation problem (bug 11042)
 | 
			
		||||
<li>glPopAttrib didn't restore texture object's LOD bias (bug 11049)
 | 
			
		||||
<li>Fixed a TLS / TEXTREL problem (bug 7459)
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@ The release notes summarize what's new or changed in each Mesa release.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<UL>
 | 
			
		||||
<LI><A HREF="relnotes-7.0.1.html">7.0.1 release notes</A>
 | 
			
		||||
<LI><A HREF="relnotes-7.0.html">7.0 release notes</A>
 | 
			
		||||
<LI><A HREF="relnotes-6.5.3.html">6.5.3 release notes</A>
 | 
			
		||||
<LI><A HREF="relnotes-6.5.2.html">6.5.2 release notes</A>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Mesa 3-D graphics library
 | 
			
		||||
 * Version:  6.5.1
 | 
			
		||||
 * Version:  7.0
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
 * copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
@@ -84,7 +84,8 @@
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) && !defined(__CYGWIN__)
 | 
			
		||||
#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) \
 | 
			
		||||
     && !defined(OPENSTEP) && !defined(__CYGWIN__) || defined(__MINGW32__)
 | 
			
		||||
#include <GL/mesa_wgl.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -2161,11 +2162,11 @@ typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLsh
 | 
			
		||||
#define GL_DEBUG_PRINT_MESA               0x875A
 | 
			
		||||
#define GL_DEBUG_ASSERT_MESA              0x875B
 | 
			
		||||
 | 
			
		||||
GLAPI GLhandleARB APIENTRY glCreateDebugObjectMESA (void);
 | 
			
		||||
GLAPI void APIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
 | 
			
		||||
GLAPI void APIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength,
 | 
			
		||||
GLAPI GLhandleARB GLAPIENTRY glCreateDebugObjectMESA (void);
 | 
			
		||||
GLAPI void GLAPIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
 | 
			
		||||
GLAPI void GLAPIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength,
 | 
			
		||||
                                         GLsizei *length, GLcharARB *debugLog);
 | 
			
		||||
GLAPI GLsizei APIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
 | 
			
		||||
GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
 | 
			
		||||
 | 
			
		||||
#endif /* GL_MESA_shader_debug */
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -33,6 +33,7 @@
 | 
			
		||||
#define glActiveStencilFaceEXT		MANGLE(ActiveStencilFaceEXT)
 | 
			
		||||
#define glActiveTextureARB		MANGLE(ActiveTextureARB)
 | 
			
		||||
#define glActiveTexture		MANGLE(ActiveTexture)
 | 
			
		||||
#define glActiveVaryingNV		MANGLE(ActiveVaryingNV)
 | 
			
		||||
#define glAlphaFragmentOp1ATI		MANGLE(AlphaFragmentOp1ATI)
 | 
			
		||||
#define glAlphaFragmentOp2ATI		MANGLE(AlphaFragmentOp2ATI)
 | 
			
		||||
#define glAlphaFragmentOp3ATI		MANGLE(AlphaFragmentOp3ATI)
 | 
			
		||||
@@ -52,11 +53,16 @@
 | 
			
		||||
#define glBeginOcclusionQueryNV		MANGLE(BeginOcclusionQueryNV)
 | 
			
		||||
#define glBeginQueryARB		MANGLE(BeginQueryARB)
 | 
			
		||||
#define glBeginQuery		MANGLE(BeginQuery)
 | 
			
		||||
#define glBeginTransformFeedbackNV		MANGLE(BeginTransformFeedbackNV)
 | 
			
		||||
#define glBeginVertexShaderEXT		MANGLE(BeginVertexShaderEXT)
 | 
			
		||||
#define glBindAttribLocationARB		MANGLE(BindAttribLocationARB)
 | 
			
		||||
#define glBindAttribLocation		MANGLE(BindAttribLocation)
 | 
			
		||||
#define glBindBufferARB		MANGLE(BindBufferARB)
 | 
			
		||||
#define glBindBufferBaseNV		MANGLE(BindBufferBaseNV)
 | 
			
		||||
#define glBindBuffer		MANGLE(BindBuffer)
 | 
			
		||||
#define glBindBufferOffsetNV		MANGLE(BindBufferOffsetNV)
 | 
			
		||||
#define glBindBufferRangeNV		MANGLE(BindBufferRangeNV)
 | 
			
		||||
#define glBindFragDataLocationEXT		MANGLE(BindFragDataLocationEXT)
 | 
			
		||||
#define glBindFragmentShaderATI		MANGLE(BindFragmentShaderATI)
 | 
			
		||||
#define glBindFramebufferEXT		MANGLE(BindFramebufferEXT)
 | 
			
		||||
#define glBindLightParameterEXT		MANGLE(BindLightParameterEXT)
 | 
			
		||||
@@ -97,6 +103,7 @@
 | 
			
		||||
#define glBlitFramebufferEXT		MANGLE(BlitFramebufferEXT)
 | 
			
		||||
#define glBufferDataARB		MANGLE(BufferDataARB)
 | 
			
		||||
#define glBufferData		MANGLE(BufferData)
 | 
			
		||||
#define glBufferParameteriAPPLE		MANGLE(BufferParameteriAPPLE)
 | 
			
		||||
#define glBufferSubDataARB		MANGLE(BufferSubDataARB)
 | 
			
		||||
#define glBufferSubData		MANGLE(BufferSubData)
 | 
			
		||||
#define glCallList		MANGLE(CallList)
 | 
			
		||||
@@ -104,8 +111,11 @@
 | 
			
		||||
#define glCheckFramebufferStatusEXT		MANGLE(CheckFramebufferStatusEXT)
 | 
			
		||||
#define glClampColorARB		MANGLE(ClampColorARB)
 | 
			
		||||
#define glClearAccum		MANGLE(ClearAccum)
 | 
			
		||||
#define glClearColorIiEXT		MANGLE(ClearColorIiEXT)
 | 
			
		||||
#define glClearColorIuiEXT		MANGLE(ClearColorIuiEXT)
 | 
			
		||||
#define glClearColor		MANGLE(ClearColor)
 | 
			
		||||
#define glClearDebugLogMESA		MANGLE(ClearDebugLogMESA)
 | 
			
		||||
#define glClearDepthdNV		MANGLE(ClearDepthdNV)
 | 
			
		||||
#define glClearDepth		MANGLE(ClearDepth)
 | 
			
		||||
#define glClearIndex		MANGLE(ClearIndex)
 | 
			
		||||
#define glClear		MANGLE(Clear)
 | 
			
		||||
@@ -161,6 +171,7 @@
 | 
			
		||||
#define glColorFragmentOp1ATI		MANGLE(ColorFragmentOp1ATI)
 | 
			
		||||
#define glColorFragmentOp2ATI		MANGLE(ColorFragmentOp2ATI)
 | 
			
		||||
#define glColorFragmentOp3ATI		MANGLE(ColorFragmentOp3ATI)
 | 
			
		||||
#define glColorMaskIndexedEXT		MANGLE(ColorMaskIndexedEXT)
 | 
			
		||||
#define glColorMask		MANGLE(ColorMask)
 | 
			
		||||
#define glColorMaterial		MANGLE(ColorMaterial)
 | 
			
		||||
#define glColorPointerEXT		MANGLE(ColorPointerEXT)
 | 
			
		||||
@@ -261,19 +272,23 @@
 | 
			
		||||
#define glDeleteTextures		MANGLE(DeleteTextures)
 | 
			
		||||
#define glDeleteVertexArraysAPPLE		MANGLE(DeleteVertexArraysAPPLE)
 | 
			
		||||
#define glDeleteVertexShaderEXT		MANGLE(DeleteVertexShaderEXT)
 | 
			
		||||
#define glDepthBoundsdNV		MANGLE(DepthBoundsdNV)
 | 
			
		||||
#define glDepthBoundsEXT		MANGLE(DepthBoundsEXT)
 | 
			
		||||
#define glDepthFunc		MANGLE(DepthFunc)
 | 
			
		||||
#define glDepthMask		MANGLE(DepthMask)
 | 
			
		||||
#define glDepthRangedNV		MANGLE(DepthRangedNV)
 | 
			
		||||
#define glDepthRange		MANGLE(DepthRange)
 | 
			
		||||
#define glDetachObjectARB		MANGLE(DetachObjectARB)
 | 
			
		||||
#define glDetachShader		MANGLE(DetachShader)
 | 
			
		||||
#define glDetailTexFuncSGIS		MANGLE(DetailTexFuncSGIS)
 | 
			
		||||
#define glDisableClientState		MANGLE(DisableClientState)
 | 
			
		||||
#define glDisableIndexedEXT		MANGLE(DisableIndexedEXT)
 | 
			
		||||
#define glDisable		MANGLE(Disable)
 | 
			
		||||
#define glDisableVariantClientStateEXT		MANGLE(DisableVariantClientStateEXT)
 | 
			
		||||
#define glDisableVertexAttribArrayARB		MANGLE(DisableVertexAttribArrayARB)
 | 
			
		||||
#define glDisableVertexAttribArray		MANGLE(DisableVertexAttribArray)
 | 
			
		||||
#define glDrawArraysEXT		MANGLE(DrawArraysEXT)
 | 
			
		||||
#define glDrawArraysInstancedEXT		MANGLE(DrawArraysInstancedEXT)
 | 
			
		||||
#define glDrawArrays		MANGLE(DrawArrays)
 | 
			
		||||
#define glDrawBuffer		MANGLE(DrawBuffer)
 | 
			
		||||
#define glDrawBuffersARB		MANGLE(DrawBuffersARB)
 | 
			
		||||
@@ -281,6 +296,7 @@
 | 
			
		||||
#define glDrawBuffers		MANGLE(DrawBuffers)
 | 
			
		||||
#define glDrawElementArrayAPPLE		MANGLE(DrawElementArrayAPPLE)
 | 
			
		||||
#define glDrawElementArrayATI		MANGLE(DrawElementArrayATI)
 | 
			
		||||
#define glDrawElementsInstancedEXT		MANGLE(DrawElementsInstancedEXT)
 | 
			
		||||
#define glDrawElements		MANGLE(DrawElements)
 | 
			
		||||
#define glDrawMeshArraysSUN		MANGLE(DrawMeshArraysSUN)
 | 
			
		||||
#define glDrawPixels		MANGLE(DrawPixels)
 | 
			
		||||
@@ -296,6 +312,7 @@
 | 
			
		||||
#define glElementPointerAPPLE		MANGLE(ElementPointerAPPLE)
 | 
			
		||||
#define glElementPointerATI		MANGLE(ElementPointerATI)
 | 
			
		||||
#define glEnableClientState		MANGLE(EnableClientState)
 | 
			
		||||
#define glEnableIndexedEXT		MANGLE(EnableIndexedEXT)
 | 
			
		||||
#define glEnable		MANGLE(Enable)
 | 
			
		||||
#define glEnableVariantClientStateEXT		MANGLE(EnableVariantClientStateEXT)
 | 
			
		||||
#define glEnableVertexAttribArrayARB		MANGLE(EnableVertexAttribArrayARB)
 | 
			
		||||
@@ -306,6 +323,7 @@
 | 
			
		||||
#define glEndOcclusionQueryNV		MANGLE(EndOcclusionQueryNV)
 | 
			
		||||
#define glEndQueryARB		MANGLE(EndQueryARB)
 | 
			
		||||
#define glEndQuery		MANGLE(EndQuery)
 | 
			
		||||
#define glEndTransformFeedbackNV		MANGLE(EndTransformFeedbackNV)
 | 
			
		||||
#define glEndVertexShaderEXT		MANGLE(EndVertexShaderEXT)
 | 
			
		||||
#define glEvalCoord1d		MANGLE(EvalCoord1d)
 | 
			
		||||
#define glEvalCoord1dv		MANGLE(EvalCoord1dv)
 | 
			
		||||
@@ -331,6 +349,7 @@
 | 
			
		||||
#define glFinishObjectAPPLE		MANGLE(FinishObjectAPPLE)
 | 
			
		||||
#define glFinishTextureSUNX		MANGLE(FinishTextureSUNX)
 | 
			
		||||
#define glFlush		MANGLE(Flush)
 | 
			
		||||
#define glFlushMappedBufferRangeAPPLE		MANGLE(FlushMappedBufferRangeAPPLE)
 | 
			
		||||
#define glFlushPixelDataRangeNV		MANGLE(FlushPixelDataRangeNV)
 | 
			
		||||
#define glFlushRasterSGIX		MANGLE(FlushRasterSGIX)
 | 
			
		||||
#define glFlushVertexArrayRangeAPPLE		MANGLE(FlushVertexArrayRangeAPPLE)
 | 
			
		||||
@@ -370,6 +389,9 @@
 | 
			
		||||
#define glFramebufferTexture1DEXT		MANGLE(FramebufferTexture1DEXT)
 | 
			
		||||
#define glFramebufferTexture2DEXT		MANGLE(FramebufferTexture2DEXT)
 | 
			
		||||
#define glFramebufferTexture3DEXT		MANGLE(FramebufferTexture3DEXT)
 | 
			
		||||
#define glFramebufferTextureEXT		MANGLE(FramebufferTextureEXT)
 | 
			
		||||
#define glFramebufferTextureFaceEXT		MANGLE(FramebufferTextureFaceEXT)
 | 
			
		||||
#define glFramebufferTextureLayerEXT		MANGLE(FramebufferTextureLayerEXT)
 | 
			
		||||
#define glFrameZoomSGIX		MANGLE(FrameZoomSGIX)
 | 
			
		||||
#define glFreeObjectBufferATI		MANGLE(FreeObjectBufferATI)
 | 
			
		||||
#define glFrontFace		MANGLE(FrontFace)
 | 
			
		||||
@@ -398,12 +420,14 @@
 | 
			
		||||
#define glGetActiveAttrib		MANGLE(GetActiveAttrib)
 | 
			
		||||
#define glGetActiveUniformARB		MANGLE(GetActiveUniformARB)
 | 
			
		||||
#define glGetActiveUniform		MANGLE(GetActiveUniform)
 | 
			
		||||
#define glGetActiveVaryingNV		MANGLE(GetActiveVaryingNV)
 | 
			
		||||
#define glGetArrayObjectfvATI		MANGLE(GetArrayObjectfvATI)
 | 
			
		||||
#define glGetArrayObjectivATI		MANGLE(GetArrayObjectivATI)
 | 
			
		||||
#define glGetAttachedObjectsARB		MANGLE(GetAttachedObjectsARB)
 | 
			
		||||
#define glGetAttachedShaders		MANGLE(GetAttachedShaders)
 | 
			
		||||
#define glGetAttribLocationARB		MANGLE(GetAttribLocationARB)
 | 
			
		||||
#define glGetAttribLocation		MANGLE(GetAttribLocation)
 | 
			
		||||
#define glGetBooleanIndexedvEXT		MANGLE(GetBooleanIndexedvEXT)
 | 
			
		||||
#define glGetBooleanv		MANGLE(GetBooleanv)
 | 
			
		||||
#define glGetBufferParameterivARB		MANGLE(GetBufferParameterivARB)
 | 
			
		||||
#define glGetBufferParameteriv		MANGLE(GetBufferParameteriv)
 | 
			
		||||
@@ -444,6 +468,7 @@
 | 
			
		||||
#define glGetFinalCombinerInputParameterivNV		MANGLE(GetFinalCombinerInputParameterivNV)
 | 
			
		||||
#define glGetFloatv		MANGLE(GetFloatv)
 | 
			
		||||
#define glGetFogFuncSGIS		MANGLE(GetFogFuncSGIS)
 | 
			
		||||
#define glGetFragDataLocationEXT		MANGLE(GetFragDataLocationEXT)
 | 
			
		||||
#define glGetFragmentLightfvSGIX		MANGLE(GetFragmentLightfvSGIX)
 | 
			
		||||
#define glGetFragmentLightivSGIX		MANGLE(GetFragmentLightivSGIX)
 | 
			
		||||
#define glGetFragmentMaterialfvSGIX		MANGLE(GetFragmentMaterialfvSGIX)
 | 
			
		||||
@@ -460,6 +485,7 @@
 | 
			
		||||
#define glGetImageTransformParameterivHP		MANGLE(GetImageTransformParameterivHP)
 | 
			
		||||
#define glGetInfoLogARB		MANGLE(GetInfoLogARB)
 | 
			
		||||
#define glGetInstrumentsSGIX		MANGLE(GetInstrumentsSGIX)
 | 
			
		||||
#define glGetIntegerIndexedvEXT		MANGLE(GetIntegerIndexedvEXT)
 | 
			
		||||
#define glGetIntegerv		MANGLE(GetIntegerv)
 | 
			
		||||
#define glGetInvariantBooleanvEXT		MANGLE(GetInvariantBooleanvEXT)
 | 
			
		||||
#define glGetInvariantFloatvEXT		MANGLE(GetInvariantFloatvEXT)
 | 
			
		||||
@@ -503,12 +529,16 @@
 | 
			
		||||
#define glGetPolygonStipple		MANGLE(GetPolygonStipple)
 | 
			
		||||
#define glGetProgramEnvParameterdvARB		MANGLE(GetProgramEnvParameterdvARB)
 | 
			
		||||
#define glGetProgramEnvParameterfvARB		MANGLE(GetProgramEnvParameterfvARB)
 | 
			
		||||
#define glGetProgramEnvParameterIivNV		MANGLE(GetProgramEnvParameterIivNV)
 | 
			
		||||
#define glGetProgramEnvParameterIuivNV		MANGLE(GetProgramEnvParameterIuivNV)
 | 
			
		||||
#define glGetProgramInfoLog		MANGLE(GetProgramInfoLog)
 | 
			
		||||
#define glGetProgramivARB		MANGLE(GetProgramivARB)
 | 
			
		||||
#define glGetProgramiv		MANGLE(GetProgramiv)
 | 
			
		||||
#define glGetProgramivNV		MANGLE(GetProgramivNV)
 | 
			
		||||
#define glGetProgramLocalParameterdvARB		MANGLE(GetProgramLocalParameterdvARB)
 | 
			
		||||
#define glGetProgramLocalParameterfvARB		MANGLE(GetProgramLocalParameterfvARB)
 | 
			
		||||
#define glGetProgramLocalParameterIivNV		MANGLE(GetProgramLocalParameterIivNV)
 | 
			
		||||
#define glGetProgramLocalParameterIuivNV		MANGLE(GetProgramLocalParameterIuivNV)
 | 
			
		||||
#define glGetProgramNamedParameterdvNV		MANGLE(GetProgramNamedParameterdvNV)
 | 
			
		||||
#define glGetProgramNamedParameterfvNV		MANGLE(GetProgramNamedParameterfvNV)
 | 
			
		||||
#define glGetProgramParameterdvNV		MANGLE(GetProgramParameterdvNV)
 | 
			
		||||
@@ -545,20 +575,27 @@
 | 
			
		||||
#define glGetTexLevelParameterfv		MANGLE(GetTexLevelParameterfv)
 | 
			
		||||
#define glGetTexLevelParameteriv		MANGLE(GetTexLevelParameteriv)
 | 
			
		||||
#define glGetTexParameterfv		MANGLE(GetTexParameterfv)
 | 
			
		||||
#define glGetTexParameterIivEXT		MANGLE(GetTexParameterIivEXT)
 | 
			
		||||
#define glGetTexParameterIuivEXT		MANGLE(GetTexParameterIuivEXT)
 | 
			
		||||
#define glGetTexParameteriv		MANGLE(GetTexParameteriv)
 | 
			
		||||
#define glGetTrackMatrixivNV		MANGLE(GetTrackMatrixivNV)
 | 
			
		||||
#define glGetTransformFeedbackVaryingNV		MANGLE(GetTransformFeedbackVaryingNV)
 | 
			
		||||
#define glGetUniformBufferSizeEXT		MANGLE(GetUniformBufferSizeEXT)
 | 
			
		||||
#define glGetUniformfvARB		MANGLE(GetUniformfvARB)
 | 
			
		||||
#define glGetUniformfv		MANGLE(GetUniformfv)
 | 
			
		||||
#define glGetUniformivARB		MANGLE(GetUniformivARB)
 | 
			
		||||
#define glGetUniformiv		MANGLE(GetUniformiv)
 | 
			
		||||
#define glGetUniformLocationARB		MANGLE(GetUniformLocationARB)
 | 
			
		||||
#define glGetUniformLocation		MANGLE(GetUniformLocation)
 | 
			
		||||
#define glGetUniformOffsetEXT		MANGLE(GetUniformOffsetEXT)
 | 
			
		||||
#define glGetUniformuivEXT		MANGLE(GetUniformuivEXT)
 | 
			
		||||
#define glGetVariantArrayObjectfvATI		MANGLE(GetVariantArrayObjectfvATI)
 | 
			
		||||
#define glGetVariantArrayObjectivATI		MANGLE(GetVariantArrayObjectivATI)
 | 
			
		||||
#define glGetVariantBooleanvEXT		MANGLE(GetVariantBooleanvEXT)
 | 
			
		||||
#define glGetVariantFloatvEXT		MANGLE(GetVariantFloatvEXT)
 | 
			
		||||
#define glGetVariantIntegervEXT		MANGLE(GetVariantIntegervEXT)
 | 
			
		||||
#define glGetVariantPointervEXT		MANGLE(GetVariantPointervEXT)
 | 
			
		||||
#define glGetVaryingLocationNV		MANGLE(GetVaryingLocationNV)
 | 
			
		||||
#define glGetVertexAttribArrayObjectfvATI		MANGLE(GetVertexAttribArrayObjectfvATI)
 | 
			
		||||
#define glGetVertexAttribArrayObjectivATI		MANGLE(GetVertexAttribArrayObjectivATI)
 | 
			
		||||
#define glGetVertexAttribdvARB		MANGLE(GetVertexAttribdvARB)
 | 
			
		||||
@@ -567,6 +604,8 @@
 | 
			
		||||
#define glGetVertexAttribfvARB		MANGLE(GetVertexAttribfvARB)
 | 
			
		||||
#define glGetVertexAttribfv		MANGLE(GetVertexAttribfv)
 | 
			
		||||
#define glGetVertexAttribfvNV		MANGLE(GetVertexAttribfvNV)
 | 
			
		||||
#define glGetVertexAttribIivEXT		MANGLE(GetVertexAttribIivEXT)
 | 
			
		||||
#define glGetVertexAttribIuivEXT		MANGLE(GetVertexAttribIuivEXT)
 | 
			
		||||
#define glGetVertexAttribivARB		MANGLE(GetVertexAttribivARB)
 | 
			
		||||
#define glGetVertexAttribiv		MANGLE(GetVertexAttribiv)
 | 
			
		||||
#define glGetVertexAttribivNV		MANGLE(GetVertexAttribivNV)
 | 
			
		||||
@@ -613,6 +652,7 @@
 | 
			
		||||
#define glIsAsyncMarkerSGIX		MANGLE(IsAsyncMarkerSGIX)
 | 
			
		||||
#define glIsBufferARB		MANGLE(IsBufferARB)
 | 
			
		||||
#define glIsBuffer		MANGLE(IsBuffer)
 | 
			
		||||
#define glIsEnabledIndexedEXT		MANGLE(IsEnabledIndexedEXT)
 | 
			
		||||
#define glIsEnabled		MANGLE(IsEnabled)
 | 
			
		||||
#define glIsFenceAPPLE		MANGLE(IsFenceAPPLE)
 | 
			
		||||
#define glIsFenceNV		MANGLE(IsFenceNV)
 | 
			
		||||
@@ -852,17 +892,32 @@
 | 
			
		||||
#define glPrimitiveRestartNV		MANGLE(PrimitiveRestartNV)
 | 
			
		||||
#define glPrioritizeTexturesEXT		MANGLE(PrioritizeTexturesEXT)
 | 
			
		||||
#define glPrioritizeTextures		MANGLE(PrioritizeTextures)
 | 
			
		||||
#define glProgramBufferParametersfvNV		MANGLE(ProgramBufferParametersfvNV)
 | 
			
		||||
#define glProgramBufferParametersIivNV		MANGLE(ProgramBufferParametersIivNV)
 | 
			
		||||
#define glProgramBufferParametersIuivNV		MANGLE(ProgramBufferParametersIuivNV)
 | 
			
		||||
#define glProgramCallbackMESA		MANGLE(ProgramCallbackMESA)
 | 
			
		||||
#define glProgramEnvParameter4dARB		MANGLE(ProgramEnvParameter4dARB)
 | 
			
		||||
#define glProgramEnvParameter4dvARB		MANGLE(ProgramEnvParameter4dvARB)
 | 
			
		||||
#define glProgramEnvParameter4fARB		MANGLE(ProgramEnvParameter4fARB)
 | 
			
		||||
#define glProgramEnvParameter4fvARB		MANGLE(ProgramEnvParameter4fvARB)
 | 
			
		||||
#define glProgramEnvParameterI4iNV		MANGLE(ProgramEnvParameterI4iNV)
 | 
			
		||||
#define glProgramEnvParameterI4ivNV		MANGLE(ProgramEnvParameterI4ivNV)
 | 
			
		||||
#define glProgramEnvParameterI4uiNV		MANGLE(ProgramEnvParameterI4uiNV)
 | 
			
		||||
#define glProgramEnvParameterI4uivNV		MANGLE(ProgramEnvParameterI4uivNV)
 | 
			
		||||
#define glProgramEnvParameters4fvEXT		MANGLE(ProgramEnvParameters4fvEXT)
 | 
			
		||||
#define glProgramEnvParametersI4ivNV		MANGLE(ProgramEnvParametersI4ivNV)
 | 
			
		||||
#define glProgramEnvParametersI4uivNV		MANGLE(ProgramEnvParametersI4uivNV)
 | 
			
		||||
#define glProgramLocalParameter4dARB		MANGLE(ProgramLocalParameter4dARB)
 | 
			
		||||
#define glProgramLocalParameter4dvARB		MANGLE(ProgramLocalParameter4dvARB)
 | 
			
		||||
#define glProgramLocalParameter4fARB		MANGLE(ProgramLocalParameter4fARB)
 | 
			
		||||
#define glProgramLocalParameter4fvARB		MANGLE(ProgramLocalParameter4fvARB)
 | 
			
		||||
#define glProgramLocalParameterI4iNV		MANGLE(ProgramLocalParameterI4iNV)
 | 
			
		||||
#define glProgramLocalParameterI4ivNV		MANGLE(ProgramLocalParameterI4ivNV)
 | 
			
		||||
#define glProgramLocalParameterI4uiNV		MANGLE(ProgramLocalParameterI4uiNV)
 | 
			
		||||
#define glProgramLocalParameterI4uivNV		MANGLE(ProgramLocalParameterI4uivNV)
 | 
			
		||||
#define glProgramLocalParameters4fvEXT		MANGLE(ProgramLocalParameters4fvEXT)
 | 
			
		||||
#define glProgramLocalParametersI4ivNV		MANGLE(ProgramLocalParametersI4ivNV)
 | 
			
		||||
#define glProgramLocalParametersI4uivNV		MANGLE(ProgramLocalParametersI4uivNV)
 | 
			
		||||
#define glProgramNamedParameter4dNV		MANGLE(ProgramNamedParameter4dNV)
 | 
			
		||||
#define glProgramNamedParameter4dvNV		MANGLE(ProgramNamedParameter4dvNV)
 | 
			
		||||
#define glProgramNamedParameter4fNV		MANGLE(ProgramNamedParameter4fNV)
 | 
			
		||||
@@ -871,9 +926,11 @@
 | 
			
		||||
#define glProgramParameter4dvNV		MANGLE(ProgramParameter4dvNV)
 | 
			
		||||
#define glProgramParameter4fNV		MANGLE(ProgramParameter4fNV)
 | 
			
		||||
#define glProgramParameter4fvNV		MANGLE(ProgramParameter4fvNV)
 | 
			
		||||
#define glProgramParameteriEXT		MANGLE(ProgramParameteriEXT)
 | 
			
		||||
#define glProgramParameters4dvNV		MANGLE(ProgramParameters4dvNV)
 | 
			
		||||
#define glProgramParameters4fvNV		MANGLE(ProgramParameters4fvNV)
 | 
			
		||||
#define glProgramStringARB		MANGLE(ProgramStringARB)
 | 
			
		||||
#define glProgramVertexLimitNV		MANGLE(ProgramVertexLimitNV)
 | 
			
		||||
#define glPushAttrib		MANGLE(PushAttrib)
 | 
			
		||||
#define glPushClientAttrib		MANGLE(PushClientAttrib)
 | 
			
		||||
#define glPushMatrix		MANGLE(PushMatrix)
 | 
			
		||||
@@ -915,6 +972,7 @@
 | 
			
		||||
#define glRectsv		MANGLE(Rectsv)
 | 
			
		||||
#define glReferencePlaneSGIX		MANGLE(ReferencePlaneSGIX)
 | 
			
		||||
#define glRenderbufferStorageEXT		MANGLE(RenderbufferStorageEXT)
 | 
			
		||||
#define glRenderbufferStorageMultisampleCoverageNV		MANGLE(RenderbufferStorageMultisampleCoverageNV)
 | 
			
		||||
#define glRenderbufferStorageMultisampleEXT		MANGLE(RenderbufferStorageMultisampleEXT)
 | 
			
		||||
#define glRenderMode		MANGLE(RenderMode)
 | 
			
		||||
#define glReplacementCodePointerSUN		MANGLE(ReplacementCodePointerSUN)
 | 
			
		||||
@@ -1043,6 +1101,7 @@
 | 
			
		||||
#define glTestFenceAPPLE		MANGLE(TestFenceAPPLE)
 | 
			
		||||
#define glTestFenceNV		MANGLE(TestFenceNV)
 | 
			
		||||
#define glTestObjectAPPLE		MANGLE(TestObjectAPPLE)
 | 
			
		||||
#define glTexBufferEXT		MANGLE(TexBufferEXT)
 | 
			
		||||
#define glTexBumpParameterfvATI		MANGLE(TexBumpParameterfvATI)
 | 
			
		||||
#define glTexBumpParameterivATI		MANGLE(TexBumpParameterivATI)
 | 
			
		||||
#define glTexCoord1d		MANGLE(TexCoord1d)
 | 
			
		||||
@@ -1121,7 +1180,9 @@
 | 
			
		||||
#define glTexImage4DSGIS		MANGLE(TexImage4DSGIS)
 | 
			
		||||
#define glTexParameterf		MANGLE(TexParameterf)
 | 
			
		||||
#define glTexParameterfv		MANGLE(TexParameterfv)
 | 
			
		||||
#define glTexParameterIivEXT		MANGLE(TexParameterIivEXT)
 | 
			
		||||
#define glTexParameteri		MANGLE(TexParameteri)
 | 
			
		||||
#define glTexParameterIuivEXT		MANGLE(TexParameterIuivEXT)
 | 
			
		||||
#define glTexParameteriv		MANGLE(TexParameteriv)
 | 
			
		||||
#define glTexSubImage1DEXT		MANGLE(TexSubImage1DEXT)
 | 
			
		||||
#define glTexSubImage1D		MANGLE(TexSubImage1D)
 | 
			
		||||
@@ -1135,6 +1196,8 @@
 | 
			
		||||
#define glTextureMaterialEXT		MANGLE(TextureMaterialEXT)
 | 
			
		||||
#define glTextureNormalEXT		MANGLE(TextureNormalEXT)
 | 
			
		||||
#define glTrackMatrixNV		MANGLE(TrackMatrixNV)
 | 
			
		||||
#define glTransformFeedbackAttribsNV		MANGLE(TransformFeedbackAttribsNV)
 | 
			
		||||
#define glTransformFeedbackVaryingsNV		MANGLE(TransformFeedbackVaryingsNV)
 | 
			
		||||
#define glTranslated		MANGLE(Translated)
 | 
			
		||||
#define glTranslatef		MANGLE(Translatef)
 | 
			
		||||
#define glUniform1fARB		MANGLE(Uniform1fARB)
 | 
			
		||||
@@ -1145,6 +1208,8 @@
 | 
			
		||||
#define glUniform1i		MANGLE(Uniform1i)
 | 
			
		||||
#define glUniform1ivARB		MANGLE(Uniform1ivARB)
 | 
			
		||||
#define glUniform1iv		MANGLE(Uniform1iv)
 | 
			
		||||
#define glUniform1uiEXT		MANGLE(Uniform1uiEXT)
 | 
			
		||||
#define glUniform1uivEXT		MANGLE(Uniform1uivEXT)
 | 
			
		||||
#define glUniform2fARB		MANGLE(Uniform2fARB)
 | 
			
		||||
#define glUniform2f		MANGLE(Uniform2f)
 | 
			
		||||
#define glUniform2fvARB		MANGLE(Uniform2fvARB)
 | 
			
		||||
@@ -1153,6 +1218,8 @@
 | 
			
		||||
#define glUniform2i		MANGLE(Uniform2i)
 | 
			
		||||
#define glUniform2ivARB		MANGLE(Uniform2ivARB)
 | 
			
		||||
#define glUniform2iv		MANGLE(Uniform2iv)
 | 
			
		||||
#define glUniform2uiEXT		MANGLE(Uniform2uiEXT)
 | 
			
		||||
#define glUniform2uivEXT		MANGLE(Uniform2uivEXT)
 | 
			
		||||
#define glUniform3fARB		MANGLE(Uniform3fARB)
 | 
			
		||||
#define glUniform3f		MANGLE(Uniform3f)
 | 
			
		||||
#define glUniform3fvARB		MANGLE(Uniform3fvARB)
 | 
			
		||||
@@ -1161,6 +1228,8 @@
 | 
			
		||||
#define glUniform3i		MANGLE(Uniform3i)
 | 
			
		||||
#define glUniform3ivARB		MANGLE(Uniform3ivARB)
 | 
			
		||||
#define glUniform3iv		MANGLE(Uniform3iv)
 | 
			
		||||
#define glUniform3uiEXT		MANGLE(Uniform3uiEXT)
 | 
			
		||||
#define glUniform3uivEXT		MANGLE(Uniform3uivEXT)
 | 
			
		||||
#define glUniform4fARB		MANGLE(Uniform4fARB)
 | 
			
		||||
#define glUniform4f		MANGLE(Uniform4f)
 | 
			
		||||
#define glUniform4fvARB		MANGLE(Uniform4fvARB)
 | 
			
		||||
@@ -1169,6 +1238,9 @@
 | 
			
		||||
#define glUniform4i		MANGLE(Uniform4i)
 | 
			
		||||
#define glUniform4ivARB		MANGLE(Uniform4ivARB)
 | 
			
		||||
#define glUniform4iv		MANGLE(Uniform4iv)
 | 
			
		||||
#define glUniform4uiEXT		MANGLE(Uniform4uiEXT)
 | 
			
		||||
#define glUniform4uivEXT		MANGLE(Uniform4uivEXT)
 | 
			
		||||
#define glUniformBufferEXT		MANGLE(UniformBufferEXT)
 | 
			
		||||
#define glUniformMatrix2fvARB		MANGLE(UniformMatrix2fvARB)
 | 
			
		||||
#define glUniformMatrix2fv		MANGLE(UniformMatrix2fv)
 | 
			
		||||
#define glUniformMatrix2x3fv		MANGLE(UniformMatrix2x3fv)
 | 
			
		||||
@@ -1340,6 +1412,27 @@
 | 
			
		||||
#define glVertexAttrib4usvARB		MANGLE(VertexAttrib4usvARB)
 | 
			
		||||
#define glVertexAttrib4usv		MANGLE(VertexAttrib4usv)
 | 
			
		||||
#define glVertexAttribArrayObjectATI		MANGLE(VertexAttribArrayObjectATI)
 | 
			
		||||
#define glVertexAttribI1iEXT		MANGLE(VertexAttribI1iEXT)
 | 
			
		||||
#define glVertexAttribI1ivEXT		MANGLE(VertexAttribI1ivEXT)
 | 
			
		||||
#define glVertexAttribI1uiEXT		MANGLE(VertexAttribI1uiEXT)
 | 
			
		||||
#define glVertexAttribI1uivEXT		MANGLE(VertexAttribI1uivEXT)
 | 
			
		||||
#define glVertexAttribI2iEXT		MANGLE(VertexAttribI2iEXT)
 | 
			
		||||
#define glVertexAttribI2ivEXT		MANGLE(VertexAttribI2ivEXT)
 | 
			
		||||
#define glVertexAttribI2uiEXT		MANGLE(VertexAttribI2uiEXT)
 | 
			
		||||
#define glVertexAttribI2uivEXT		MANGLE(VertexAttribI2uivEXT)
 | 
			
		||||
#define glVertexAttribI3iEXT		MANGLE(VertexAttribI3iEXT)
 | 
			
		||||
#define glVertexAttribI3ivEXT		MANGLE(VertexAttribI3ivEXT)
 | 
			
		||||
#define glVertexAttribI3uiEXT		MANGLE(VertexAttribI3uiEXT)
 | 
			
		||||
#define glVertexAttribI3uivEXT		MANGLE(VertexAttribI3uivEXT)
 | 
			
		||||
#define glVertexAttribI4bvEXT		MANGLE(VertexAttribI4bvEXT)
 | 
			
		||||
#define glVertexAttribI4iEXT		MANGLE(VertexAttribI4iEXT)
 | 
			
		||||
#define glVertexAttribI4ivEXT		MANGLE(VertexAttribI4ivEXT)
 | 
			
		||||
#define glVertexAttribI4svEXT		MANGLE(VertexAttribI4svEXT)
 | 
			
		||||
#define glVertexAttribI4ubvEXT		MANGLE(VertexAttribI4ubvEXT)
 | 
			
		||||
#define glVertexAttribI4uiEXT		MANGLE(VertexAttribI4uiEXT)
 | 
			
		||||
#define glVertexAttribI4uivEXT		MANGLE(VertexAttribI4uivEXT)
 | 
			
		||||
#define glVertexAttribI4usvEXT		MANGLE(VertexAttribI4usvEXT)
 | 
			
		||||
#define glVertexAttribIPointerEXT		MANGLE(VertexAttribIPointerEXT)
 | 
			
		||||
#define glVertexAttribPointerARB		MANGLE(VertexAttribPointerARB)
 | 
			
		||||
#define glVertexAttribPointer		MANGLE(VertexAttribPointer)
 | 
			
		||||
#define glVertexAttribPointerNV		MANGLE(VertexAttribPointerNV)
 | 
			
		||||
 
 | 
			
		||||
@@ -44,6 +44,19 @@
 | 
			
		||||
#define GLAPIENTRYP GLAPIENTRY *
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef GLAPI
 | 
			
		||||
#undef GLAPI
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#  if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GLU32)
 | 
			
		||||
#    define GLAPI __declspec(dllexport)
 | 
			
		||||
#  elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
 | 
			
		||||
#    define GLAPI __declspec(dllimport)
 | 
			
		||||
#  else /* for use with static link lib build of Win32 edition only */
 | 
			
		||||
#    define GLAPI extern
 | 
			
		||||
#  endif /* _STATIC_MESA support */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef GLAPI
 | 
			
		||||
#define GLAPI
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,10 @@
 | 
			
		||||
#include <GL/gl.h>
 | 
			
		||||
#include <GL/glu.h>
 | 
			
		||||
 | 
			
		||||
#if defined(__MINGW32__)
 | 
			
		||||
#include <GL/mesa_wgl.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
@@ -115,7 +119,7 @@ extern _CRTIMP void __cdecl exit(int);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* GLUT API entry point declarations for Win32. */
 | 
			
		||||
#if defined(GLUT_BUILDING_LIB) && defined(_DLL)
 | 
			
		||||
#if (defined(BUILD_GLUT32) || defined(GLUT_BUILDING_LIB)) && defined(_DLL)
 | 
			
		||||
# 	define GLUTAPI __declspec(dllexport)
 | 
			
		||||
#elif defined(_DLL)
 | 
			
		||||
#   define GLUTAPI __declspec(dllimport)
 | 
			
		||||
@@ -130,9 +134,12 @@ extern _CRTIMP void __cdecl exit(int);
 | 
			
		||||
#		pragma message( "----: being multiply defined you should include WINDOWS.H priot to gl/glut.h" )
 | 
			
		||||
#	endif
 | 
			
		||||
#	define CALLBACK __stdcall
 | 
			
		||||
typedef int (GLUTAPIENTRY *PROC)();
 | 
			
		||||
typedef void *HGLRC;
 | 
			
		||||
typedef void *HDC;
 | 
			
		||||
 | 
			
		||||
#if !defined(__MINGW32__)
 | 
			
		||||
	typedef int (GLUTAPIENTRY *PROC)();
 | 
			
		||||
	typedef void *HGLRC;
 | 
			
		||||
	typedef void *HDC;
 | 
			
		||||
#endif
 | 
			
		||||
typedef unsigned long COLORREF;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -361,6 +361,18 @@ struct __DRIscreenRec {
 | 
			
		||||
    void * (*createNewContext)(__DRInativeDisplay *dpy, const __GLcontextModes *modes,
 | 
			
		||||
			       int render_type,
 | 
			
		||||
			       void *sharedPrivate, __DRIcontext *pctx);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Method to override base texture image with a driver specific 'offset'.
 | 
			
		||||
     * The depth passed in allows e.g. to ignore the alpha channel of texture
 | 
			
		||||
     * images where the non-alpha components don't occupy a whole texel.
 | 
			
		||||
     *
 | 
			
		||||
     * For GLX_EXT_texture_from_pixmap with AIGLX.
 | 
			
		||||
     *
 | 
			
		||||
     * \since Internal API version 20070121.
 | 
			
		||||
     */
 | 
			
		||||
    void (*setTexOffset)(__DRIcontext *pDRICtx, GLint texname,
 | 
			
		||||
			 unsigned long long offset, GLint depth, GLuint pitch);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 
 | 
			
		||||
@@ -26,11 +26,12 @@
 | 
			
		||||
/* prototypes for the Mesa WGL functions */
 | 
			
		||||
/* relocated here so that I could make GLUT get them properly */
 | 
			
		||||
 | 
			
		||||
#define _mesa_wgl_h_
 | 
			
		||||
 | 
			
		||||
#ifndef _mesa_wgl_h_
 | 
			
		||||
#define _mesa_wgl_h_
 | 
			
		||||
 | 
			
		||||
#if defined(__MINGW32__)
 | 
			
		||||
#  define __W32API_USE_DLLIMPORT__
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <GL/gl.h>
 | 
			
		||||
 | 
			
		||||
@@ -39,23 +40,16 @@ extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if !defined(OPENSTEP) && (defined(__WIN32__) || defined(__CYGWIN32__))
 | 
			
		||||
#  if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */
 | 
			
		||||
#    define GLAPI __declspec(dllexport)
 | 
			
		||||
#    define WGLAPI __declspec(dllexport)
 | 
			
		||||
#  elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
 | 
			
		||||
#    define GLAPI __declspec(dllimport)
 | 
			
		||||
#    define WGLAPI __declspec(dllimport)
 | 
			
		||||
#  else /* for use with static link lib build of Win32 edition only */
 | 
			
		||||
#    define GLAPI extern
 | 
			
		||||
#    define WGLAPI __declspec(dllimport)
 | 
			
		||||
#  endif /* _STATIC_MESA support */
 | 
			
		||||
#  define GLAPIENTRY __stdcall
 | 
			
		||||
#else
 | 
			
		||||
/* non-Windows compilation */
 | 
			
		||||
#  define GLAPI extern
 | 
			
		||||
#  define GLAPIENTRY
 | 
			
		||||
#endif /* WIN32 / CYGWIN32 bracket */
 | 
			
		||||
#ifndef WGLAPI
 | 
			
		||||
#define WGLAPI GLAPI
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__MINGW32__)
 | 
			
		||||
#  ifndef WIN32_LEAN_AND_MEAN
 | 
			
		||||
#    define WIN32_LEAN_AND_MEAN 1
 | 
			
		||||
#  endif
 | 
			
		||||
#  include <windows.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP)
 | 
			
		||||
@@ -80,23 +74,23 @@ typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESC
 | 
			
		||||
#  pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglDeleteContext(HGLRC);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglMakeCurrent(HDC,HGLRC);
 | 
			
		||||
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglSetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglSwapBuffers(HDC hdc);
 | 
			
		||||
WGLAPI HDC   GLAPIENTRY wglGetCurrentDC(void);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglGetPixelFormat(HDC hdc);
 | 
			
		||||
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int);
 | 
			
		||||
WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC);
 | 
			
		||||
WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int);
 | 
			
		||||
WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void);
 | 
			
		||||
WGLAPI PROC  GLAPIENTRY wglGetProcAddress(const char*);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglDeleteContext(HGLRC);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglDescribeLayerPlane(HDC, int, int, unsigned int,LPLAYERPLANEDESCRIPTOR);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR);
 | 
			
		||||
WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void);
 | 
			
		||||
WGLAPI HDC   GLAPIENTRY wglGetCurrentDC(void);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglGetLayerPaletteEntries(HDC, int, int, int,COLORREF *);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglGetPixelFormat(HDC hdc);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglMakeCurrent(HDC, HGLRC);
 | 
			
		||||
WGLAPI PROC  GLAPIENTRY wglGetProcAddress(const char*);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglMakeCurrent(HDC,HGLRC);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglRealizeLayerPalette(HDC, int, int);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglSetLayerPaletteEntries(HDC, int, int, int,const COLORREF *);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglShareLists(HGLRC, HGLRC);
 | 
			
		||||
@@ -105,12 +99,14 @@ WGLAPI int   GLAPIENTRY wglUseFontBitmapsA(HDC, unsigned long, unsigned long, un
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglUseFontBitmapsW(HDC, unsigned long, unsigned long, unsigned long);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
 | 
			
		||||
WGLAPI int   GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
 | 
			
		||||
 | 
			
		||||
#ifndef __MINGW32__
 | 
			
		||||
WGLAPI int   GLAPIENTRY SwapBuffers(HDC);
 | 
			
		||||
WGLAPI int   GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *);
 | 
			
		||||
WGLAPI int   GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR);
 | 
			
		||||
WGLAPI int   GLAPIENTRY GetPixelFormat(HDC);
 | 
			
		||||
WGLAPI int   GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef WGL_ARB_extensions_string
 | 
			
		||||
#define WGL_ARB_extensions_string 1
 | 
			
		||||
 
 | 
			
		||||
@@ -1053,6 +1053,7 @@ main (int argc, char *argv[])
 | 
			
		||||
    else
 | 
			
		||||
       file = argv[1];
 | 
			
		||||
 | 
			
		||||
    glutInit(&argc, argv); 
 | 
			
		||||
    glutInitWindowPosition (0, 0);
 | 
			
		||||
    glutInitWindowSize(640,480);
 | 
			
		||||
    glutInitDisplayMode (GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
 | 
			
		||||
 
 | 
			
		||||
@@ -569,6 +569,7 @@ main(int ac, char **av)
 | 
			
		||||
   if (ac == 2)
 | 
			
		||||
      frontbuffer = 0;
 | 
			
		||||
 | 
			
		||||
   glutInit(&ac, av);
 | 
			
		||||
   glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
 | 
			
		||||
   glutInitWindowPosition(0, 0);
 | 
			
		||||
   glutInitWindowSize(640, 480);
 | 
			
		||||
 
 | 
			
		||||
@@ -1042,6 +1042,7 @@ int main(int argc, char **argv)
 | 
			
		||||
 | 
			
		||||
   read_surface( "isosurf.dat" );
 | 
			
		||||
 | 
			
		||||
   glutInit( &argc, argv);
 | 
			
		||||
   glutInitWindowPosition(0, 0);
 | 
			
		||||
   glutInitWindowSize(400, 400);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -826,7 +826,7 @@ static void pinit(void)
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void INIT(void)
 | 
			
		||||
int main(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
  printf("Morph 3D - Shows morphing platonic polyhedra\n");
 | 
			
		||||
  printf("Author: Marcelo Fernandes Vianna (vianna@cat.cbpf.br)\n\n");
 | 
			
		||||
@@ -841,6 +841,7 @@ static void INIT(void)
 | 
			
		||||
 | 
			
		||||
  object=1;
 | 
			
		||||
 | 
			
		||||
  glutInit(&argc, argv);
 | 
			
		||||
  glutInitWindowPosition(0,0);
 | 
			
		||||
  glutInitWindowSize(640,480);
 | 
			
		||||
 | 
			
		||||
@@ -888,9 +889,3 @@ static void INIT(void)
 | 
			
		||||
  glutMainLoop();
 | 
			
		||||
  
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
  INIT();
 | 
			
		||||
  return(0);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -100,6 +100,7 @@ static void init( void )
 | 
			
		||||
 | 
			
		||||
int main( int argc, char *argv[] )
 | 
			
		||||
{
 | 
			
		||||
   glutInit(&argc, argv);
 | 
			
		||||
   glutInitWindowPosition(0, 0);
 | 
			
		||||
   glutInitWindowSize(500, 500);
 | 
			
		||||
   glutInitDisplayMode( GLUT_RGB );
 | 
			
		||||
 
 | 
			
		||||
@@ -409,6 +409,8 @@ test(GLenum type, GLint bits, const char *filename)
 | 
			
		||||
 | 
			
		||||
   printf("Rendering %d bit/channel image: %s\n", bits, filename);
 | 
			
		||||
 | 
			
		||||
   OSMesaColorClamp(GL_TRUE);
 | 
			
		||||
 | 
			
		||||
   init_context();
 | 
			
		||||
   render_image();
 | 
			
		||||
   if (Gradient)
 | 
			
		||||
@@ -421,7 +423,7 @@ test(GLenum type, GLint bits, const char *filename)
 | 
			
		||||
   if (WriteFiles && filename != NULL) {
 | 
			
		||||
      if (type == GL_UNSIGNED_SHORT) {
 | 
			
		||||
         GLushort *buffer16 = (GLushort *) buffer;
 | 
			
		||||
         GLubyte *buffer8 = malloc(WIDTH * HEIGHT * 4);
 | 
			
		||||
         GLubyte *buffer8 = (GLubyte *) malloc(WIDTH * HEIGHT * 4);
 | 
			
		||||
         int i;
 | 
			
		||||
         for (i = 0; i < WIDTH * HEIGHT * 4; i++)
 | 
			
		||||
            buffer8[i] = buffer16[i] >> 8;
 | 
			
		||||
@@ -430,8 +432,9 @@ test(GLenum type, GLint bits, const char *filename)
 | 
			
		||||
      }
 | 
			
		||||
      else if (type == GL_FLOAT) {
 | 
			
		||||
         GLfloat *buffer32 = (GLfloat *) buffer;
 | 
			
		||||
         GLubyte *buffer8 = malloc(WIDTH * HEIGHT * 4);
 | 
			
		||||
         GLubyte *buffer8 = (GLubyte *) malloc(WIDTH * HEIGHT * 4);
 | 
			
		||||
         int i;
 | 
			
		||||
         /* colors may be outside [0,1] so we need to clamp */
 | 
			
		||||
         for (i = 0; i < WIDTH * HEIGHT * 4; i++)
 | 
			
		||||
            buffer8[i] = (GLubyte) (buffer32[i] * 255.0);
 | 
			
		||||
         write_ppm(filename, buffer8, WIDTH, HEIGHT);
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,15 @@
 | 
			
		||||
#  Email : dborca@users.sourceforge.net
 | 
			
		||||
#  Web   : http://www.geocities.com/dborca
 | 
			
		||||
 | 
			
		||||
# MinGW samples makefile updated for Mesa 7.0
 | 
			
		||||
#
 | 
			
		||||
#  Updated : by Heromyth, on 2007-7-21
 | 
			
		||||
#  Email   : zxpmyth@yahoo.com.cn
 | 
			
		||||
#  Bugs    : 1) All the default settings work fine. But the setting X86=1 can't work. 
 | 
			
		||||
#            The others havn't been tested yet.
 | 
			
		||||
#            2) The generated DLLs are *not* compatible with the ones built
 | 
			
		||||
#            with the other compilers like VC8, especially for GLUT. 
 | 
			
		||||
#            3) Although more tests are needed, it can be used individually!
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
#  Available options:
 | 
			
		||||
@@ -45,14 +54,14 @@
 | 
			
		||||
TOP = ../..
 | 
			
		||||
 | 
			
		||||
CC = mingw32-gcc
 | 
			
		||||
CFLAGS = -Wall -W -pedantic
 | 
			
		||||
CFLAGS += -O2 -ffast-math
 | 
			
		||||
CFLAGS = -Wall -pedantic
 | 
			
		||||
CFLAGS += -O2 -ffast-math -D_DLL
 | 
			
		||||
CFLAGS += -I$(TOP)/include -I../util
 | 
			
		||||
ifeq ($(FX),1)
 | 
			
		||||
CFLAGS += -DFX
 | 
			
		||||
  CFLAGS += -DFX
 | 
			
		||||
endif
 | 
			
		||||
CFLAGS += -DGLUT_DISABLE_ATEXIT_HACK -D_STDCALL_SUPPORTED
 | 
			
		||||
CFLAGS += -D_WINDEF_ -D_WINGDI_
 | 
			
		||||
 | 
			
		||||
CFLAGS += -DGLUT_DISABLE_ATEXIT_HACK
 | 
			
		||||
 | 
			
		||||
LD = mingw32-g++
 | 
			
		||||
LDFLAGS = -s -L$(TOP)/lib
 | 
			
		||||
@@ -62,7 +71,8 @@ LDLIBS = -lglut32 -lglu32 -lopengl32
 | 
			
		||||
.c.o:
 | 
			
		||||
	$(CC) -o $@ $(CFLAGS) -c $<
 | 
			
		||||
%.exe: ../util/readtex.o ../util/showbuffer.o %.o
 | 
			
		||||
	$(LD) -o $@ $(LDFLAGS) $^ $(LDLIBS)
 | 
			
		||||
	$(LD) -o $@ $(LDFLAGS) $(LDLIBS) $^
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
all:
 | 
			
		||||
	$(error Must specify <filename.exe> to build)
 | 
			
		||||
 
 | 
			
		||||
@@ -93,7 +93,7 @@ MakePbuffer( Display *dpy, int screen, int width, int height )
 | 
			
		||||
         None
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
         /* Single bufferd, without depth buffer */
 | 
			
		||||
         /* Single buffered, without depth buffer */
 | 
			
		||||
         GLX_RENDER_TYPE, GLX_RGBA_BIT,
 | 
			
		||||
         GLX_DRAWABLE_TYPE, GLX_PBUFFER_BIT,
 | 
			
		||||
         GLX_RED_SIZE, 1,
 | 
			
		||||
@@ -105,7 +105,7 @@ MakePbuffer( Display *dpy, int screen, int width, int height )
 | 
			
		||||
         None
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
         /* Double bufferd, without depth buffer */
 | 
			
		||||
         /* Double buffered, without depth buffer */
 | 
			
		||||
         GLX_RENDER_TYPE, GLX_RGBA_BIT,
 | 
			
		||||
         GLX_DRAWABLE_TYPE, GLX_PBUFFER_BIT,
 | 
			
		||||
         GLX_RED_SIZE, 1,
 | 
			
		||||
@@ -130,9 +130,8 @@ MakePbuffer( Display *dpy, int screen, int width, int height )
 | 
			
		||||
      /* Get list of possible frame buffer configurations */
 | 
			
		||||
      fbConfigs = ChooseFBConfig(dpy, screen, fbAttribs[attempt], &nConfigs);
 | 
			
		||||
      if (nConfigs==0 || !fbConfigs) {
 | 
			
		||||
         printf("Error: glXChooseFBConfig failed\n");
 | 
			
		||||
         XCloseDisplay(dpy);
 | 
			
		||||
         return 0;
 | 
			
		||||
         printf("Note: glXChooseFBConfig(%s) failed\n", fbString[attempt]);
 | 
			
		||||
         continue;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
#if 0 /*DEBUG*/
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										230
									
								
								src/glu/sgi/Makefile.mgw
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										230
									
								
								src/glu/sgi/Makefile.mgw
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,230 @@
 | 
			
		||||
# Mesa 3-D graphics library
 | 
			
		||||
# Version:  5.1
 | 
			
		||||
# 
 | 
			
		||||
# Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
 | 
			
		||||
# 
 | 
			
		||||
# Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
# copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
# to deal in the Software without restriction, including without limitation
 | 
			
		||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | 
			
		||||
# and/or sell copies of the Software, and to permit persons to whom the
 | 
			
		||||
# Software is furnished to do so, subject to the following conditions:
 | 
			
		||||
# 
 | 
			
		||||
# The above copyright notice and this permission notice shall be included
 | 
			
		||||
# in all copies or substantial portions of the Software.
 | 
			
		||||
# 
 | 
			
		||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 | 
			
		||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 | 
			
		||||
# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 | 
			
		||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 | 
			
		||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
# MinGW core makefile v1.4 for Mesa
 | 
			
		||||
#
 | 
			
		||||
#  Copyright (C) 2002 - Daniel Borca
 | 
			
		||||
#  Email : dborca@users.sourceforge.net
 | 
			
		||||
#  Web   : http://www.geocities.com/dborca
 | 
			
		||||
 | 
			
		||||
# MinGW core-glu makefile updated for Mesa 7.0
 | 
			
		||||
#
 | 
			
		||||
#  Updated : by Heromyth, on 2007-7-21
 | 
			
		||||
#  Email   : zxpmyth@yahoo.com.cn
 | 
			
		||||
#  Bugs    : 1) All the default settings work fine. But the setting X86=1 can't work. 
 | 
			
		||||
#            The others havn't been tested yet.
 | 
			
		||||
#            2) The generated DLLs are *not* compatible with the ones built
 | 
			
		||||
#            with the other compilers like VC8, especially for GLUT. 
 | 
			
		||||
#            3) Although more tests are needed, it can be used individually!
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
#  Available options:
 | 
			
		||||
#
 | 
			
		||||
#    Environment variables:
 | 
			
		||||
#	CFLAGS
 | 
			
		||||
#
 | 
			
		||||
#	GLIDE		path to Glide3 SDK; used with FX.
 | 
			
		||||
#			default = $(TOP)/glide3
 | 
			
		||||
#	FX=1		build for 3dfx Glide3. Note that this disables
 | 
			
		||||
#			compilation of most WMesa code and requires fxMesa.
 | 
			
		||||
#			As a consequence, you'll need the Win32 Glide3
 | 
			
		||||
#			library to build any application.
 | 
			
		||||
#			default = no
 | 
			
		||||
#	ICD=1		build the installable client driver interface
 | 
			
		||||
#			(windows opengl driver interface)
 | 
			
		||||
#			default = no
 | 
			
		||||
#	X86=1		optimize for x86 (if possible, use MMX, SSE, 3DNow).
 | 
			
		||||
#			default = no
 | 
			
		||||
#
 | 
			
		||||
#    Targets:
 | 
			
		||||
#	all:		build GL
 | 
			
		||||
#	clean:		remove object files
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.PHONY: all clean
 | 
			
		||||
.INTERMEDIATE: x86/gen_matypes.exe
 | 
			
		||||
.SUFFIXES: .rc .res
 | 
			
		||||
 | 
			
		||||
# Set this to the prefix of your build tools, i.e. mingw32-
 | 
			
		||||
TOOLS_PREFIX = mingw32-
 | 
			
		||||
 | 
			
		||||
TOP = ../../..
 | 
			
		||||
LIBDIR = $(TOP)/lib
 | 
			
		||||
 | 
			
		||||
LIB_NAME = glu32
 | 
			
		||||
DLL_EXT = .dll
 | 
			
		||||
IMP_EXT = .a
 | 
			
		||||
LIB_PRE = lib
 | 
			
		||||
STRIP = -s
 | 
			
		||||
 | 
			
		||||
AR = ar
 | 
			
		||||
ARFLAGS = crus
 | 
			
		||||
DLLTOOL = dlltool
 | 
			
		||||
 | 
			
		||||
GLU_DLL = $(LIB_NAME)$(DLL_EXT)
 | 
			
		||||
GLU_IMP = $(LIB_PRE)$(LIB_NAME)$(IMP_EXT)
 | 
			
		||||
GLU_DEF = $(LIB_NAME).def
 | 
			
		||||
 | 
			
		||||
LDLIBS = -L$(LIBDIR) -lopengl32
 | 
			
		||||
LDFLAGS = $(STRIP) -shared -fPIC -Wl,--kill-at
 | 
			
		||||
 | 
			
		||||
CFLAGS += -DBUILD_GLU32 -D_DLL
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CC = $(TOOLS_PREFIX)gcc
 | 
			
		||||
CFLAGS += -DNDEBUG -DLIBRARYBUILD -I$(TOP)/include -Iinclude
 | 
			
		||||
CXX = $(TOOLS_PREFIX)g++
 | 
			
		||||
CXXFLAGS = $(CFLAGS) -Ilibnurbs/internals -Ilibnurbs/interface -Ilibnurbs/nurbtess
 | 
			
		||||
 | 
			
		||||
AR = ar
 | 
			
		||||
ARFLAGS = crus
 | 
			
		||||
 | 
			
		||||
UNLINK = del $(subst /,\,$(1))
 | 
			
		||||
ifneq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
 | 
			
		||||
UNLINK = $(RM) $(1)
 | 
			
		||||
endif
 | 
			
		||||
ifneq ($(wildcard $(addsuffix /rm,$(subst :, ,$(PATH)))),)
 | 
			
		||||
UNLINK = $(RM) $(1)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
C_SOURCES = \
 | 
			
		||||
	libutil/error.c \
 | 
			
		||||
	libutil/glue.c \
 | 
			
		||||
	libutil/mipmap.c \
 | 
			
		||||
	libutil/project.c \
 | 
			
		||||
	libutil/quad.c \
 | 
			
		||||
	libutil/registry.c \
 | 
			
		||||
	libtess/dict.c \
 | 
			
		||||
	libtess/geom.c \
 | 
			
		||||
	libtess/memalloc.c \
 | 
			
		||||
	libtess/mesh.c \
 | 
			
		||||
	libtess/normal.c \
 | 
			
		||||
	libtess/priorityq.c \
 | 
			
		||||
	libtess/render.c \
 | 
			
		||||
	libtess/sweep.c \
 | 
			
		||||
	libtess/tess.c \
 | 
			
		||||
	libtess/tessmono.c
 | 
			
		||||
 | 
			
		||||
CC_SOURCES = \
 | 
			
		||||
	libnurbs/interface/bezierEval.cc \
 | 
			
		||||
	libnurbs/interface/bezierPatch.cc \
 | 
			
		||||
	libnurbs/interface/bezierPatchMesh.cc \
 | 
			
		||||
	libnurbs/interface/glcurveval.cc \
 | 
			
		||||
	libnurbs/interface/glinterface.cc \
 | 
			
		||||
	libnurbs/interface/glrenderer.cc \
 | 
			
		||||
	libnurbs/interface/glsurfeval.cc \
 | 
			
		||||
	libnurbs/interface/incurveeval.cc \
 | 
			
		||||
	libnurbs/interface/insurfeval.cc \
 | 
			
		||||
	libnurbs/internals/arc.cc \
 | 
			
		||||
	libnurbs/internals/arcsorter.cc \
 | 
			
		||||
	libnurbs/internals/arctess.cc \
 | 
			
		||||
	libnurbs/internals/backend.cc \
 | 
			
		||||
	libnurbs/internals/basiccrveval.cc \
 | 
			
		||||
	libnurbs/internals/basicsurfeval.cc \
 | 
			
		||||
	libnurbs/internals/bin.cc \
 | 
			
		||||
	libnurbs/internals/bufpool.cc \
 | 
			
		||||
	libnurbs/internals/cachingeval.cc \
 | 
			
		||||
	libnurbs/internals/ccw.cc \
 | 
			
		||||
	libnurbs/internals/coveandtiler.cc \
 | 
			
		||||
	libnurbs/internals/curve.cc \
 | 
			
		||||
	libnurbs/internals/curvelist.cc \
 | 
			
		||||
	libnurbs/internals/curvesub.cc \
 | 
			
		||||
	libnurbs/internals/dataTransform.cc \
 | 
			
		||||
	libnurbs/internals/displaylist.cc \
 | 
			
		||||
	libnurbs/internals/flist.cc \
 | 
			
		||||
	libnurbs/internals/flistsorter.cc \
 | 
			
		||||
	libnurbs/internals/hull.cc \
 | 
			
		||||
	libnurbs/internals/intersect.cc \
 | 
			
		||||
	libnurbs/internals/knotvector.cc \
 | 
			
		||||
	libnurbs/internals/mapdesc.cc \
 | 
			
		||||
	libnurbs/internals/mapdescv.cc \
 | 
			
		||||
	libnurbs/internals/maplist.cc \
 | 
			
		||||
	libnurbs/internals/mesher.cc \
 | 
			
		||||
	libnurbs/internals/monoTriangulationBackend.cc \
 | 
			
		||||
	libnurbs/internals/monotonizer.cc \
 | 
			
		||||
	libnurbs/internals/mycode.cc \
 | 
			
		||||
	libnurbs/internals/nurbsinterfac.cc \
 | 
			
		||||
	libnurbs/internals/nurbstess.cc \
 | 
			
		||||
	libnurbs/internals/patch.cc \
 | 
			
		||||
	libnurbs/internals/patchlist.cc \
 | 
			
		||||
	libnurbs/internals/quilt.cc \
 | 
			
		||||
	libnurbs/internals/reader.cc \
 | 
			
		||||
	libnurbs/internals/renderhints.cc \
 | 
			
		||||
	libnurbs/internals/slicer.cc \
 | 
			
		||||
	libnurbs/internals/sorter.cc \
 | 
			
		||||
	libnurbs/internals/splitarcs.cc \
 | 
			
		||||
	libnurbs/internals/subdivider.cc \
 | 
			
		||||
	libnurbs/internals/tobezier.cc \
 | 
			
		||||
	libnurbs/internals/trimline.cc \
 | 
			
		||||
	libnurbs/internals/trimregion.cc \
 | 
			
		||||
	libnurbs/internals/trimvertpool.cc \
 | 
			
		||||
	libnurbs/internals/uarray.cc \
 | 
			
		||||
	libnurbs/internals/varray.cc \
 | 
			
		||||
	libnurbs/nurbtess/directedLine.cc \
 | 
			
		||||
	libnurbs/nurbtess/gridWrap.cc \
 | 
			
		||||
	libnurbs/nurbtess/monoChain.cc \
 | 
			
		||||
	libnurbs/nurbtess/monoPolyPart.cc \
 | 
			
		||||
	libnurbs/nurbtess/monoTriangulation.cc \
 | 
			
		||||
	libnurbs/nurbtess/partitionX.cc \
 | 
			
		||||
	libnurbs/nurbtess/partitionY.cc \
 | 
			
		||||
	libnurbs/nurbtess/polyDBG.cc \
 | 
			
		||||
	libnurbs/nurbtess/polyUtil.cc \
 | 
			
		||||
	libnurbs/nurbtess/primitiveStream.cc \
 | 
			
		||||
	libnurbs/nurbtess/quicksort.cc \
 | 
			
		||||
	libnurbs/nurbtess/rectBlock.cc \
 | 
			
		||||
	libnurbs/nurbtess/sampleComp.cc \
 | 
			
		||||
	libnurbs/nurbtess/sampleCompBot.cc \
 | 
			
		||||
	libnurbs/nurbtess/sampleCompRight.cc \
 | 
			
		||||
	libnurbs/nurbtess/sampleCompTop.cc \
 | 
			
		||||
	libnurbs/nurbtess/sampleMonoPoly.cc \
 | 
			
		||||
	libnurbs/nurbtess/sampledLine.cc \
 | 
			
		||||
	libnurbs/nurbtess/searchTree.cc
 | 
			
		||||
 | 
			
		||||
SOURCES = $(C_SOURCES) $(CC_SOURCES)
 | 
			
		||||
 | 
			
		||||
OBJECTS = $(addsuffix .o,$(basename $(SOURCES)))
 | 
			
		||||
 | 
			
		||||
.c.o:
 | 
			
		||||
	$(CC) -o $@ $(CFLAGS) -c $<
 | 
			
		||||
.cc.o:
 | 
			
		||||
	$(CXX) -o $@ $(CXXFLAGS) -c $<
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
all: $(LIBDIR) $(LIBDIR)/$(GLU_DLL) $(LIBDIR)/$(GLU_IMP)
 | 
			
		||||
 | 
			
		||||
$(LIBDIR):
 | 
			
		||||
	mkdir -p $(LIBDIR)
 | 
			
		||||
 | 
			
		||||
$(LIBDIR)/$(GLU_DLL) $(LIBDIR)/$(GLU_IMP): $(OBJECTS)
 | 
			
		||||
	$(CXX) $(LDFLAGS) -o $(LIBDIR)/$(GLU_DLL) $^ $(LDLIBS)
 | 
			
		||||
	$(DLLTOOL) --as=as --dllname $(LIB_NAME) --output-def $(LIBDIR)/$(GLU_DEF) $^
 | 
			
		||||
	$(DLLTOOL) --as=as -k --dllname $(LIB_NAME) --output-lib $(LIBDIR)/$(GLU_IMP) --def $(LIBDIR)/$(GLU_DEF)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	-$(call UNLINK,libutil/*.o)
 | 
			
		||||
	-$(call UNLINK,libtess/*.o)
 | 
			
		||||
	-$(call UNLINK,libnurbs/interface/*.o)
 | 
			
		||||
	-$(call UNLINK,libnurbs/internals/*.o)
 | 
			
		||||
	-$(call UNLINK,libnurbs/nurbtess/*.o)
 | 
			
		||||
@@ -111,8 +111,11 @@ void bezierPatchDelete(bezierPatch *b)
 | 
			
		||||
void bezierPatchDeleteList(bezierPatch *b)
 | 
			
		||||
{
 | 
			
		||||
  bezierPatch *temp;
 | 
			
		||||
  for(temp = b; temp != NULL; temp = temp->next)
 | 
			
		||||
    bezierPatchDelete(temp);
 | 
			
		||||
  while (b != NULL) {
 | 
			
		||||
    temp = b;
 | 
			
		||||
    b = b->next;
 | 
			
		||||
    bezierPatchDelete(temp);    
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bezierPatch* bezierPatchInsert(bezierPatch *list, bezierPatch *b)
 | 
			
		||||
 
 | 
			
		||||
@@ -93,7 +93,7 @@ public:
 | 
			
		||||
	output_triangles = flag;
 | 
			
		||||
      }
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
    void               putCallBack(GLenum which, void (APIENTRY *fn)() );
 | 
			
		||||
    void               putCallBack(GLenum which, void (GLAPIENTRY *fn)() );
 | 
			
		||||
#else
 | 
			
		||||
    void               putCallBack(GLenum which, _GLUfuncptr fn );
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -1184,8 +1184,11 @@ return;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
OpenGLSurfaceEvaluator::putCallBack(GLenum which, _GLUfuncptr fn )
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
void OpenGLSurfaceEvaluator::putCallBack(GLenum which, void (GLAPIENTRY *fn)() )
 | 
			
		||||
#else
 | 
			
		||||
void OpenGLSurfaceEvaluator::putCallBack(GLenum which, _GLUfuncptr fn )
 | 
			
		||||
#endif
 | 
			
		||||
{
 | 
			
		||||
  switch(which)
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -145,7 +145,7 @@ public:
 | 
			
		||||
    void		newtmeshvert( long, long );
 | 
			
		||||
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
    void 	        putCallBack(GLenum which, void (APIENTRY *fn)() );
 | 
			
		||||
    void 	        putCallBack(GLenum which, void (GLAPIENTRY *fn)() );
 | 
			
		||||
#else
 | 
			
		||||
    void 	        putCallBack(GLenum which, _GLUfuncptr fn );
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -1533,8 +1533,8 @@ void OpenGLSurfaceEvaluator::inEvalVStrip(int n_left, REAL u_left, REAL* left_va
 | 
			
		||||
    }
 | 
			
		||||
  //clean up 
 | 
			
		||||
  free(leftXYZ);
 | 
			
		||||
  free(leftXYZ);
 | 
			
		||||
  free(rightNormal);
 | 
			
		||||
  free(rightXYZ);
 | 
			
		||||
  free(leftNormal);
 | 
			
		||||
  free(rightNormal);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -43,10 +43,9 @@
 | 
			
		||||
#include "definitions.h"
 | 
			
		||||
#include "primitiveStream.h"
 | 
			
		||||
#include "directedLine.h"
 | 
			
		||||
#include "arc.h"
 | 
			
		||||
 | 
			
		||||
class Backend;
 | 
			
		||||
class Arc;
 | 
			
		||||
typedef Arc *Arc_ptr;
 | 
			
		||||
 | 
			
		||||
class reflexChain{
 | 
			
		||||
  Real2 *queue; 
 | 
			
		||||
 
 | 
			
		||||
@@ -82,7 +82,7 @@ gluErrorString(GLenum errorCode)
 | 
			
		||||
    if ((errorCode >= GLU_NURBS_ERROR1) && (errorCode <= GLU_NURBS_ERROR37)) {
 | 
			
		||||
	return (const GLubyte *) __gluNURBSErrorString(errorCode - (GLU_NURBS_ERROR1 - 1));
 | 
			
		||||
    }
 | 
			
		||||
    if ((errorCode >= GLU_TESS_ERROR1) && (errorCode <= GLU_TESS_ERROR8)) {
 | 
			
		||||
    if ((errorCode >= GLU_TESS_ERROR1) && (errorCode <= GLU_TESS_ERROR6)) {
 | 
			
		||||
	return (const GLubyte *) __gluTessErrorString(errorCode - (GLU_TESS_ERROR1 - 1));
 | 
			
		||||
    }
 | 
			
		||||
    return (const GLubyte *) 0;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										191
									
								
								src/glut/glx/Makefile.mgw
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										191
									
								
								src/glut/glx/Makefile.mgw
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,191 @@
 | 
			
		||||
# Mesa 3-D graphics library
 | 
			
		||||
# Version:  5.1
 | 
			
		||||
# 
 | 
			
		||||
# Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
 | 
			
		||||
# 
 | 
			
		||||
# Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
# copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
# to deal in the Software without restriction, including without limitation
 | 
			
		||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
 | 
			
		||||
# and/or sell copies of the Software, and to permit persons to whom the
 | 
			
		||||
# Software is furnished to do so, subject to the following conditions:
 | 
			
		||||
# 
 | 
			
		||||
# The above copyright notice and this permission notice shall be included
 | 
			
		||||
# in all copies or substantial portions of the Software.
 | 
			
		||||
# 
 | 
			
		||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 | 
			
		||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 | 
			
		||||
# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 | 
			
		||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 | 
			
		||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
 | 
			
		||||
# MinGW core makefile v1.4 for Mesa
 | 
			
		||||
#
 | 
			
		||||
#  Copyright (C) 2002 - Daniel Borca
 | 
			
		||||
#  Email : dborca@users.sourceforge.net
 | 
			
		||||
#  Web   : http://www.geocities.com/dborca
 | 
			
		||||
 | 
			
		||||
# MinGW core-glut makefile updated for Mesa 7.0
 | 
			
		||||
#
 | 
			
		||||
#  Updated : by Heromyth, on 2007-7-21
 | 
			
		||||
#  Email   : zxpmyth@yahoo.com.cn
 | 
			
		||||
#  Bugs    : 1) All the default settings work fine. But the setting X86=1 can't work. 
 | 
			
		||||
#            The others havn't been tested yet.
 | 
			
		||||
#            2) The generated DLLs are *not* compatible with the ones built
 | 
			
		||||
#            with the other compilers like VC8, especially for GLUT. 
 | 
			
		||||
#            3) Although more tests are needed, it can be used individually!
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
#  Available options:
 | 
			
		||||
#
 | 
			
		||||
#    Environment variables:
 | 
			
		||||
#	CFLAGS
 | 
			
		||||
#
 | 
			
		||||
#	GLIDE		path to Glide3 SDK; used with FX.
 | 
			
		||||
#			default = $(TOP)/glide3
 | 
			
		||||
#	FX=1		build for 3dfx Glide3. Note that this disables
 | 
			
		||||
#			compilation of most WMesa code and requires fxMesa.
 | 
			
		||||
#			As a consequence, you'll need the Win32 Glide3
 | 
			
		||||
#			library to build any application.
 | 
			
		||||
#			default = no
 | 
			
		||||
#	ICD=1		build the installable client driver interface
 | 
			
		||||
#			(windows opengl driver interface)
 | 
			
		||||
#			default = no
 | 
			
		||||
#	X86=1		optimize for x86 (if possible, use MMX, SSE, 3DNow).
 | 
			
		||||
#			default = no
 | 
			
		||||
#
 | 
			
		||||
#    Targets:
 | 
			
		||||
#	all:		build GL
 | 
			
		||||
#	clean:		remove object files
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.PHONY: all clean
 | 
			
		||||
.INTERMEDIATE: x86/gen_matypes.exe
 | 
			
		||||
.SUFFIXES: .rc .res
 | 
			
		||||
 | 
			
		||||
# Set this to the prefix of your build tools, i.e. mingw32-
 | 
			
		||||
TOOLS_PREFIX = mingw32-
 | 
			
		||||
 | 
			
		||||
TOP = ../../..
 | 
			
		||||
 | 
			
		||||
LIBDIR = $(TOP)/lib
 | 
			
		||||
 | 
			
		||||
LIB_NAME = glut32
 | 
			
		||||
 | 
			
		||||
DLL_EXT = .dll
 | 
			
		||||
IMP_EXT = .a
 | 
			
		||||
LIB_PRE = lib
 | 
			
		||||
STRIP = -s
 | 
			
		||||
 | 
			
		||||
AR = ar
 | 
			
		||||
ARFLAGS = crus
 | 
			
		||||
DLLTOOL = dlltool
 | 
			
		||||
 | 
			
		||||
GLUT_DLL = $(LIB_NAME)$(DLL_EXT)
 | 
			
		||||
GLUT_IMP = $(LIB_PRE)$(LIB_NAME)$(IMP_EXT)
 | 
			
		||||
GLUT_DEF = $(LIB_NAME).def
 | 
			
		||||
 | 
			
		||||
LDLIBS = -L$(LIBDIR) -lwinmm -lgdi32 -luser32 -lopengl32 -lglu32 
 | 
			
		||||
LDFLAGS = $(STRIP) -shared -fPIC -Wl,--kill-at
 | 
			
		||||
 | 
			
		||||
CFLAGS += -DBUILD_GLUT32 -DGLUT_BUILDING_LIB -DMESA -D_DLL
 | 
			
		||||
CFLAGS += -DNDEBUG -DLIBRARYBUILD -I$(TOP)/include 
 | 
			
		||||
 | 
			
		||||
CC = $(TOOLS_PREFIX)gcc
 | 
			
		||||
CXX = $(TOOLS_PREFIX)g++
 | 
			
		||||
CXXFLAGS = $(CFLAGS)
 | 
			
		||||
 | 
			
		||||
AR = ar
 | 
			
		||||
ARFLAGS = crus
 | 
			
		||||
 | 
			
		||||
UNLINK = del $(subst /,\,$(1))
 | 
			
		||||
ifneq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
 | 
			
		||||
UNLINK = $(RM) $(1)
 | 
			
		||||
endif
 | 
			
		||||
ifneq ($(wildcard $(addsuffix /rm,$(subst :, ,$(PATH)))),)
 | 
			
		||||
UNLINK = $(RM) $(1)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
HDRS = glutint.h glutstroke.h glutbitmap.h glutwin32.h stroke.h win32_glx.h win32_x11.h
 | 
			
		||||
 | 
			
		||||
SRCS = \
 | 
			
		||||
	glut_bitmap.c \
 | 
			
		||||
	glut_bwidth.c \
 | 
			
		||||
	glut_cindex.c \
 | 
			
		||||
	glut_cmap.c \
 | 
			
		||||
	glut_cursor.c \
 | 
			
		||||
	glut_dials.c \
 | 
			
		||||
	glut_dstr.c \
 | 
			
		||||
	glut_event.c \
 | 
			
		||||
	glut_ext.c \
 | 
			
		||||
	glut_fbc.c \
 | 
			
		||||
	glut_fullscrn.c \
 | 
			
		||||
	glut_gamemode.c \
 | 
			
		||||
	glut_get.c \
 | 
			
		||||
	glut_init.c \
 | 
			
		||||
	glut_input.c \
 | 
			
		||||
	glut_joy.c \
 | 
			
		||||
	glut_key.c \
 | 
			
		||||
	glut_keyctrl.c \
 | 
			
		||||
	glut_keyup.c \
 | 
			
		||||
	glut_mesa.c \
 | 
			
		||||
	glut_modifier.c \
 | 
			
		||||
	glut_overlay.c \
 | 
			
		||||
	glut_shapes.c \
 | 
			
		||||
	glut_space.c \
 | 
			
		||||
	glut_stroke.c \
 | 
			
		||||
	glut_swap.c \
 | 
			
		||||
	glut_swidth.c \
 | 
			
		||||
	glut_tablet.c \
 | 
			
		||||
	glut_teapot.c \
 | 
			
		||||
	glut_util.c \
 | 
			
		||||
	glut_vidresize.c \
 | 
			
		||||
	glut_warp.c \
 | 
			
		||||
	glut_win.c \
 | 
			
		||||
	glut_winmisc.c \
 | 
			
		||||
	win32_glx.c \
 | 
			
		||||
	win32_menu.c \
 | 
			
		||||
	win32_util.c \
 | 
			
		||||
	win32_winproc.c \
 | 
			
		||||
	win32_x11.c
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
SRCSSEMIGENS = \
 | 
			
		||||
	glut_8x13.c \
 | 
			
		||||
	glut_9x15.c \
 | 
			
		||||
	glut_hel10.c \
 | 
			
		||||
	glut_hel12.c \
 | 
			
		||||
	glut_hel18.c \
 | 
			
		||||
	glut_mroman.c \
 | 
			
		||||
	glut_roman.c \
 | 
			
		||||
	glut_tr10.c \
 | 
			
		||||
	glut_tr24.c
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
SOURCES = $(SRCS) $(SRCSSEMIGENS)
 | 
			
		||||
 | 
			
		||||
OBJECTS = $(addsuffix .o,$(basename $(SOURCES)))
 | 
			
		||||
 | 
			
		||||
.c.o:
 | 
			
		||||
	$(CC) -o $@ $(CFLAGS) -c $<
 | 
			
		||||
.cc.o:
 | 
			
		||||
	$(CXX) -o $@ $(CXXFLAGS) -c $<
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
all: $(LIBDIR) $(LIBDIR)/$(GLUT_DLL) $(LIBDIR)/$(GLUT_IMP)
 | 
			
		||||
 | 
			
		||||
$(LIBDIR):
 | 
			
		||||
	mkdir -p $(LIBDIR)
 | 
			
		||||
 | 
			
		||||
$(LIBDIR)/$(GLUT_DLL) $(LIBDIR)/$(GLUT_IMP): $(OBJECTS)
 | 
			
		||||
	$(CXX) $(LDFLAGS) -o $(LIBDIR)/$(GLUT_DLL) $^ $(LDLIBS)
 | 
			
		||||
	$(DLLTOOL) --as=as --dllname $(LIB_NAME) --output-def $(LIBDIR)/$(GLUT_DEF) $^
 | 
			
		||||
	$(DLLTOOL) --as=as -k --dllname $(LIB_NAME) --output-lib $(LIBDIR)/$(GLUT_IMP) --def $(LIBDIR)/$(GLUT_DEF) 
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	-$(call UNLINK,*.o)
 | 
			
		||||
@@ -291,6 +291,7 @@ loadVisuals(int *nitems_return)
 | 
			
		||||
  fbmodes = (FrameBufferMode *) malloc(n * sizeof(FrameBufferMode));
 | 
			
		||||
  if (fbmodes == NULL) {
 | 
			
		||||
    *nitems_return = -1;
 | 
			
		||||
    free(vlist);
 | 
			
		||||
    return NULL;
 | 
			
		||||
  }
 | 
			
		||||
  for (i = 0; i < n; i++) {
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@
 | 
			
		||||
# ifdef __sgi
 | 
			
		||||
#  include <bstring.h>    /* prototype for bzero used by FD_ZERO */
 | 
			
		||||
# endif
 | 
			
		||||
# if (defined(SVR4) || defined(CRAY) || defined(AIXV3)) && !defined(FD_SETSIZE)
 | 
			
		||||
# if (defined(__FreeBSD__) || defined(SVR4) || defined(CRAY) || defined(AIXV3)) && !defined(FD_SETSIZE)
 | 
			
		||||
#  include <sys/select.h> /* select system call interface */
 | 
			
		||||
#  ifdef luna
 | 
			
		||||
#   include <sysent.h>
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
 | 
			
		||||
/* Set a Fortran callback function. */
 | 
			
		||||
 | 
			
		||||
void GLUTAPIENTRY
 | 
			
		||||
void APIENTRY
 | 
			
		||||
__glutSetFCB(int which, void *func)
 | 
			
		||||
{
 | 
			
		||||
#ifdef SUPPORT_FORTRAN
 | 
			
		||||
@@ -100,7 +100,7 @@ __glutSetFCB(int which, void *func)
 | 
			
		||||
 | 
			
		||||
/* Get a Fortran callback function. */
 | 
			
		||||
 | 
			
		||||
void* GLUTAPIENTRY
 | 
			
		||||
void* APIENTRY
 | 
			
		||||
__glutGetFCB(int which)
 | 
			
		||||
{
 | 
			
		||||
#ifdef SUPPORT_FORTRAN
 | 
			
		||||
 
 | 
			
		||||
@@ -23,6 +23,9 @@
 | 
			
		||||
#endif
 | 
			
		||||
#include <X11/Xutil.h>
 | 
			
		||||
#else
 | 
			
		||||
#ifdef __MINGW32__
 | 
			
		||||
#include <GL/gl.h>
 | 
			
		||||
#endif
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
#ifndef __CYGWIN32__
 | 
			
		||||
#include <mmsystem.h>  /* Win32 Multimedia API header. */
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,9 @@
 | 
			
		||||
   implied. This program is -not- in the public domain. */
 | 
			
		||||
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
#ifdef __MINGW32__
 | 
			
		||||
#include <GL/gl.h>
 | 
			
		||||
#endif
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
#ifndef __CYGWIN32__
 | 
			
		||||
#include <mmsystem.h>  /* Win32 Multimedia API header. */
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,10 @@
 | 
			
		||||
#include <GL/glx.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef GLUT_BUILDING_LIB
 | 
			
		||||
#define GLUT_BUILDING_LIB  /* Building the GLUT library itself. */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <GL/glut.h>
 | 
			
		||||
 | 
			
		||||
#if defined(MESA) && defined(_WIN32) && !defined(__CYGWIN32__)
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,7 @@
 | 
			
		||||
 | 
			
		||||
/* The following added by Paul Garceau <pgarceau@teleport.com> */
 | 
			
		||||
#if defined(__MINGW32__)
 | 
			
		||||
#include <GL/gl.h>
 | 
			
		||||
#include <time.h>
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
struct timeval;
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,9 @@
 | 
			
		||||
 | 
			
		||||
#include "glutint.h"
 | 
			
		||||
#include <sys/timeb.h>
 | 
			
		||||
#ifdef __MINGW32__
 | 
			
		||||
#include <ctype.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(_WIN32) && !defined(__CYGWIN32__)
 | 
			
		||||
#include <mmsystem.h>  /* Win32 Multimedia API header. */
 | 
			
		||||
 
 | 
			
		||||
@@ -6,16 +6,14 @@
 | 
			
		||||
/* This program is freely distributable without licensing fees 
 | 
			
		||||
   and is provided without guarantee or warrantee expressed or 
 | 
			
		||||
   implied. This program is -not- in the public domain. */
 | 
			
		||||
 | 
			
		||||
#ifdef __MINGW32__
 | 
			
		||||
#include <GL/gl.h>
 | 
			
		||||
#endif
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
 | 
			
		||||
/* These definitions are missing from windows.h */
 | 
			
		||||
WINGDIAPI int WINAPI wglChoosePixelFormat(HDC, PIXELFORMATDESCRIPTOR *);
 | 
			
		||||
WINGDIAPI int WINAPI wglDescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
 | 
			
		||||
WINGDIAPI int WINAPI wglGetPixelFormat(HDC);
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglSetPixelFormat(HDC, int, PIXELFORMATDESCRIPTOR *);
 | 
			
		||||
WINGDIAPI BOOL WINAPI wglSwapBuffers(HDC);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Type definitions (conversions) */
 | 
			
		||||
typedef int Visual;			/* Win32 equivalent of X11 type */
 | 
			
		||||
 
 | 
			
		||||
@@ -150,7 +150,7 @@ DestroyPbuffer( Display * dpy, GLXDrawable drawable )
 | 
			
		||||
   if ( (priv->majorVersion > 1) || (priv->minorVersion >= 3) ) {
 | 
			
		||||
      xGLXDestroyPbufferReq * req;
 | 
			
		||||
 | 
			
		||||
      GetReqExtra( GLXDestroyPbuffer, 4, req );
 | 
			
		||||
      GetReq( GLXDestroyPbuffer, req );
 | 
			
		||||
      req->reqType = opcode;
 | 
			
		||||
      req->glxCode = X_GLXDestroyPbuffer;
 | 
			
		||||
      req->pbuffer = (GLXPbuffer) drawable;
 | 
			
		||||
 
 | 
			
		||||
@@ -117,17 +117,16 @@ $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME): $(STAND_ALONE_OBJECTS)
 | 
			
		||||
		$(MKLIB_OPTIONS) $(GL_LIB_DEPS) $(STAND_ALONE_OBJECTS)
 | 
			
		||||
 | 
			
		||||
# Make the OSMesa library
 | 
			
		||||
# Note: version is kept at 6.5.3 to simplify app/linking issues
 | 
			
		||||
$(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME): $(OSMESA_DRIVER_OBJECTS) $(OSMESA16_OBJECTS)
 | 
			
		||||
	@ if [ "${DRIVER_DIRS}" = "osmesa" ] ; then \
 | 
			
		||||
		$(TOP)/bin/mklib -o $(OSMESA_LIB) -linker '$(CC)' \
 | 
			
		||||
			-major $(MESA_MAJOR) \
 | 
			
		||||
			-minor $(MESA_MINOR) -patch $(MESA_TINY) \
 | 
			
		||||
			-major 6 -minor 5 -patch 3 \
 | 
			
		||||
			-install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) \
 | 
			
		||||
			$(OSMESA_LIB_DEPS) $(OSMESA16_OBJECTS) ; \
 | 
			
		||||
	else \
 | 
			
		||||
		$(TOP)/bin/mklib -o $(OSMESA_LIB) -linker '$(CC)' \
 | 
			
		||||
			-major $(MESA_MAJOR) \
 | 
			
		||||
			-minor $(MESA_MINOR) -patch $(GL_TINY) \
 | 
			
		||||
			-major 6 -minor 5 -patch 3 \
 | 
			
		||||
			-install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) \
 | 
			
		||||
			$(OSMESA_LIB_DEPS) $(OSMESA_DRIVER_OBJECTS) ; \
 | 
			
		||||
	fi
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
# Mesa 3-D graphics library
 | 
			
		||||
# Version:  5.1
 | 
			
		||||
# Version:  7.0
 | 
			
		||||
# 
 | 
			
		||||
# Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
 | 
			
		||||
# 
 | 
			
		||||
@@ -26,6 +26,16 @@
 | 
			
		||||
#  Email : dborca@users.sourceforge.net
 | 
			
		||||
#  Web   : http://www.geocities.com/dborca
 | 
			
		||||
 | 
			
		||||
# MinGW core-gl makefile updated for Mesa 7.0
 | 
			
		||||
#
 | 
			
		||||
#  updated : by Heromyth, on 2007-7-21
 | 
			
		||||
#  Email   : zxpmyth@yahoo.com.cn
 | 
			
		||||
#  Bugs    : 1) All the default settings work fine. But the setting X86=1 can't work. 
 | 
			
		||||
#            The others havn't been tested yet.
 | 
			
		||||
#            2) The generated DLLs are *not* compatible with the ones built
 | 
			
		||||
#            with the other compilers like VC8, especially for GLUT. 
 | 
			
		||||
#            3) Although more tests are needed, it can be used individually!
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
#  Available options:
 | 
			
		||||
@@ -52,7 +62,6 @@
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.PHONY: all clean
 | 
			
		||||
.INTERMEDIATE: x86/gen_matypes.exe
 | 
			
		||||
.SUFFIXES: .rc .res
 | 
			
		||||
@@ -60,23 +69,37 @@
 | 
			
		||||
# Set this to the prefix of your build tools, i.e. mingw32-
 | 
			
		||||
TOOLS_PREFIX = mingw32-
 | 
			
		||||
 | 
			
		||||
ifeq ($(ICD),1)
 | 
			
		||||
  LIB_NAME = mesa32
 | 
			
		||||
else
 | 
			
		||||
  LIB_NAME = opengl32
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
DLL_EXT = .dll
 | 
			
		||||
IMP_EXT = .a
 | 
			
		||||
LIB_PRE = lib
 | 
			
		||||
STRIP = -s
 | 
			
		||||
 | 
			
		||||
AR = ar
 | 
			
		||||
ARFLAGS = crus
 | 
			
		||||
DLLTOOL = dlltool
 | 
			
		||||
 | 
			
		||||
TOP = ../..
 | 
			
		||||
GLIDE ?= $(TOP)/glide3
 | 
			
		||||
LIBDIR = $(TOP)/lib
 | 
			
		||||
ifeq ($(ICD),1)
 | 
			
		||||
  GL_DLL = mesa32.dll
 | 
			
		||||
  GL_IMP = libmesa32.a
 | 
			
		||||
else
 | 
			
		||||
  GL_DLL = opengl32.dll
 | 
			
		||||
  GL_IMP = libopengl32.a
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
LDLIBS = -lgdi32
 | 
			
		||||
GL_DLL = $(LIB_NAME)$(DLL_EXT)
 | 
			
		||||
GL_IMP = $(LIB_PRE)$(LIB_NAME)$(IMP_EXT)
 | 
			
		||||
 | 
			
		||||
MESA_LIB = libmesa.a
 | 
			
		||||
CC = $(TOOLS_PREFIX)gcc
 | 
			
		||||
CFLAGS += -DBUILD_GL32 -D_OPENGL32_
 | 
			
		||||
CFLAGS += $(INCLUDE_DIRS)
 | 
			
		||||
CFLAGS += -DUSE_EXTERNAL_DXTN_LIB=1
 | 
			
		||||
 | 
			
		||||
LDLIBS = -lgdi32 -luser32 -liberty
 | 
			
		||||
LDFLAGS = $(STRIP) -shared -fPIC -Wl,--kill-at
 | 
			
		||||
 | 
			
		||||
CFLAGS += -DBUILD_GL32 -D_DLL -DMESA_MINWARN
 | 
			
		||||
CFLAGS += -DNDEBUG -DUSE_EXTERNAL_DXTN_LIB=1
 | 
			
		||||
 | 
			
		||||
ifeq ($(FX),1)
 | 
			
		||||
  CFLAGS += -I$(GLIDE)/include -DFX
 | 
			
		||||
  LDLIBS += -L$(GLIDE)/lib -lglide3x
 | 
			
		||||
@@ -87,12 +110,11 @@ else
 | 
			
		||||
    CFLAGS += -DUSE_MGL_NAMESPACE
 | 
			
		||||
    GL_DEF = drivers/windows/icd/mesa.def
 | 
			
		||||
  else    
 | 
			
		||||
    GL_DEF = drivers/windows/gdi/mesa.def
 | 
			
		||||
    GL_DEF = $(LIB_NAME).def
 | 
			
		||||
  endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
AR = ar
 | 
			
		||||
ARFLAGS = crus
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
UNLINK = del $(subst /,\,$(1))
 | 
			
		||||
ifneq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
 | 
			
		||||
@@ -104,6 +126,8 @@ endif
 | 
			
		||||
 | 
			
		||||
include sources
 | 
			
		||||
 | 
			
		||||
CFLAGS += $(INCLUDE_DIRS) 
 | 
			
		||||
 | 
			
		||||
ifeq ($(X86),1)
 | 
			
		||||
CFLAGS += -DUSE_X86_ASM
 | 
			
		||||
CFLAGS += -DUSE_MMX_ASM
 | 
			
		||||
@@ -140,22 +164,23 @@ RESOURCE = $(GL_RES:.rc=.res)
 | 
			
		||||
 | 
			
		||||
.c.o:
 | 
			
		||||
	$(CC) -o $@ $(CFLAGS) -c $<
 | 
			
		||||
.S.o:
 | 
			
		||||
	$(CC) -o $@ $(CFLAGS) -c $<
 | 
			
		||||
.s.o:
 | 
			
		||||
	$(CC) -o $@ $(CFLAGS) -x assembler-with-cpp -c $<
 | 
			
		||||
 | 
			
		||||
.rc.res:
 | 
			
		||||
	windres -o $@ -Irc -Ocoff $<
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
all: $(LIBDIR) $(LIBDIR)/$(GL_DLL) $(LIBDIR)/$(GL_IMP)
 | 
			
		||||
 | 
			
		||||
$(LIBDIR):
 | 
			
		||||
	mkdir -p $(LIBDIR)
 | 
			
		||||
 | 
			
		||||
$(LIBDIR)/$(GL_DLL) $(LIBDIR)/$(GL_IMP): $(OBJECTS) $(RESOURCE)
 | 
			
		||||
	$(TOOLS_PREFIX)dllwrap -o $(LIBDIR)/$(GL_DLL) --output-lib $(LIBDIR)/$(GL_IMP) \
 | 
			
		||||
	                       --target i386-mingw32 --def $(GL_DEF) -Wl,-enable-stdcall-fixup \
 | 
			
		||||
	                       $^ $(LDLIBS)
 | 
			
		||||
	$(CC) $(LDFLAGS) -o $(LIBDIR)/$(GL_DLL) $^ $(LDLIBS)
 | 
			
		||||
	$(DLLTOOL) --as=as --dllname $(LIB_NAME) --output-def $(LIBDIR)/$(GL_DEF) $^
 | 
			
		||||
	$(DLLTOOL) --as=as -k --dllname $(LIB_NAME) --output-lib $(LIBDIR)/$(GL_IMP) --def $(LIBDIR)/$(GL_DEF)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
$(X86_OBJECTS): x86/matypes.h
 | 
			
		||||
 | 
			
		||||
@@ -187,17 +212,21 @@ tnl/t_vtx_x86_gcc.o: tnl/t_vtx_x86_gcc.S
 | 
			
		||||
	$(CC) -o $@ $(CFLAGS) -DSTDCALL_API -c $<
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	-$(call UNLINK,array_cache/*.o)
 | 
			
		||||
	-$(call UNLINK,glapi/*.o)
 | 
			
		||||
	-$(call UNLINK,main/*.o)
 | 
			
		||||
	-$(call UNLINK,math/*.o)
 | 
			
		||||
	-$(call UNLINK,vbo/*.o)
 | 
			
		||||
	-$(call UNLINK,shader/*.o)
 | 
			
		||||
	-$(call UNLINK,shader/slang/*.o)
 | 
			
		||||
	-$(call UNLINK,shader/grammar/*.o)
 | 
			
		||||
	-$(call UNLINK,sparc/*.o)
 | 
			
		||||
	-$(call UNLINK,ppc/*.o)
 | 
			
		||||
	-$(call UNLINK,swrast/*.o)
 | 
			
		||||
	-$(call UNLINK,swrast_setup/*.o)
 | 
			
		||||
	-$(call UNLINK,tnl/*.o)
 | 
			
		||||
	-$(call UNLINK,x86/*.o)
 | 
			
		||||
	-$(call UNLINK,x86/rtasm/*.o)
 | 
			
		||||
	-$(call UNLINK,x86-64/*.o)
 | 
			
		||||
	-$(call UNLINK,drivers/common/*.o)
 | 
			
		||||
	-$(call UNLINK,drivers/glide/*.o)
 | 
			
		||||
	-$(call UNLINK,drivers/windows/fx/*.o)
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@ install:
 | 
			
		||||
clean:
 | 
			
		||||
	@for dir in $(DRI_DIRS) ; do \
 | 
			
		||||
		if [ -d $$dir ] ; then \
 | 
			
		||||
			(cd $$dir && $(MAKE) clean ; \
 | 
			
		||||
			(cd $$dir && $(MAKE) clean) ; \
 | 
			
		||||
		fi \
 | 
			
		||||
	done
 | 
			
		||||
	-rm -f common/*.o
 | 
			
		||||
 
 | 
			
		||||
@@ -51,6 +51,7 @@ pool_create(struct _DriBufferPool *pool,
 | 
			
		||||
      return NULL;
 | 
			
		||||
 | 
			
		||||
   if ((alignment > pageSize) && (alignment % pageSize)) {
 | 
			
		||||
      free(buf);
 | 
			
		||||
      return NULL;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -428,10 +428,12 @@ __driUtilUpdateDrawableInfo(__DRIdrawablePrivate *pdp)
 | 
			
		||||
 | 
			
		||||
    if (pdp->pClipRects) {
 | 
			
		||||
	_mesa_free(pdp->pClipRects); 
 | 
			
		||||
	pdp->pClipRects = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (pdp->pBackClipRects) {
 | 
			
		||||
	_mesa_free(pdp->pBackClipRects); 
 | 
			
		||||
	pdp->pBackClipRects = NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    DRM_SPINUNLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID);
 | 
			
		||||
@@ -995,6 +997,9 @@ __driUtilCreateNewScreen(__DRInativeDisplay *dpy, int scrn, __DRIscreen *psc,
 | 
			
		||||
    psc->getMSC            = driGetMSC;
 | 
			
		||||
    psc->createNewContext  = driCreateNewContext;
 | 
			
		||||
 | 
			
		||||
    if (internal_api_version >= 20070121)
 | 
			
		||||
	psc->setTexOffset  = psp->DriverAPI.setTexOffset;
 | 
			
		||||
 | 
			
		||||
    if ( (psp->DriverAPI.InitDriver != NULL)
 | 
			
		||||
	 && !(*psp->DriverAPI.InitDriver)(psp) ) {
 | 
			
		||||
	_mesa_free( psp );
 | 
			
		||||
 
 | 
			
		||||
@@ -189,6 +189,12 @@ struct __DriverAPIRec {
 | 
			
		||||
    /*@}*/
 | 
			
		||||
    void (*CopySubBuffer)(__DRIdrawablePrivate *driDrawPriv,
 | 
			
		||||
			  int x, int y, int w, int h);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * See corresponding field in \c __DRIscreenRec.
 | 
			
		||||
     */
 | 
			
		||||
    void (*setTexOffset)(__DRIcontext *pDRICtx, GLint texname,
 | 
			
		||||
			 unsigned long long offset, GLint depth, GLuint pitch);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1471,9 +1471,10 @@ static const char ImageTransformParameterfvHP_names[] =
 | 
			
		||||
    "";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(need_GL_ARB_vertex_program)
 | 
			
		||||
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
 | 
			
		||||
static const char VertexAttrib4ivARB_names[] = 
 | 
			
		||||
    "ip\0" /* Parameter signature */
 | 
			
		||||
    "glVertexAttrib4iv\0"
 | 
			
		||||
    "glVertexAttrib4ivARB\0"
 | 
			
		||||
    "";
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1579,9 +1580,10 @@ static const char PixelTransformParameterfvEXT_names[] =
 | 
			
		||||
    "";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(need_GL_ARB_vertex_program)
 | 
			
		||||
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
 | 
			
		||||
static const char VertexAttrib4bvARB_names[] = 
 | 
			
		||||
    "ip\0" /* Parameter signature */
 | 
			
		||||
    "glVertexAttrib4bv\0"
 | 
			
		||||
    "glVertexAttrib4bvARB\0"
 | 
			
		||||
    "";
 | 
			
		||||
#endif
 | 
			
		||||
@@ -2384,9 +2386,10 @@ static const char GetAttribLocationARB_names[] =
 | 
			
		||||
    "";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(need_GL_ARB_vertex_program)
 | 
			
		||||
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
 | 
			
		||||
static const char VertexAttrib4ubvARB_names[] = 
 | 
			
		||||
    "ip\0" /* Parameter signature */
 | 
			
		||||
    "glVertexAttrib4ubv\0"
 | 
			
		||||
    "glVertexAttrib4ubvARB\0"
 | 
			
		||||
    "";
 | 
			
		||||
#endif
 | 
			
		||||
@@ -2903,9 +2906,10 @@ static const char ReplacementCodeuiColor4ubVertex3fSUN_names[] =
 | 
			
		||||
    "";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(need_GL_ARB_vertex_program)
 | 
			
		||||
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
 | 
			
		||||
static const char VertexAttrib4usvARB_names[] = 
 | 
			
		||||
    "ip\0" /* Parameter signature */
 | 
			
		||||
    "glVertexAttrib4usv\0"
 | 
			
		||||
    "glVertexAttrib4usvARB\0"
 | 
			
		||||
    "";
 | 
			
		||||
#endif
 | 
			
		||||
@@ -4386,9 +4390,10 @@ static const char WindowPos4iMESA_names[] =
 | 
			
		||||
    "";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(need_GL_ARB_vertex_program)
 | 
			
		||||
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program)
 | 
			
		||||
static const char VertexAttrib4uivARB_names[] = 
 | 
			
		||||
    "ip\0" /* Parameter signature */
 | 
			
		||||
    "glVertexAttrib4uiv\0"
 | 
			
		||||
    "glVertexAttrib4uivARB\0"
 | 
			
		||||
    "";
 | 
			
		||||
#endif
 | 
			
		||||
@@ -6243,6 +6248,8 @@ static const struct dri_extension_function GL_VERSION_2_0_functions[] = {
 | 
			
		||||
    { GetVertexAttribivARB_names, GetVertexAttribivARB_remap_index, -1 },
 | 
			
		||||
    { CreateProgram_names, CreateProgram_remap_index, -1 },
 | 
			
		||||
    { StencilFuncSeparate_names, StencilFuncSeparate_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib4ivARB_names, VertexAttrib4ivARB_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib4bvARB_names, VertexAttrib4bvARB_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib3dARB_names, VertexAttrib3dARB_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib4fARB_names, VertexAttrib4fARB_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib4fvARB_names, VertexAttrib4fvARB_remap_index, -1 },
 | 
			
		||||
@@ -6256,6 +6263,7 @@ static const struct dri_extension_function GL_VERSION_2_0_functions[] = {
 | 
			
		||||
    { VertexAttrib1dvARB_names, VertexAttrib1dvARB_remap_index, -1 },
 | 
			
		||||
    { GetVertexAttribfvARB_names, GetVertexAttribfvARB_remap_index, -1 },
 | 
			
		||||
    { GetAttribLocationARB_names, GetAttribLocationARB_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib4ubvARB_names, VertexAttrib4ubvARB_remap_index, -1 },
 | 
			
		||||
    { Uniform3ivARB_names, Uniform3ivARB_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib4sARB_names, VertexAttrib4sARB_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib2dvARB_names, VertexAttrib2dvARB_remap_index, -1 },
 | 
			
		||||
@@ -6268,6 +6276,7 @@ static const struct dri_extension_function GL_VERSION_2_0_functions[] = {
 | 
			
		||||
    { VertexAttrib4NuivARB_names, VertexAttrib4NuivARB_remap_index, -1 },
 | 
			
		||||
    { Uniform4fARB_names, Uniform4fARB_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib1dARB_names, VertexAttrib1dARB_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib4usvARB_names, VertexAttrib4usvARB_remap_index, -1 },
 | 
			
		||||
    { LinkProgramARB_names, LinkProgramARB_remap_index, -1 },
 | 
			
		||||
    { ShaderSourceARB_names, ShaderSourceARB_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib3svARB_names, VertexAttrib3svARB_remap_index, -1 },
 | 
			
		||||
@@ -6297,6 +6306,7 @@ static const struct dri_extension_function GL_VERSION_2_0_functions[] = {
 | 
			
		||||
    { DrawBuffersARB_names, DrawBuffersARB_remap_index, -1 },
 | 
			
		||||
    { Uniform1fvARB_names, Uniform1fvARB_remap_index, -1 },
 | 
			
		||||
    { EnableVertexAttribArrayARB_names, EnableVertexAttribArrayARB_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib4uivARB_names, VertexAttrib4uivARB_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib4svARB_names, VertexAttrib4svARB_remap_index, -1 },
 | 
			
		||||
    { GetShaderiv_names, GetShaderiv_remap_index, -1 },
 | 
			
		||||
    { VertexAttrib2svARB_names, VertexAttrib2svARB_remap_index, -1 },
 | 
			
		||||
 
 | 
			
		||||
@@ -172,12 +172,8 @@ static void i915LayoutTextureImages( i915ContextPtr i915,
 | 
			
		||||
	 
 | 
			
		||||
	 t->intel.image[0][i].offset = total_height * pitch;
 | 
			
		||||
	 t->intel.image[0][i].internalFormat = baseImage->_BaseFormat;
 | 
			
		||||
	 if (t->intel.image[0][i].image->IsCompressed)
 | 
			
		||||
	 {
 | 
			
		||||
	   if (t->intel.image[0][i].image->Height > 4)
 | 
			
		||||
	     total_height += t->intel.image[0][i].image->Height/4;
 | 
			
		||||
	   else
 | 
			
		||||
	     total_height += 1;
 | 
			
		||||
	 if (t->intel.image[0][i].image->IsCompressed) {
 | 
			
		||||
	    total_height += (t->intel.image[0][i].image->Height + 3) / 4;
 | 
			
		||||
	 }
 | 
			
		||||
	 else
 | 
			
		||||
	   total_height += MAX2(2, t->intel.image[0][i].image->Height);
 | 
			
		||||
 
 | 
			
		||||
@@ -64,6 +64,7 @@ static void i915_reduced_primitive_state( intelContextPtr intel,
 | 
			
		||||
    st1 &= ~ST1_ENABLE;
 | 
			
		||||
 | 
			
		||||
    switch (rprim) {
 | 
			
		||||
    case GL_QUADS: /* from RASTERIZE(GL_QUADS) in t_dd_tritemp.h */
 | 
			
		||||
    case GL_TRIANGLES:
 | 
			
		||||
       if (intel->ctx.Polygon.StippleFlag &&
 | 
			
		||||
	   intel->hw_stipple)
 | 
			
		||||
 
 | 
			
		||||
@@ -634,11 +634,32 @@ static void intelUploadTexImage( intelContextPtr intel,
 | 
			
		||||
			       image->Height);
 | 
			
		||||
   }
 | 
			
		||||
   else if (image->IsCompressed) {
 | 
			
		||||
      GLuint row_len = image->Width * 2;
 | 
			
		||||
      GLuint row_len = 0;
 | 
			
		||||
      GLubyte *dst = (GLubyte *)(t->BufAddr + offset);
 | 
			
		||||
      GLubyte *src = (GLubyte *)image->Data;
 | 
			
		||||
      GLuint j;
 | 
			
		||||
 | 
			
		||||
      /* must always copy whole blocks (8/16 bytes) */
 | 
			
		||||
      switch (image->InternalFormat) {
 | 
			
		||||
	case GL_COMPRESSED_RGB_FXT1_3DFX:
 | 
			
		||||
	case GL_COMPRESSED_RGBA_FXT1_3DFX:
 | 
			
		||||
	case GL_RGB_S3TC:
 | 
			
		||||
	case GL_RGB4_S3TC:
 | 
			
		||||
	case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
 | 
			
		||||
	case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
 | 
			
		||||
	  row_len = (image->Width * 2 + 7) & ~7;
 | 
			
		||||
	  break;
 | 
			
		||||
	case GL_RGBA_S3TC:
 | 
			
		||||
	case GL_RGBA4_S3TC:
 | 
			
		||||
	case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
 | 
			
		||||
	case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
 | 
			
		||||
	  row_len = (image->Width * 4 + 15) & ~15;
 | 
			
		||||
	  break;
 | 
			
		||||
	default:
 | 
			
		||||
	  fprintf(stderr,"Internal Compressed format not supported %d\n", image->InternalFormat);
 | 
			
		||||
	  break;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (INTEL_DEBUG & DEBUG_TEXTURE)
 | 
			
		||||
	 fprintf(stderr, 
 | 
			
		||||
		 "Upload image %dx%dx%d offset %xm row_len %x "
 | 
			
		||||
@@ -646,30 +667,11 @@ static void intelUploadTexImage( intelContextPtr intel,
 | 
			
		||||
		 image->Width, image->Height, image->Depth, offset,
 | 
			
		||||
		 row_len, t->Pitch, t->depth_pitch);
 | 
			
		||||
 | 
			
		||||
      switch (image->InternalFormat) {
 | 
			
		||||
	case GL_COMPRESSED_RGB_FXT1_3DFX:
 | 
			
		||||
	case GL_COMPRESSED_RGBA_FXT1_3DFX:
 | 
			
		||||
	case GL_RGB_S3TC:
 | 
			
		||||
	case GL_RGB4_S3TC:
 | 
			
		||||
	case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
 | 
			
		||||
	case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
 | 
			
		||||
	  for (j = 0 ; j < image->Height/4 ; j++, dst += (t->Pitch)) {
 | 
			
		||||
	    __memcpy(dst, src, row_len );
 | 
			
		||||
	    src += row_len;
 | 
			
		||||
	  }
 | 
			
		||||
	  break;
 | 
			
		||||
	case GL_RGBA_S3TC:
 | 
			
		||||
	case GL_RGBA4_S3TC:
 | 
			
		||||
	case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
 | 
			
		||||
	case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
 | 
			
		||||
	  for (j = 0 ; j < image->Height/4 ; j++, dst += (t->Pitch)) {
 | 
			
		||||
	    __memcpy(dst, src, (image->Width*4) );
 | 
			
		||||
	    src += image->Width*4;
 | 
			
		||||
	  }
 | 
			
		||||
	  break;
 | 
			
		||||
	default:
 | 
			
		||||
	  fprintf(stderr,"Internal Compressed format not supported %d\n", image->InternalFormat);
 | 
			
		||||
	  break;
 | 
			
		||||
      if (row_len) {
 | 
			
		||||
	 for (j = 0 ; j < (image->Height + 3)/4 ; j++, dst += (t->Pitch)) {
 | 
			
		||||
	   __memcpy(dst, src, row_len );
 | 
			
		||||
	   src += row_len;
 | 
			
		||||
	 }
 | 
			
		||||
      }
 | 
			
		||||
   }
 | 
			
		||||
   /* Time for another vtbl entry:
 | 
			
		||||
 
 | 
			
		||||
@@ -575,6 +575,7 @@
 | 
			
		||||
#define    MT_16BIT_DIB_RGB565_8888	   (7<<3)
 | 
			
		||||
#define    MT_32BIT_ARGB8888		   (0<<3)       /* SURFACE_32BIT */
 | 
			
		||||
#define    MT_32BIT_ABGR8888		   (1<<3)
 | 
			
		||||
#define    MT_32BIT_XRGB8888		   (2<<3)       /* XXX: Guess from i915_reg.h */
 | 
			
		||||
#define    MT_32BIT_BUMP_XLDVDU_8888	   (6<<3)
 | 
			
		||||
#define    MT_32BIT_DIB_8888		   (7<<3)
 | 
			
		||||
#define    MT_411_YUV411		   (0<<3)       /* SURFACE_411 */
 | 
			
		||||
 
 | 
			
		||||
@@ -117,7 +117,7 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
 | 
			
		||||
   struct gl_texture_object *tObj = ctx->Texture.Unit[unit]._Current;
 | 
			
		||||
   struct intel_texture_object *intelObj = intel_texture_object(tObj);
 | 
			
		||||
   struct gl_texture_image *firstImage;
 | 
			
		||||
   GLuint *state = i830->state.Tex[unit];
 | 
			
		||||
   GLuint *state = i830->state.Tex[unit], format, pitch;
 | 
			
		||||
 | 
			
		||||
   memset(state, 0, sizeof(state));
 | 
			
		||||
 | 
			
		||||
@@ -128,7 +128,7 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
 | 
			
		||||
       i830->state.tex_buffer[unit] = NULL;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   if (!intel_finalize_mipmap_tree(intel, unit))
 | 
			
		||||
   if (!intelObj->imageOverride && !intel_finalize_mipmap_tree(intel, unit))
 | 
			
		||||
      return GL_FALSE;
 | 
			
		||||
 | 
			
		||||
   /* Get first image here, since intelObj->firstLevel will get set in
 | 
			
		||||
@@ -136,11 +136,34 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
 | 
			
		||||
    */
 | 
			
		||||
   firstImage = tObj->Image[0][intelObj->firstLevel];
 | 
			
		||||
 | 
			
		||||
   i830->state.tex_buffer[unit] = driBOReference(intelObj->mt->region->buffer);
 | 
			
		||||
   i830->state.tex_offset[unit] = intel_miptree_image_offset(intelObj->mt, 0,
 | 
			
		||||
                                                             intelObj->
 | 
			
		||||
                                                             firstLevel);
 | 
			
		||||
   if (intelObj->imageOverride) {
 | 
			
		||||
      i830->state.tex_buffer[unit] = NULL;
 | 
			
		||||
      i830->state.tex_offset[unit] = intelObj->textureOffset;
 | 
			
		||||
 | 
			
		||||
      switch (intelObj->depthOverride) {
 | 
			
		||||
      case 32:
 | 
			
		||||
	 format = MAPSURF_32BIT | MT_32BIT_ARGB8888;
 | 
			
		||||
	 break;
 | 
			
		||||
      case 24:
 | 
			
		||||
      default:
 | 
			
		||||
	 format = MAPSURF_32BIT | MT_32BIT_XRGB8888;
 | 
			
		||||
	 break;
 | 
			
		||||
      case 16:
 | 
			
		||||
	 format = MAPSURF_16BIT | MT_16BIT_RGB565;
 | 
			
		||||
	 break;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      pitch = intelObj->pitchOverride;
 | 
			
		||||
   } else {
 | 
			
		||||
      i830->state.tex_buffer[unit] = driBOReference(intelObj->mt->region->
 | 
			
		||||
						    buffer);
 | 
			
		||||
      i830->state.tex_offset[unit] = intel_miptree_image_offset(intelObj->mt,
 | 
			
		||||
								0, intelObj->
 | 
			
		||||
								firstLevel);
 | 
			
		||||
 | 
			
		||||
      format = translate_texture_format(firstImage->TexFormat->MesaFormat);
 | 
			
		||||
      pitch = intelObj->mt->pitch * intelObj->mt->cpp;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   state[I830_TEXREG_TM0LI] = (_3DSTATE_LOAD_STATE_IMMEDIATE_2 |
 | 
			
		||||
                               (LOAD_TEXTURE_MAP0 << unit) | 4);
 | 
			
		||||
@@ -151,12 +174,10 @@ i830_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
 | 
			
		||||
 | 
			
		||||
   state[I830_TEXREG_TM0S1] =
 | 
			
		||||
      (((firstImage->Height - 1) << TM0S1_HEIGHT_SHIFT) |
 | 
			
		||||
       ((firstImage->Width - 1) << TM0S1_WIDTH_SHIFT) |
 | 
			
		||||
       translate_texture_format(firstImage->TexFormat->MesaFormat));
 | 
			
		||||
       ((firstImage->Width - 1) << TM0S1_WIDTH_SHIFT) | format);
 | 
			
		||||
 | 
			
		||||
   state[I830_TEXREG_TM0S2] =
 | 
			
		||||
      (((((intelObj->mt->pitch * intelObj->mt->cpp) / 4) -
 | 
			
		||||
         1) << TM0S2_PITCH_SHIFT) | TM0S2_CUBE_FACE_ENA_MASK);
 | 
			
		||||
      ((((pitch / 4) - 1) << TM0S2_PITCH_SHIFT) | TM0S2_CUBE_FACE_ENA_MASK);
 | 
			
		||||
 | 
			
		||||
   {
 | 
			
		||||
      if (tObj->Target == GL_TEXTURE_CUBE_MAP)
 | 
			
		||||
 
 | 
			
		||||
@@ -490,11 +490,13 @@ i830_emit_state(struct intel_context *intel)
 | 
			
		||||
                      DRM_BO_MASK_MEM | DRM_BO_FLAG_READ,
 | 
			
		||||
                      state->tex_offset[i] | TM0S0_USE_FENCE);
 | 
			
		||||
         }
 | 
			
		||||
         else {
 | 
			
		||||
            assert(i == 0);
 | 
			
		||||
            assert(state == &i830->meta);
 | 
			
		||||
            OUT_BATCH(0);
 | 
			
		||||
         }
 | 
			
		||||
	 else if (state == &i830->meta) {
 | 
			
		||||
	    assert(i == 0);
 | 
			
		||||
	    OUT_BATCH(0);
 | 
			
		||||
	 }
 | 
			
		||||
	 else {
 | 
			
		||||
	    OUT_BATCH(state->tex_offset[i]);
 | 
			
		||||
	 }
 | 
			
		||||
 | 
			
		||||
         OUT_BATCH(state->Tex[i][I830_TEXREG_TM0S1]);
 | 
			
		||||
         OUT_BATCH(state->Tex[i][I830_TEXREG_TM0S2]);
 | 
			
		||||
 
 | 
			
		||||
@@ -161,11 +161,9 @@ i915_miptree_layout(struct intel_mipmap_tree * mt)
 | 
			
		||||
            if (mt->compressed)
 | 
			
		||||
               img_height = MAX2(1, height / 4);
 | 
			
		||||
            else
 | 
			
		||||
               img_height = MAX2(2, height);
 | 
			
		||||
               img_height = (MAX2(2, height) + 1) & ~1;
 | 
			
		||||
 | 
			
		||||
	    mt->total_height += img_height;
 | 
			
		||||
	    mt->total_height += 1;
 | 
			
		||||
	    mt->total_height &= ~1;
 | 
			
		||||
 | 
			
		||||
            width = minify(width);
 | 
			
		||||
            height = minify(height);
 | 
			
		||||
 
 | 
			
		||||
@@ -122,7 +122,7 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
 | 
			
		||||
   struct gl_texture_object *tObj = ctx->Texture.Unit[unit]._Current;
 | 
			
		||||
   struct intel_texture_object *intelObj = intel_texture_object(tObj);
 | 
			
		||||
   struct gl_texture_image *firstImage;
 | 
			
		||||
   GLuint *state = i915->state.Tex[unit];
 | 
			
		||||
   GLuint *state = i915->state.Tex[unit], format, pitch;
 | 
			
		||||
 | 
			
		||||
   memset(state, 0, sizeof(state));
 | 
			
		||||
 | 
			
		||||
@@ -133,7 +133,7 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
 | 
			
		||||
       i915->state.tex_buffer[unit] = NULL;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   if (!intel_finalize_mipmap_tree(intel, unit))
 | 
			
		||||
   if (!intelObj->imageOverride && !intel_finalize_mipmap_tree(intel, unit))
 | 
			
		||||
      return GL_FALSE;
 | 
			
		||||
 | 
			
		||||
   /* Get first image here, since intelObj->firstLevel will get set in
 | 
			
		||||
@@ -141,24 +141,45 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
 | 
			
		||||
    */
 | 
			
		||||
   firstImage = tObj->Image[0][intelObj->firstLevel];
 | 
			
		||||
 | 
			
		||||
   i915->state.tex_buffer[unit] = driBOReference(intelObj->mt->region->buffer);
 | 
			
		||||
   i915->state.tex_offset[unit] = intel_miptree_image_offset(intelObj->mt, 0,
 | 
			
		||||
                                                             intelObj->
 | 
			
		||||
                                                             firstLevel);
 | 
			
		||||
   if (intelObj->imageOverride) {
 | 
			
		||||
      i915->state.tex_buffer[unit] = NULL;
 | 
			
		||||
      i915->state.tex_offset[unit] = intelObj->textureOffset;
 | 
			
		||||
 | 
			
		||||
      switch (intelObj->depthOverride) {
 | 
			
		||||
      case 32:
 | 
			
		||||
	 format = MAPSURF_32BIT | MT_32BIT_ARGB8888;
 | 
			
		||||
	 break;
 | 
			
		||||
      case 24:
 | 
			
		||||
      default:
 | 
			
		||||
	 format = MAPSURF_32BIT | MT_32BIT_XRGB8888;
 | 
			
		||||
	 break;
 | 
			
		||||
      case 16:
 | 
			
		||||
	 format = MAPSURF_16BIT | MT_16BIT_RGB565;
 | 
			
		||||
	 break;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      pitch = intelObj->pitchOverride;
 | 
			
		||||
   } else {
 | 
			
		||||
      i915->state.tex_buffer[unit] = driBOReference(intelObj->mt->region->
 | 
			
		||||
						    buffer);
 | 
			
		||||
      i915->state.tex_offset[unit] =  intel_miptree_image_offset(intelObj->mt,
 | 
			
		||||
								 0, intelObj->
 | 
			
		||||
								 firstLevel);
 | 
			
		||||
 | 
			
		||||
      format = translate_texture_format(firstImage->TexFormat->MesaFormat);
 | 
			
		||||
      pitch = intelObj->mt->pitch * intelObj->mt->cpp;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   state[I915_TEXREG_MS3] =
 | 
			
		||||
      (((firstImage->Height - 1) << MS3_HEIGHT_SHIFT) |
 | 
			
		||||
       ((firstImage->Width - 1) << MS3_WIDTH_SHIFT) |
 | 
			
		||||
       translate_texture_format(firstImage->TexFormat->MesaFormat) |
 | 
			
		||||
       ((firstImage->Width - 1) << MS3_WIDTH_SHIFT) | format |
 | 
			
		||||
       MS3_USE_FENCE_REGS);
 | 
			
		||||
 | 
			
		||||
   state[I915_TEXREG_MS4] =
 | 
			
		||||
      (((((intelObj->mt->pitch * intelObj->mt->cpp) / 4) -
 | 
			
		||||
         1) << MS4_PITCH_SHIFT) | MS4_CUBE_FACE_ENA_MASK |
 | 
			
		||||
       ((((intelObj->lastLevel -
 | 
			
		||||
           intelObj->firstLevel) *
 | 
			
		||||
          4)) << MS4_MAX_LOD_SHIFT) | ((firstImage->Depth -
 | 
			
		||||
                                        1) << MS4_VOLUME_DEPTH_SHIFT));
 | 
			
		||||
     ((((pitch / 4) - 1) << MS4_PITCH_SHIFT) | MS4_CUBE_FACE_ENA_MASK |
 | 
			
		||||
       ((((intelObj->lastLevel - intelObj->firstLevel) * 4)) <<
 | 
			
		||||
	MS4_MAX_LOD_SHIFT) | ((firstImage->Depth - 1) <<
 | 
			
		||||
			      MS4_VOLUME_DEPTH_SHIFT));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   {
 | 
			
		||||
 
 | 
			
		||||
@@ -61,6 +61,7 @@ i915_reduced_primitive_state(struct intel_context *intel, GLenum rprim)
 | 
			
		||||
   st1 &= ~ST1_ENABLE;
 | 
			
		||||
 | 
			
		||||
   switch (rprim) {
 | 
			
		||||
   case GL_QUADS: /* from RASTERIZE(GL_QUADS) in t_dd_tritemp.h */
 | 
			
		||||
   case GL_TRIANGLES:
 | 
			
		||||
      if (intel->ctx.Polygon.StippleFlag && intel->hw_stipple)
 | 
			
		||||
         st1 |= ST1_ENABLE;
 | 
			
		||||
@@ -381,11 +382,13 @@ i915_emit_state(struct intel_context *intel)
 | 
			
		||||
                         DRM_BO_MASK_MEM | DRM_BO_FLAG_READ,
 | 
			
		||||
                         state->tex_offset[i]);
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
            else if (state == &i915->meta) {
 | 
			
		||||
               assert(i == 0);
 | 
			
		||||
               assert(state == &i915->meta);
 | 
			
		||||
               OUT_BATCH(0);
 | 
			
		||||
            }
 | 
			
		||||
            else {
 | 
			
		||||
               OUT_BATCH(state->tex_offset[i]);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            OUT_BATCH(state->Tex[i][I915_TEXREG_MS3]);
 | 
			
		||||
            OUT_BATCH(state->Tex[i][I915_TEXREG_MS4]);
 | 
			
		||||
 
 | 
			
		||||
@@ -316,7 +316,8 @@ intelWindowMoved(struct intel_context *intel)
 | 
			
		||||
	 flags = intel_fb->vblank_flags & ~VBLANK_FLAG_SECONDARY;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (flags != intel_fb->vblank_flags) {
 | 
			
		||||
      if (flags != intel_fb->vblank_flags && intel_fb->vblank_flags &&
 | 
			
		||||
	  !(intel_fb->vblank_flags & VBLANK_FLAG_NO_IRQ)) {
 | 
			
		||||
	 drmVBlank vbl;
 | 
			
		||||
	 int i;
 | 
			
		||||
 | 
			
		||||
@@ -327,7 +328,9 @@ intelWindowMoved(struct intel_context *intel)
 | 
			
		||||
	 }
 | 
			
		||||
 | 
			
		||||
	 for (i = 0; i < intel_fb->pf_num_pages; i++) {
 | 
			
		||||
	    if (!intel_fb->color_rb[i])
 | 
			
		||||
	    if (!intel_fb->color_rb[i] ||
 | 
			
		||||
		(intel_fb->vbl_waited - intel_fb->color_rb[i]->vbl_pending) <=
 | 
			
		||||
		(1<<23))
 | 
			
		||||
	       continue;
 | 
			
		||||
 | 
			
		||||
	    vbl.request.sequence = intel_fb->color_rb[i]->vbl_pending;
 | 
			
		||||
@@ -828,7 +831,8 @@ intelScheduleSwap(const __DRIdrawablePrivate * dPriv, GLboolean *missed_target)
 | 
			
		||||
   drm_i915_vblank_swap_t swap;
 | 
			
		||||
   GLboolean ret;
 | 
			
		||||
 | 
			
		||||
   if ((intel_fb->vblank_flags & VBLANK_FLAG_NO_IRQ) ||
 | 
			
		||||
   if (!intel_fb->vblank_flags ||
 | 
			
		||||
       (intel_fb->vblank_flags & VBLANK_FLAG_NO_IRQ) ||
 | 
			
		||||
       intelScreen->current_rotation != 0 ||
 | 
			
		||||
       intelScreen->drmMinor < (intel_fb->pf_active ? 9 : 6))
 | 
			
		||||
      return GL_FALSE;
 | 
			
		||||
 
 | 
			
		||||
@@ -607,12 +607,23 @@ intelMakeCurrent(__DRIcontextPrivate * driContextPriv,
 | 
			
		||||
      if (intel->ctx.DrawBuffer == &intel_fb->Base) {
 | 
			
		||||
 | 
			
		||||
	 if (intel->driDrawable != driDrawPriv) {
 | 
			
		||||
	    intel_fb->vblank_flags = (intel->intelScreen->irq_active != 0)
 | 
			
		||||
	       ? driGetDefaultVBlankFlags(&intel->optionCache)
 | 
			
		||||
	       : VBLANK_FLAG_NO_IRQ;
 | 
			
		||||
	    (*dri_interface->getUST) (&intel_fb->swap_ust);
 | 
			
		||||
	    driDrawableInitVBlank(driDrawPriv, intel_fb->vblank_flags,
 | 
			
		||||
				  &intel_fb->vbl_seq);
 | 
			
		||||
	    if (driDrawPriv->pdraw->swap_interval == (unsigned)-1) {
 | 
			
		||||
	       int i;
 | 
			
		||||
 | 
			
		||||
	       intel_fb->vblank_flags = (intel->intelScreen->irq_active != 0)
 | 
			
		||||
		  ? driGetDefaultVBlankFlags(&intel->optionCache)
 | 
			
		||||
		 : VBLANK_FLAG_NO_IRQ;
 | 
			
		||||
 | 
			
		||||
	       (*dri_interface->getUST) (&intel_fb->swap_ust);
 | 
			
		||||
	       driDrawableInitVBlank(driDrawPriv, intel_fb->vblank_flags,
 | 
			
		||||
				     &intel_fb->vbl_seq);
 | 
			
		||||
	       intel_fb->vbl_waited = intel_fb->vbl_seq;
 | 
			
		||||
 | 
			
		||||
	       for (i = 0; i < (intel->intelScreen->third.handle ? 3 : 2); i++) {
 | 
			
		||||
		  if (intel_fb->color_rb[i])
 | 
			
		||||
		     intel_fb->color_rb[i]->vbl_pending = intel_fb->vbl_seq;
 | 
			
		||||
	       }
 | 
			
		||||
	    }
 | 
			
		||||
	    intel->driDrawable = driDrawPriv;
 | 
			
		||||
	    intelWindowMoved(intel);
 | 
			
		||||
	 }
 | 
			
		||||
@@ -658,37 +669,27 @@ intelContendedLock(struct intel_context *intel, GLuint flags)
 | 
			
		||||
   if (sarea->width != intel->width ||
 | 
			
		||||
       sarea->height != intel->height ||
 | 
			
		||||
       sarea->rotation != intel->current_rotation) {
 | 
			
		||||
      
 | 
			
		||||
      void *batchMap = intel->batch->map;
 | 
			
		||||
      
 | 
			
		||||
      int numClipRects = intel->numClipRects;
 | 
			
		||||
 | 
			
		||||
      /*
 | 
			
		||||
       * FIXME: Really only need to do this when drawing to a
 | 
			
		||||
       * common back- or front buffer.
 | 
			
		||||
       */
 | 
			
		||||
 | 
			
		||||
      /*
 | 
			
		||||
       * This will drop the outstanding batchbuffer on the floor
 | 
			
		||||
       * This will essentially drop the outstanding batchbuffer on the floor.
 | 
			
		||||
       */
 | 
			
		||||
      intel->numClipRects = 0;
 | 
			
		||||
 | 
			
		||||
      if (batchMap != NULL) {
 | 
			
		||||
	 driBOUnmap(intel->batch->buffer);
 | 
			
		||||
	 intel->batch->map = NULL;
 | 
			
		||||
      }
 | 
			
		||||
      if (intel->Fallback)
 | 
			
		||||
	 _swrast_flush(&intel->ctx);
 | 
			
		||||
 | 
			
		||||
      intel_batchbuffer_reset(intel->batch);
 | 
			
		||||
      INTEL_FIREVERTICES(intel);
 | 
			
		||||
 | 
			
		||||
      if (batchMap == NULL) {
 | 
			
		||||
	 driBOUnmap(intel->batch->buffer);
 | 
			
		||||
	 intel->batch->map = NULL;
 | 
			
		||||
      }
 | 
			
		||||
      if (intel->batch->map != intel->batch->ptr)
 | 
			
		||||
	 intel_batchbuffer_flush(intel->batch);
 | 
			
		||||
 | 
			
		||||
      /* lose all primitives */
 | 
			
		||||
      intel->prim.primitive = ~0;
 | 
			
		||||
      intel->prim.start_ptr = 0;
 | 
			
		||||
      intel->prim.flush = 0;
 | 
			
		||||
 | 
			
		||||
      /* re-emit all state */
 | 
			
		||||
      intel->vtbl.lost_hardware(intel);
 | 
			
		||||
      intel->numClipRects = numClipRects;
 | 
			
		||||
 | 
			
		||||
      /* force window update */
 | 
			
		||||
      intel->lastStamp = 0;
 | 
			
		||||
@@ -729,7 +730,9 @@ void LOCK_HARDWARE( struct intel_context *intel )
 | 
			
		||||
				    BUFFER_BACK_LEFT);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (intel_rb && (intel_fb->vbl_waited - intel_rb->vbl_pending) > (1<<23)) {
 | 
			
		||||
    if (intel_rb && intel_fb->vblank_flags &&
 | 
			
		||||
	!(intel_fb->vblank_flags & VBLANK_FLAG_NO_IRQ) &&
 | 
			
		||||
	(intel_fb->vbl_waited - intel_rb->vbl_pending) > (1<<23)) {
 | 
			
		||||
	drmVBlank vbl;
 | 
			
		||||
 | 
			
		||||
	vbl.request.type = DRM_VBLANK_ABSOLUTE;
 | 
			
		||||
 
 | 
			
		||||
@@ -92,6 +92,10 @@ struct intel_texture_object
 | 
			
		||||
    * regions will be copied to this region and the old storage freed.
 | 
			
		||||
    */
 | 
			
		||||
   struct intel_mipmap_tree *mt;
 | 
			
		||||
 | 
			
		||||
   GLboolean imageOverride;
 | 
			
		||||
   GLint depthOverride;
 | 
			
		||||
   GLuint pitchOverride;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -776,7 +776,8 @@ static const struct __DriverAPIRec intelAPI = {
 | 
			
		||||
   .WaitForMSC = driWaitForMSC32,
 | 
			
		||||
   .WaitForSBC = NULL,
 | 
			
		||||
   .SwapBuffersMSC = NULL,
 | 
			
		||||
   .CopySubBuffer = intelCopySubBuffer
 | 
			
		||||
   .CopySubBuffer = intelCopySubBuffer,
 | 
			
		||||
   .setTexOffset = intelSetTexOffset,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -135,6 +135,9 @@ void intelGetCompressedTexImage(GLcontext *ctx, GLenum target, GLint level,
 | 
			
		||||
				const struct gl_texture_object *texObj,
 | 
			
		||||
				const struct gl_texture_image *texImage);
 | 
			
		||||
 | 
			
		||||
void intelSetTexOffset(__DRIcontext *pDRICtx, GLint texname,
 | 
			
		||||
		       unsigned long long offset, GLint depth, GLuint pitch);
 | 
			
		||||
 | 
			
		||||
GLuint intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit);
 | 
			
		||||
 | 
			
		||||
void intel_tex_map_images(struct intel_context *intel,
 | 
			
		||||
 
 | 
			
		||||
@@ -385,7 +385,6 @@ intelTexImage(GLcontext * ctx,
 | 
			
		||||
      }
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   assert(!intelImage->mt);
 | 
			
		||||
 | 
			
		||||
   if (intelObj->mt &&
 | 
			
		||||
@@ -667,3 +666,26 @@ intelGetCompressedTexImage(GLcontext *ctx, GLenum target, GLint level,
 | 
			
		||||
		       texObj, texImage, 1);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
intelSetTexOffset(__DRIcontext *pDRICtx, GLint texname,
 | 
			
		||||
		  unsigned long long offset, GLint depth, GLuint pitch)
 | 
			
		||||
{
 | 
			
		||||
   struct intel_context *intel = (struct intel_context*)
 | 
			
		||||
      ((__DRIcontextPrivate*)pDRICtx->private)->driverPrivate;
 | 
			
		||||
   struct gl_texture_object *tObj = _mesa_lookup_texture(&intel->ctx, texname);
 | 
			
		||||
   struct intel_texture_object *intelObj = intel_texture_object(tObj);
 | 
			
		||||
 | 
			
		||||
   if (!intelObj)
 | 
			
		||||
      return;
 | 
			
		||||
 | 
			
		||||
   if (intelObj->mt)
 | 
			
		||||
      intel_miptree_release(intel, &intelObj->mt);
 | 
			
		||||
 | 
			
		||||
   intelObj->imageOverride = GL_TRUE;
 | 
			
		||||
   intelObj->depthOverride = depth;
 | 
			
		||||
   intelObj->pitchOverride = pitch;
 | 
			
		||||
 | 
			
		||||
   if (offset)
 | 
			
		||||
      intelObj->textureOffset = offset;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -105,6 +105,8 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
 | 
			
		||||
{
 | 
			
		||||
   struct gl_texture_object *tObj = intel->ctx.Texture.Unit[unit]._Current;
 | 
			
		||||
   struct intel_texture_object *intelObj = intel_texture_object(tObj);
 | 
			
		||||
   int comp_byte = 0;
 | 
			
		||||
   int cpp;
 | 
			
		||||
 | 
			
		||||
   GLuint face, i;
 | 
			
		||||
   GLuint nr_faces = 0;
 | 
			
		||||
@@ -148,6 +150,12 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
 | 
			
		||||
      intel_miptree_reference(&intelObj->mt, firstImage->mt);
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   if (firstImage->base.IsCompressed) {
 | 
			
		||||
      comp_byte = intel_compressed_num_bytes(firstImage->base.TexFormat->MesaFormat);
 | 
			
		||||
      cpp = comp_byte;
 | 
			
		||||
   }
 | 
			
		||||
   else cpp = firstImage->base.TexFormat->TexelBytes;
 | 
			
		||||
 | 
			
		||||
   /* Check tree can hold all active levels.  Check tree matches
 | 
			
		||||
    * target, imageFormat, etc.
 | 
			
		||||
    * 
 | 
			
		||||
@@ -165,7 +173,7 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
 | 
			
		||||
	intelObj->mt->width0 != firstImage->base.Width ||
 | 
			
		||||
	intelObj->mt->height0 != firstImage->base.Height ||
 | 
			
		||||
	intelObj->mt->depth0 != firstImage->base.Depth ||
 | 
			
		||||
	intelObj->mt->cpp != firstImage->base.TexFormat->TexelBytes ||
 | 
			
		||||
	intelObj->mt->cpp != cpp ||
 | 
			
		||||
	intelObj->mt->compressed != firstImage->base.IsCompressed)) {
 | 
			
		||||
      intel_miptree_release(intel, &intelObj->mt);
 | 
			
		||||
   }
 | 
			
		||||
@@ -174,10 +182,6 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
 | 
			
		||||
   /* May need to create a new tree:
 | 
			
		||||
    */
 | 
			
		||||
   if (!intelObj->mt) {
 | 
			
		||||
      int comp_byte = 0;
 | 
			
		||||
      
 | 
			
		||||
      if (firstImage->base.IsCompressed)
 | 
			
		||||
	 comp_byte = intel_compressed_num_bytes(firstImage->base.TexFormat->MesaFormat);
 | 
			
		||||
      intelObj->mt = intel_miptree_create(intel,
 | 
			
		||||
                                          intelObj->base.Target,
 | 
			
		||||
                                          firstImage->base.InternalFormat,
 | 
			
		||||
@@ -186,8 +190,7 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
 | 
			
		||||
                                          firstImage->base.Width,
 | 
			
		||||
                                          firstImage->base.Height,
 | 
			
		||||
                                          firstImage->base.Depth,
 | 
			
		||||
                                          firstImage->base.TexFormat->
 | 
			
		||||
                                          TexelBytes,
 | 
			
		||||
                                          cpp,
 | 
			
		||||
                                          comp_byte);
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -532,12 +532,15 @@ intelEmitImmediateColorExpandBlit(struct intel_context *intel,
 | 
			
		||||
				  GLuint dst_offset,
 | 
			
		||||
				  GLboolean dst_tiled,
 | 
			
		||||
				  GLshort x, GLshort y, 
 | 
			
		||||
				  GLshort w, GLshort h)
 | 
			
		||||
				  GLshort w, GLshort h,
 | 
			
		||||
				  GLenum logic_op)
 | 
			
		||||
{
 | 
			
		||||
   struct xy_setup_blit setup;
 | 
			
		||||
   struct xy_text_immediate_blit text;
 | 
			
		||||
   int dwords = ((src_size + 7) & ~7) / 4;
 | 
			
		||||
 | 
			
		||||
   assert( logic_op - GL_CLEAR >= 0 );
 | 
			
		||||
   assert( logic_op - GL_CLEAR < 0x10 );
 | 
			
		||||
 | 
			
		||||
   if (w < 0 || h < 0) 
 | 
			
		||||
      return;
 | 
			
		||||
@@ -561,7 +564,7 @@ intelEmitImmediateColorExpandBlit(struct intel_context *intel,
 | 
			
		||||
   setup.br0.length = (sizeof(setup) / sizeof(int)) - 2;
 | 
			
		||||
      
 | 
			
		||||
   setup.br13.dest_pitch = dst_pitch;
 | 
			
		||||
   setup.br13.rop = 0xcc;
 | 
			
		||||
   setup.br13.rop = translate_raster_op(logic_op);
 | 
			
		||||
   setup.br13.color_depth = (cpp == 4) ? BR13_8888 : BR13_565;
 | 
			
		||||
   setup.br13.clipping_enable = 0;
 | 
			
		||||
   setup.br13.mono_source_transparency = 1;
 | 
			
		||||
 
 | 
			
		||||
@@ -72,6 +72,7 @@ intelEmitImmediateColorExpandBlit(struct intel_context *intel,
 | 
			
		||||
				  GLuint dst_offset,
 | 
			
		||||
				  GLboolean dst_tiled,
 | 
			
		||||
				  GLshort dst_x, GLshort dst_y, 
 | 
			
		||||
				  GLshort w, GLshort h);
 | 
			
		||||
				  GLshort w, GLshort h,
 | 
			
		||||
				  GLenum logic_op );
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -260,7 +260,9 @@ do_blit_bitmap( GLcontext *ctx,
 | 
			
		||||
	       int h = MIN2(DY, box_h - py);
 | 
			
		||||
	       int w = MIN2(DX, box_w - px); 
 | 
			
		||||
	       GLuint sz = align(align(w,8) * h, 64)/8;
 | 
			
		||||
	    
 | 
			
		||||
	       GLenum logic_op = ctx->Color.ColorLogicOpEnabled ?
 | 
			
		||||
		  ctx->Color.LogicOp : GL_COPY;
 | 
			
		||||
 | 
			
		||||
	       assert(sz <= sizeof(stipple));
 | 
			
		||||
	       memset(stipple, 0, sz);
 | 
			
		||||
 | 
			
		||||
@@ -288,7 +290,8 @@ do_blit_bitmap( GLcontext *ctx,
 | 
			
		||||
						  dst->tiled,
 | 
			
		||||
						  rect.x1 + px,
 | 
			
		||||
						  rect.y2 - (py + h),
 | 
			
		||||
						  w, h);
 | 
			
		||||
						  w, h,
 | 
			
		||||
						  logic_op);
 | 
			
		||||
	    } 
 | 
			
		||||
	 } 
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
@@ -74,7 +74,7 @@ void i945_miptree_layout_2d( struct intel_mipmap_tree *mt )
 | 
			
		||||
      GLuint img_height;
 | 
			
		||||
 | 
			
		||||
      intel_miptree_set_level_info(mt, level, 1, x, y, width, 
 | 
			
		||||
				   mt->compressed ? height/4 : height, 1);
 | 
			
		||||
				   height, 1);
 | 
			
		||||
 | 
			
		||||
      if (mt->compressed)
 | 
			
		||||
	 img_height = MAX2(1, height/4);
 | 
			
		||||
 
 | 
			
		||||
@@ -191,6 +191,8 @@ struct r300_tex_obj {
 | 
			
		||||
	drm_radeon_tex_image_t image[6][RADEON_MAX_TEXTURE_LEVELS];
 | 
			
		||||
	/* Six, for the cube faces */
 | 
			
		||||
 | 
			
		||||
	GLboolean image_override;	/* Image overridden by GLX_EXT_tfp */
 | 
			
		||||
 | 
			
		||||
	GLuint pitch;		/* this isn't sent to hardware just used in calculations */
 | 
			
		||||
	/* hardware register values */
 | 
			
		||||
	/* Note that R200 has 8 registers per texture and R300 only 7 */
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
#ifndef __r300_TEX_H__
 | 
			
		||||
#define __r300_TEX_H__
 | 
			
		||||
 | 
			
		||||
extern void r300SetTexOffset(__DRIcontext *pDRICtx, GLint texname,
 | 
			
		||||
			     unsigned long long offset, GLint depth,
 | 
			
		||||
			     GLuint pitch);
 | 
			
		||||
 | 
			
		||||
extern void r300UpdateTextureState(GLcontext * ctx);
 | 
			
		||||
 | 
			
		||||
extern int r300UploadTexImages(r300ContextPtr rmesa, r300TexObjPtr t,
 | 
			
		||||
 
 | 
			
		||||
@@ -508,6 +508,9 @@ int r300UploadTexImages(r300ContextPtr rmesa, r300TexObjPtr t, GLuint face)
 | 
			
		||||
{
 | 
			
		||||
	const int numLevels = t->base.lastLevel - t->base.firstLevel + 1;
 | 
			
		||||
 | 
			
		||||
	if (t->image_override)
 | 
			
		||||
		return 0;
 | 
			
		||||
 | 
			
		||||
	if (RADEON_DEBUG & (DEBUG_TEXTURE | DEBUG_IOCTL)) {
 | 
			
		||||
		fprintf(stderr, "%s( %p, %p ) sz=%d lvls=%d-%d\n", __FUNCTION__,
 | 
			
		||||
			(void *)rmesa->radeon.glCtx, (void *)t->base.tObj,
 | 
			
		||||
 
 | 
			
		||||
@@ -40,6 +40,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
#include "context.h"
 | 
			
		||||
#include "macros.h"
 | 
			
		||||
#include "texformat.h"
 | 
			
		||||
#include "teximage.h"
 | 
			
		||||
#include "texobj.h"
 | 
			
		||||
#include "enums.h"
 | 
			
		||||
 | 
			
		||||
#include "r300_context.h"
 | 
			
		||||
@@ -66,7 +68,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
 * identically.  -- paulus
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
static const struct {
 | 
			
		||||
static const struct tx_table {
 | 
			
		||||
	GLuint format, filter, flag;
 | 
			
		||||
} tx_table_be[] = {
 | 
			
		||||
	/* *INDENT-OFF* */
 | 
			
		||||
@@ -109,15 +111,13 @@ static const struct {
 | 
			
		||||
	/* *INDENT-ON* */
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const struct {
 | 
			
		||||
	GLuint format, filter, flag;
 | 
			
		||||
} tx_table_le[] = {
 | 
			
		||||
static const struct tx_table tx_table_le[] = {
 | 
			
		||||
	/* *INDENT-OFF* */
 | 
			
		||||
	_ASSIGN(RGBA8888, R300_EASY_TX_FORMAT(Y, Z, W, X, W8Z8Y8X8)),
 | 
			
		||||
	_ASSIGN(RGBA8888_REV, R300_EASY_TX_FORMAT(Z, Y, X, W, W8Z8Y8X8)),
 | 
			
		||||
	_ASSIGN(ARGB8888, R300_EASY_TX_FORMAT(X, Y, Z, W, W8Z8Y8X8)),
 | 
			
		||||
	_ASSIGN(ARGB8888_REV, R300_EASY_TX_FORMAT(W, Z, Y, X, W8Z8Y8X8)),
 | 
			
		||||
	_ASSIGN(RGB888, 0xffffffff),
 | 
			
		||||
	_ASSIGN(RGB888, R300_EASY_TX_FORMAT(X, Y, Z, ONE, W8Z8Y8X8)),
 | 
			
		||||
	_ASSIGN(RGB565, R300_EASY_TX_FORMAT(X, Y, Z, ONE, Z5Y6X5)),
 | 
			
		||||
	_ASSIGN(RGB565_REV, R300_EASY_TX_FORMAT(X, Y, Z, ONE, Z5Y6X5)),
 | 
			
		||||
	_ASSIGN(ARGB4444, R300_EASY_TX_FORMAT(X, Y, Z, W, W4Z4Y4X4)),
 | 
			
		||||
@@ -178,7 +178,7 @@ static void r300SetTexImages(r300ContextPtr rmesa,
 | 
			
		||||
 | 
			
		||||
	/* Set the hardware texture format
 | 
			
		||||
	 */
 | 
			
		||||
	if (VALID_FORMAT(baseImage->TexFormat->MesaFormat)) {
 | 
			
		||||
	if (!t->image_override && VALID_FORMAT(baseImage->TexFormat->MesaFormat)) {
 | 
			
		||||
		if (_mesa_little_endian()) {
 | 
			
		||||
			t->format =
 | 
			
		||||
			    tx_table_le[baseImage->TexFormat->MesaFormat].
 | 
			
		||||
@@ -194,7 +194,7 @@ static void r300SetTexImages(r300ContextPtr rmesa,
 | 
			
		||||
			    tx_table_be[baseImage->TexFormat->MesaFormat].
 | 
			
		||||
			    filter;
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
	} else if (!t->image_override) {
 | 
			
		||||
		_mesa_problem(NULL, "unexpected texture format in %s",
 | 
			
		||||
			      __FUNCTION__);
 | 
			
		||||
		return;
 | 
			
		||||
@@ -382,9 +382,10 @@ static void r300SetTexImages(r300ContextPtr rmesa,
 | 
			
		||||
		t->pitch = ((tObj->Image[0][t->base.firstLevel]->Width *
 | 
			
		||||
			     texelBytes) + 63) & ~(63);
 | 
			
		||||
		t->size |= R300_TX_SIZE_TXPITCH_EN;
 | 
			
		||||
		t->pitch_reg =
 | 
			
		||||
		    (((tObj->Image[0][t->base.firstLevel]->Width) +
 | 
			
		||||
		      align) & ~align) - 1;
 | 
			
		||||
		if (!t->image_override)
 | 
			
		||||
			t->pitch_reg =
 | 
			
		||||
			    (((tObj->Image[0][t->base.firstLevel]->Width) +
 | 
			
		||||
			      align) & ~align) - 1;
 | 
			
		||||
	} else {
 | 
			
		||||
		t->pitch =
 | 
			
		||||
		    ((tObj->Image[0][t->base.firstLevel]->Width *
 | 
			
		||||
@@ -411,9 +412,10 @@ static GLboolean r300EnableTexture2D(GLcontext * ctx, int unit)
 | 
			
		||||
 | 
			
		||||
	if (t->base.dirty_images[0]) {
 | 
			
		||||
		R300_FIREVERTICES(rmesa);
 | 
			
		||||
 | 
			
		||||
		r300SetTexImages(rmesa, tObj);
 | 
			
		||||
		r300UploadTexImages(rmesa, (r300TexObjPtr) tObj->DriverData, 0);
 | 
			
		||||
		if (!t->base.memBlock)
 | 
			
		||||
		if (!t->base.memBlock && !t->image_override)
 | 
			
		||||
			return GL_FALSE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -492,9 +494,11 @@ static GLboolean r300EnableTextureRect(GLcontext * ctx, int unit)
 | 
			
		||||
 | 
			
		||||
	if (t->base.dirty_images[0]) {
 | 
			
		||||
		R300_FIREVERTICES(rmesa);
 | 
			
		||||
 | 
			
		||||
		r300SetTexImages(rmesa, tObj);
 | 
			
		||||
		r300UploadTexImages(rmesa, (r300TexObjPtr) tObj->DriverData, 0);
 | 
			
		||||
		if (!t->base.memBlock && !rmesa->prefer_gart_client_texturing)
 | 
			
		||||
		if (!t->base.memBlock && !t->image_override &&
 | 
			
		||||
		    !rmesa->prefer_gart_client_texturing)
 | 
			
		||||
			return GL_FALSE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -534,6 +538,51 @@ static GLboolean r300UpdateTexture(GLcontext * ctx, int unit)
 | 
			
		||||
	return !t->border_fallback;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void r300SetTexOffset(__DRIcontext *pDRICtx, GLint texname,
 | 
			
		||||
		      unsigned long long offset, GLint depth, GLuint pitch)
 | 
			
		||||
{
 | 
			
		||||
	r300ContextPtr rmesa =
 | 
			
		||||
		(r300ContextPtr)((__DRIcontextPrivate*)pDRICtx->private)->driverPrivate;
 | 
			
		||||
	struct gl_texture_object *tObj =
 | 
			
		||||
		_mesa_lookup_texture(rmesa->radeon.glCtx, texname);
 | 
			
		||||
	r300TexObjPtr t;
 | 
			
		||||
	int idx;
 | 
			
		||||
 | 
			
		||||
	if (!tObj)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	t = (r300TexObjPtr) tObj->DriverData;
 | 
			
		||||
 | 
			
		||||
	t->image_override = GL_TRUE;
 | 
			
		||||
 | 
			
		||||
	if (!offset)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	t->offset = offset;
 | 
			
		||||
	t->pitch_reg = pitch;
 | 
			
		||||
 | 
			
		||||
	switch (depth) {
 | 
			
		||||
	case 32:
 | 
			
		||||
		idx = 2;
 | 
			
		||||
		t->pitch_reg /= 4;
 | 
			
		||||
		break;
 | 
			
		||||
	case 24:
 | 
			
		||||
	default:
 | 
			
		||||
		idx = 4;
 | 
			
		||||
		t->pitch_reg /= 4;
 | 
			
		||||
		break;
 | 
			
		||||
	case 16:
 | 
			
		||||
		idx = 5;
 | 
			
		||||
		t->pitch_reg /= 2;
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	t->pitch_reg--;
 | 
			
		||||
 | 
			
		||||
	t->format = tx_table_le[idx].format;
 | 
			
		||||
	t->filter |= tx_table_le[idx].filter;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static GLboolean r300UpdateTextureUnit(GLcontext * ctx, int unit)
 | 
			
		||||
{
 | 
			
		||||
	struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit];
 | 
			
		||||
 
 | 
			
		||||
@@ -56,6 +56,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
#elif RADEON_COMMON && defined(RADEON_COMMON_FOR_R300)
 | 
			
		||||
#include "r300_context.h"
 | 
			
		||||
#include "r300_fragprog.h"
 | 
			
		||||
#include "r300_tex.h"
 | 
			
		||||
#include "radeon_span.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -952,6 +953,9 @@ static struct __DriverAPIRec radeonAPI = {
 | 
			
		||||
   .WaitForSBC      = NULL,
 | 
			
		||||
   .SwapBuffersMSC  = NULL,
 | 
			
		||||
   .CopySubBuffer   = radeonCopySubBuffer,
 | 
			
		||||
#if RADEON_COMMON && defined(RADEON_COMMON_FOR_R300)
 | 
			
		||||
   .setTexOffset    = r300SetTexOffset,
 | 
			
		||||
#endif
 | 
			
		||||
};
 | 
			
		||||
#else
 | 
			
		||||
static const struct __DriverAPIRec r200API = {
 | 
			
		||||
 
 | 
			
		||||
@@ -130,6 +130,8 @@ sisAllocTexImage( sisContextPtr smesa, sisTexObjPtr t, int level,
 | 
			
		||||
static void
 | 
			
		||||
sisFreeTexImage( sisContextPtr smesa, sisTexObjPtr t, int level )
 | 
			
		||||
{
 | 
			
		||||
   assert(level >= 0);
 | 
			
		||||
   assert(level < SIS_MAX_TEXTURE_LEVELS);
 | 
			
		||||
   if (t->image[level].Data == NULL)
 | 
			
		||||
      return;
 | 
			
		||||
 | 
			
		||||
@@ -213,7 +215,7 @@ sisDeleteTexture( GLcontext * ctx, struct gl_texture_object *texObj )
 | 
			
		||||
       */
 | 
			
		||||
      return;
 | 
			
		||||
   }
 | 
			
		||||
   for (i = 0; i < MAX_TEXTURE_LEVELS; i++) {
 | 
			
		||||
   for (i = 0; i < SIS_MAX_TEXTURE_LEVELS; i++) {
 | 
			
		||||
      sisFreeTexImage( smesa, t, i );
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -32,10 +32,31 @@
 | 
			
		||||
 | 
			
		||||
/* We're essentially building part of GDI here, so define this so that
 | 
			
		||||
 * we get the right export linkage. */
 | 
			
		||||
#ifdef __MINGW32__
 | 
			
		||||
 | 
			
		||||
#include <stdarg.h>
 | 
			
		||||
#include <windef.h>
 | 
			
		||||
#include <wincon.h>
 | 
			
		||||
#include <winbase.h>
 | 
			
		||||
 | 
			
		||||
#  if defined(BUILD_GL32)
 | 
			
		||||
#    define WINGDIAPI __declspec(dllexport)	
 | 
			
		||||
#  else
 | 
			
		||||
#    define __W32API_USE_DLLIMPORT__
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#include <wingdi.h>
 | 
			
		||||
#include "GL/mesa_wgl.h"
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#define _GDI32_
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
#include "glapi.h"
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "glapi.h"
 | 
			
		||||
#include "GL/wmesa.h"   /* protos for wmesa* functions */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
@@ -333,7 +354,7 @@ WINGDIAPI int GLAPIENTRY wglGetPixelFormat(HDC hdc)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
WINGDIAPI BOOL GLAPIENTRY wglSetPixelFormat(HDC hdc,int iPixelFormat,
 | 
			
		||||
					    PIXELFORMATDESCRIPTOR *ppfd)
 | 
			
		||||
					const PIXELFORMATDESCRIPTOR *ppfd)
 | 
			
		||||
{
 | 
			
		||||
    (void) hdc;
 | 
			
		||||
    
 | 
			
		||||
@@ -386,12 +407,12 @@ static BOOL wglUseFontBitmaps_FX(HDC fontDevice, DWORD firstChar,
 | 
			
		||||
    
 | 
			
		||||
    bitDevice = CreateCompatibleDC(fontDevice);
 | 
			
		||||
    
 | 
			
		||||
    // Swap fore and back colors so the bitmap has the right polarity
 | 
			
		||||
    /* Swap fore and back colors so the bitmap has the right polarity */
 | 
			
		||||
    tempColor = GetBkColor(bitDevice);
 | 
			
		||||
    SetBkColor(bitDevice, GetTextColor(bitDevice));
 | 
			
		||||
    SetTextColor(bitDevice, tempColor);
 | 
			
		||||
    
 | 
			
		||||
    // Place chars based on base line
 | 
			
		||||
    /* Place chars based on base line */
 | 
			
		||||
    VERIFY(SetTextAlign(bitDevice, TA_BASELINE) != GDI_ERROR ? 1 : 0);
 | 
			
		||||
    
 | 
			
		||||
    for(i = 0; i < (int)numChars; i++) {
 | 
			
		||||
@@ -404,36 +425,36 @@ static BOOL wglUseFontBitmaps_FX(HDC fontDevice, DWORD firstChar,
 | 
			
		||||
	
 | 
			
		||||
	curChar = (char)(i + firstChar);
 | 
			
		||||
	
 | 
			
		||||
	// Find how high/wide this character is
 | 
			
		||||
	/* Find how high/wide this character is */
 | 
			
		||||
	VERIFY(GetTextExtentPoint32(bitDevice, &curChar, 1, &size));
 | 
			
		||||
	
 | 
			
		||||
	// Create the output bitmap
 | 
			
		||||
	/* Create the output bitmap */
 | 
			
		||||
	charWidth = size.cx;
 | 
			
		||||
	charHeight = size.cy;
 | 
			
		||||
	// Round up to the next multiple of 32 bits
 | 
			
		||||
	/* Round up to the next multiple of 32 bits */
 | 
			
		||||
	bmapWidth = ((charWidth + 31) / 32) * 32;   
 | 
			
		||||
	bmapHeight = charHeight;
 | 
			
		||||
	bitObject = CreateCompatibleBitmap(bitDevice,
 | 
			
		||||
					   bmapWidth,
 | 
			
		||||
					   bmapHeight);
 | 
			
		||||
	//VERIFY(bitObject);
 | 
			
		||||
	/* VERIFY(bitObject); */
 | 
			
		||||
	
 | 
			
		||||
	// Assign the output bitmap to the device
 | 
			
		||||
	/* Assign the output bitmap to the device */
 | 
			
		||||
	origBmap = SelectObject(bitDevice, bitObject);
 | 
			
		||||
	(void) VERIFY(origBmap);
 | 
			
		||||
	
 | 
			
		||||
	VERIFY( PatBlt( bitDevice, 0, 0, bmapWidth, bmapHeight,BLACKNESS ) );
 | 
			
		||||
	
 | 
			
		||||
	// Use our source font on the device
 | 
			
		||||
	/* Use our source font on the device */
 | 
			
		||||
	VERIFY(SelectObject(bitDevice, GetCurrentObject(fontDevice,OBJ_FONT)));
 | 
			
		||||
	
 | 
			
		||||
	// Draw the character
 | 
			
		||||
	/* Draw the character */
 | 
			
		||||
	VERIFY(TextOut(bitDevice, 0, metric.tmAscent, &curChar, 1));
 | 
			
		||||
	
 | 
			
		||||
	// Unselect our bmap object
 | 
			
		||||
	/* Unselect our bmap object */
 | 
			
		||||
	VERIFY(SelectObject(bitDevice, origBmap));
 | 
			
		||||
	
 | 
			
		||||
	// Convert the display dependant representation to a 1 bit deep DIB
 | 
			
		||||
	/* Convert the display dependant representation to a 1 bit deep DIB */
 | 
			
		||||
	numBytes = (bmapWidth * bmapHeight) / 8;
 | 
			
		||||
	bmap = malloc(numBytes);
 | 
			
		||||
	dibInfo->bmiHeader.biWidth = bmapWidth;
 | 
			
		||||
@@ -441,24 +462,24 @@ static BOOL wglUseFontBitmaps_FX(HDC fontDevice, DWORD firstChar,
 | 
			
		||||
	res = GetDIBits(bitDevice, bitObject, 0, bmapHeight, bmap,
 | 
			
		||||
			dibInfo,
 | 
			
		||||
			DIB_RGB_COLORS);
 | 
			
		||||
	//VERIFY(res);
 | 
			
		||||
	/* VERIFY(res); */
 | 
			
		||||
	
 | 
			
		||||
	// Create the GL object
 | 
			
		||||
	/* Create the GL object */
 | 
			
		||||
	glNewList(i + listBase, GL_COMPILE);
 | 
			
		||||
	glBitmap(bmapWidth, bmapHeight, 0.0, (GLfloat)metric.tmDescent,
 | 
			
		||||
		 (GLfloat)charWidth, 0.0,
 | 
			
		||||
		 bmap);
 | 
			
		||||
	glEndList();
 | 
			
		||||
	// CheckGL();
 | 
			
		||||
	/* CheckGL(); */
 | 
			
		||||
	
 | 
			
		||||
	// Destroy the bmap object
 | 
			
		||||
	/* Destroy the bmap object */
 | 
			
		||||
	DeleteObject(bitObject);
 | 
			
		||||
	
 | 
			
		||||
	// Deallocate the bitmap data
 | 
			
		||||
	/* Deallocate the bitmap data */
 | 
			
		||||
	free(bmap);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    // Destroy the DC
 | 
			
		||||
    /* Destroy the DC */
 | 
			
		||||
    VERIFY(DeleteDC(bitDevice));
 | 
			
		||||
    
 | 
			
		||||
    free(dibInfo);
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@
 | 
			
		||||
#include "wmesadef.h"
 | 
			
		||||
#include "colors.h"
 | 
			
		||||
#include <GL/wmesa.h>
 | 
			
		||||
#include <winuser.h>
 | 
			
		||||
#include "context.h"
 | 
			
		||||
#include "extensions.h"
 | 
			
		||||
#include "framebuffer.h"
 | 
			
		||||
@@ -114,7 +115,7 @@ static void wmSetPixelFormat(WMesaFramebuffer pwfb, HDC hDC)
 | 
			
		||||
{
 | 
			
		||||
    pwfb->cColorBits = GetDeviceCaps(hDC, BITSPIXEL);
 | 
			
		||||
 | 
			
		||||
    // Only 16 and 32 bit targets are supported now
 | 
			
		||||
    /* Only 16 and 32 bit targets are supported now */
 | 
			
		||||
    assert(pwfb->cColorBits == 0 ||
 | 
			
		||||
	   pwfb->cColorBits == 16 || 
 | 
			
		||||
	   pwfb->cColorBits == 32);
 | 
			
		||||
@@ -1171,7 +1172,7 @@ WMesaContext WMesaCreateContext(HDC hDC,
 | 
			
		||||
    /* I do not understand this contributed code */
 | 
			
		||||
    /* Support memory and device contexts */
 | 
			
		||||
    if(WindowFromDC(hDC) != NULL) {
 | 
			
		||||
	c->hDC = GetDC(WindowFromDC(hDC)); // huh ????
 | 
			
		||||
	c->hDC = GetDC(WindowFromDC(hDC)); /* huh ???? */
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
	c->hDC = hDC;
 | 
			
		||||
@@ -1404,70 +1405,72 @@ void WMesaSwapBuffers( HDC hdc )
 | 
			
		||||
 * table entries.  Hopefully, I'll find a better solution.  The
 | 
			
		||||
 * dispatch table generation scripts ought to be making these dummy
 | 
			
		||||
 * stubs as well. */
 | 
			
		||||
void gl_dispatch_stub_543(void){};
 | 
			
		||||
void gl_dispatch_stub_544(void){};
 | 
			
		||||
void gl_dispatch_stub_545(void){};
 | 
			
		||||
void gl_dispatch_stub_546(void){};
 | 
			
		||||
void gl_dispatch_stub_547(void){};
 | 
			
		||||
void gl_dispatch_stub_548(void){};
 | 
			
		||||
void gl_dispatch_stub_549(void){};
 | 
			
		||||
void gl_dispatch_stub_550(void){};
 | 
			
		||||
void gl_dispatch_stub_551(void){};
 | 
			
		||||
void gl_dispatch_stub_552(void){};
 | 
			
		||||
void gl_dispatch_stub_553(void){};
 | 
			
		||||
void gl_dispatch_stub_554(void){};
 | 
			
		||||
void gl_dispatch_stub_555(void){};
 | 
			
		||||
void gl_dispatch_stub_556(void){};
 | 
			
		||||
void gl_dispatch_stub_557(void){};
 | 
			
		||||
void gl_dispatch_stub_558(void){};
 | 
			
		||||
void gl_dispatch_stub_559(void){};
 | 
			
		||||
void gl_dispatch_stub_560(void){};
 | 
			
		||||
void gl_dispatch_stub_561(void){};
 | 
			
		||||
void gl_dispatch_stub_565(void){};
 | 
			
		||||
void gl_dispatch_stub_566(void){};
 | 
			
		||||
void gl_dispatch_stub_577(void){};
 | 
			
		||||
void gl_dispatch_stub_578(void){};
 | 
			
		||||
void gl_dispatch_stub_603(void){};
 | 
			
		||||
void gl_dispatch_stub_645(void){};
 | 
			
		||||
void gl_dispatch_stub_646(void){};
 | 
			
		||||
void gl_dispatch_stub_647(void){};
 | 
			
		||||
void gl_dispatch_stub_648(void){};
 | 
			
		||||
void gl_dispatch_stub_649(void){};
 | 
			
		||||
void gl_dispatch_stub_650(void){};
 | 
			
		||||
void gl_dispatch_stub_651(void){};
 | 
			
		||||
void gl_dispatch_stub_652(void){};
 | 
			
		||||
void gl_dispatch_stub_653(void){};
 | 
			
		||||
void gl_dispatch_stub_734(void){};
 | 
			
		||||
void gl_dispatch_stub_735(void){};
 | 
			
		||||
void gl_dispatch_stub_736(void){};
 | 
			
		||||
void gl_dispatch_stub_737(void){};
 | 
			
		||||
void gl_dispatch_stub_738(void){};
 | 
			
		||||
void gl_dispatch_stub_745(void){};
 | 
			
		||||
void gl_dispatch_stub_746(void){};
 | 
			
		||||
void gl_dispatch_stub_760(void){};
 | 
			
		||||
void gl_dispatch_stub_761(void){};
 | 
			
		||||
void gl_dispatch_stub_766(void){};
 | 
			
		||||
void gl_dispatch_stub_767(void){};
 | 
			
		||||
void gl_dispatch_stub_768(void){};
 | 
			
		||||
#if !defined(__MINGW32__) || !defined(GL_NO_STDCALL)
 | 
			
		||||
void gl_dispatch_stub_543(void){}
 | 
			
		||||
void gl_dispatch_stub_544(void){}
 | 
			
		||||
void gl_dispatch_stub_545(void){}
 | 
			
		||||
void gl_dispatch_stub_546(void){}
 | 
			
		||||
void gl_dispatch_stub_547(void){}
 | 
			
		||||
void gl_dispatch_stub_548(void){}
 | 
			
		||||
void gl_dispatch_stub_549(void){}
 | 
			
		||||
void gl_dispatch_stub_550(void){}
 | 
			
		||||
void gl_dispatch_stub_551(void){}
 | 
			
		||||
void gl_dispatch_stub_552(void){}
 | 
			
		||||
void gl_dispatch_stub_553(void){}
 | 
			
		||||
void gl_dispatch_stub_554(void){}
 | 
			
		||||
void gl_dispatch_stub_555(void){}
 | 
			
		||||
void gl_dispatch_stub_556(void){}
 | 
			
		||||
void gl_dispatch_stub_557(void){}
 | 
			
		||||
void gl_dispatch_stub_558(void){}
 | 
			
		||||
void gl_dispatch_stub_559(void){}
 | 
			
		||||
void gl_dispatch_stub_560(void){}
 | 
			
		||||
void gl_dispatch_stub_561(void){}
 | 
			
		||||
void gl_dispatch_stub_565(void){}
 | 
			
		||||
void gl_dispatch_stub_566(void){}
 | 
			
		||||
void gl_dispatch_stub_577(void){}
 | 
			
		||||
void gl_dispatch_stub_578(void){}
 | 
			
		||||
void gl_dispatch_stub_603(void){}
 | 
			
		||||
void gl_dispatch_stub_645(void){}
 | 
			
		||||
void gl_dispatch_stub_646(void){}
 | 
			
		||||
void gl_dispatch_stub_647(void){}
 | 
			
		||||
void gl_dispatch_stub_648(void){}
 | 
			
		||||
void gl_dispatch_stub_649(void){}
 | 
			
		||||
void gl_dispatch_stub_650(void){}
 | 
			
		||||
void gl_dispatch_stub_651(void){}
 | 
			
		||||
void gl_dispatch_stub_652(void){}
 | 
			
		||||
void gl_dispatch_stub_653(void){}
 | 
			
		||||
void gl_dispatch_stub_734(void){}
 | 
			
		||||
void gl_dispatch_stub_735(void){}
 | 
			
		||||
void gl_dispatch_stub_736(void){}
 | 
			
		||||
void gl_dispatch_stub_737(void){}
 | 
			
		||||
void gl_dispatch_stub_738(void){}
 | 
			
		||||
void gl_dispatch_stub_745(void){}
 | 
			
		||||
void gl_dispatch_stub_746(void){}
 | 
			
		||||
void gl_dispatch_stub_760(void){}
 | 
			
		||||
void gl_dispatch_stub_761(void){}
 | 
			
		||||
void gl_dispatch_stub_766(void){}
 | 
			
		||||
void gl_dispatch_stub_767(void){}
 | 
			
		||||
void gl_dispatch_stub_768(void){}
 | 
			
		||||
 | 
			
		||||
void gl_dispatch_stub_562(void){};
 | 
			
		||||
void gl_dispatch_stub_563(void){};
 | 
			
		||||
void gl_dispatch_stub_564(void){};
 | 
			
		||||
void gl_dispatch_stub_567(void){};
 | 
			
		||||
void gl_dispatch_stub_568(void){};
 | 
			
		||||
void gl_dispatch_stub_569(void){};
 | 
			
		||||
void gl_dispatch_stub_580(void){};
 | 
			
		||||
void gl_dispatch_stub_581(void){};
 | 
			
		||||
void gl_dispatch_stub_606(void){};
 | 
			
		||||
void gl_dispatch_stub_654(void){};
 | 
			
		||||
void gl_dispatch_stub_655(void){};
 | 
			
		||||
void gl_dispatch_stub_656(void){};
 | 
			
		||||
void gl_dispatch_stub_739(void){};
 | 
			
		||||
void gl_dispatch_stub_740(void){};
 | 
			
		||||
void gl_dispatch_stub_741(void){};
 | 
			
		||||
void gl_dispatch_stub_748(void){};
 | 
			
		||||
void gl_dispatch_stub_749(void){};
 | 
			
		||||
void gl_dispatch_stub_769(void){};
 | 
			
		||||
void gl_dispatch_stub_770(void){};
 | 
			
		||||
void gl_dispatch_stub_771(void){};
 | 
			
		||||
void gl_dispatch_stub_562(void){}
 | 
			
		||||
void gl_dispatch_stub_563(void){}
 | 
			
		||||
void gl_dispatch_stub_564(void){}
 | 
			
		||||
void gl_dispatch_stub_567(void){}
 | 
			
		||||
void gl_dispatch_stub_568(void){}
 | 
			
		||||
void gl_dispatch_stub_569(void){}
 | 
			
		||||
void gl_dispatch_stub_580(void){}
 | 
			
		||||
void gl_dispatch_stub_581(void){}
 | 
			
		||||
void gl_dispatch_stub_606(void){}
 | 
			
		||||
void gl_dispatch_stub_654(void){}
 | 
			
		||||
void gl_dispatch_stub_655(void){}
 | 
			
		||||
void gl_dispatch_stub_656(void){}
 | 
			
		||||
void gl_dispatch_stub_739(void){}
 | 
			
		||||
void gl_dispatch_stub_740(void){}
 | 
			
		||||
void gl_dispatch_stub_741(void){}
 | 
			
		||||
void gl_dispatch_stub_748(void){}
 | 
			
		||||
void gl_dispatch_stub_749(void){}
 | 
			
		||||
void gl_dispatch_stub_769(void){}
 | 
			
		||||
void gl_dispatch_stub_770(void){}
 | 
			
		||||
void gl_dispatch_stub_771(void){}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
#ifndef WMESADEF_H
 | 
			
		||||
#define WMESADEF_H
 | 
			
		||||
 | 
			
		||||
#ifdef __MINGW32__
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
#endif
 | 
			
		||||
#include "context.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Mesa 3-D graphics library
 | 
			
		||||
 * Version:  6.5.2
 | 
			
		||||
 * Version:  7.0.1
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
 * copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
@@ -295,6 +295,11 @@ save_glx_visual( Display *dpy, XVisualInfo *vinfo,
 | 
			
		||||
      }
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   if (stereoFlag) {
 | 
			
		||||
      /* stereo not supported */
 | 
			
		||||
      return NULL;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   /* Comparing IDs uses less memory but sometimes fails. */
 | 
			
		||||
   /* XXX revisit this after 3.0 is finished. */
 | 
			
		||||
   if (_mesa_getenv("MESA_GLX_VISUAL_HACK"))
 | 
			
		||||
@@ -1078,7 +1083,7 @@ choose_visual( Display *dpy, int screen, const int *list, GLboolean fbConfig )
 | 
			
		||||
            else {
 | 
			
		||||
               stereo_flag = GL_TRUE;
 | 
			
		||||
            }
 | 
			
		||||
            return NULL; /* stereo not supported */
 | 
			
		||||
            break;
 | 
			
		||||
	 case GLX_AUX_BUFFERS:
 | 
			
		||||
	    parselist++;
 | 
			
		||||
            numAux = *parselist++;
 | 
			
		||||
 
 | 
			
		||||
@@ -141,7 +141,7 @@ static void
 | 
			
		||||
SetCurrentContext(GLXContext c)
 | 
			
		||||
{
 | 
			
		||||
#if defined(GLX_USE_TLS)
 | 
			
		||||
   CurrentContext = context;
 | 
			
		||||
   CurrentContext = c;
 | 
			
		||||
#elif defined(THREADS)
 | 
			
		||||
   _glthread_SetTSD(&ContextTSD, c);
 | 
			
		||||
#else
 | 
			
		||||
 
 | 
			
		||||
@@ -5605,7 +5605,10 @@
 | 
			
		||||
        <param name="index" type="GLuint"/>
 | 
			
		||||
        <param name="v" type="const GLushort *"/>
 | 
			
		||||
    </function>
 | 
			
		||||
 | 
			
		||||
    <function name="VertexAttrib4bv" alias="VertexAttrib4bvARB">
 | 
			
		||||
        <param name="index" type="GLuint"/>
 | 
			
		||||
        <param name="v" type="const GLbyte *" count="4"/>
 | 
			
		||||
    </function>
 | 
			
		||||
    <function name="VertexAttrib4d" alias="VertexAttrib4dARB">
 | 
			
		||||
        <param name="index" type="GLuint"/>
 | 
			
		||||
        <param name="x" type="GLdouble"/>
 | 
			
		||||
@@ -5628,6 +5631,10 @@
 | 
			
		||||
        <param name="index" type="GLuint"/>
 | 
			
		||||
        <param name="v" type="const GLfloat *"/>
 | 
			
		||||
    </function>
 | 
			
		||||
    <function name="VertexAttrib4iv" alias="VertexAttrib4ivARB">
 | 
			
		||||
        <param name="index" type="GLuint"/>
 | 
			
		||||
        <param name="v" type="const GLint *" count="4"/>
 | 
			
		||||
    </function>
 | 
			
		||||
    <function name="VertexAttrib4s" alias="VertexAttrib4sARB">
 | 
			
		||||
        <param name="index" type="GLuint"/>
 | 
			
		||||
        <param name="x" type="GLshort"/>
 | 
			
		||||
@@ -5639,6 +5646,18 @@
 | 
			
		||||
        <param name="index" type="GLuint"/>
 | 
			
		||||
        <param name="v" type="const GLshort *"/>
 | 
			
		||||
    </function>
 | 
			
		||||
    <function name="VertexAttrib4ubv" alias="VertexAttrib4ubvARB">
 | 
			
		||||
        <param name="index" type="GLuint"/>
 | 
			
		||||
        <param name="v" type="const GLubyte *" count="4"/>
 | 
			
		||||
    </function>
 | 
			
		||||
    <function name="VertexAttrib4uiv" alias="VertexAttrib4uivARB">
 | 
			
		||||
        <param name="index" type="GLuint"/>
 | 
			
		||||
        <param name="v" type="const GLuint *" count="4"/>
 | 
			
		||||
    </function>
 | 
			
		||||
    <function name="VertexAttrib4usv" alias="VertexAttrib4usvARB">
 | 
			
		||||
        <param name="index" type="GLuint"/>
 | 
			
		||||
        <param name="v" type="const GLushort *" count="4"/>
 | 
			
		||||
    </function>
 | 
			
		||||
 | 
			
		||||
    <function name="VertexAttribPointer" alias="VertexAttribPointerARB">
 | 
			
		||||
        <param name="index" type="GLuint"/>
 | 
			
		||||
 
 | 
			
		||||
@@ -82,12 +82,18 @@ class PrintGenericStubs(gl_XML.gl_print_base):
 | 
			
		||||
		print ''
 | 
			
		||||
		print '#ifdef GLX_USE_TLS'
 | 
			
		||||
		print ''
 | 
			
		||||
		print '#ifdef GLX_X86_READONLY_TEXT'
 | 
			
		||||
		print '# define CTX_INSNS MOV_L(GS:(EAX), EAX)'
 | 
			
		||||
		print '#else'
 | 
			
		||||
		print '# define CTX_INSNS NOP /* Pad for init_glapi_relocs() */'
 | 
			
		||||
		print '#endif'
 | 
			
		||||
		print ''
 | 
			
		||||
		print '#  define GL_STUB(fn,off,fn_alt)\t\t\t\\'
 | 
			
		||||
		print 'ALIGNTEXT16;\t\t\t\t\t\t\\'
 | 
			
		||||
		print 'GLOBL_FN(GL_PREFIX(fn, fn_alt));\t\t\t\\'
 | 
			
		||||
		print 'GL_PREFIX(fn, fn_alt):\t\t\t\t\t\\'
 | 
			
		||||
		print '\tCALL(_x86_get_dispatch) ;\t\t\t\\'
 | 
			
		||||
		print '\tNOP ;\t\t\t\t\t\t\\'
 | 
			
		||||
		print '\tCTX_INSNS ;					\\'
 | 
			
		||||
		print '\tJMP(GL_OFFSET(off))'
 | 
			
		||||
		print ''
 | 
			
		||||
		print '#elif defined(PTHREADS)'
 | 
			
		||||
@@ -138,7 +144,10 @@ class PrintGenericStubs(gl_XML.gl_print_base):
 | 
			
		||||
		print '\tHIDDEN(GLNAME(_x86_get_dispatch))'
 | 
			
		||||
		print 'ALIGNTEXT16'
 | 
			
		||||
		print 'GLNAME(_x86_get_dispatch):'
 | 
			
		||||
		print '\tmovl\t%gs:_glapi_tls_Dispatch@NTPOFF, %eax'
 | 
			
		||||
		print '\tcall	1f'
 | 
			
		||||
		print '1:\tpopl	%eax'
 | 
			
		||||
		print '\taddl	$_GLOBAL_OFFSET_TABLE_+[.-1b], %eax'
 | 
			
		||||
		print '\tmovl	_glapi_tls_Dispatch@GOTNTPOFF(%eax), %eax'
 | 
			
		||||
		print '\tret'
 | 
			
		||||
		print ''
 | 
			
		||||
		print '#elif defined(PTHREADS)'
 | 
			
		||||
@@ -158,7 +167,7 @@ class PrintGenericStubs(gl_XML.gl_print_base):
 | 
			
		||||
		print '#endif'
 | 
			
		||||
		print ''
 | 
			
		||||
 | 
			
		||||
		print '#if defined( GLX_USE_TLS )'
 | 
			
		||||
		print '#if defined( GLX_USE_TLS ) && !defined( GLX_X86_READONLY_TEXT )'
 | 
			
		||||
		print '\t\t.section\twtext, "awx", @progbits'
 | 
			
		||||
		print '#endif /* defined( GLX_USE_TLS ) */'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1028,22 +1028,24 @@ _glapi_check_table(const struct _glapi_table *table)
 | 
			
		||||
#if defined(PTHREADS) || defined(GLX_USE_TLS)
 | 
			
		||||
/**
 | 
			
		||||
 * Perform platform-specific GL API entry-point fixups.
 | 
			
		||||
 * 
 | 
			
		||||
 * 
 | 
			
		||||
 */
 | 
			
		||||
static void
 | 
			
		||||
init_glapi_relocs( void )
 | 
			
		||||
{
 | 
			
		||||
#if defined( USE_X86_ASM ) && defined( GLX_USE_TLS )
 | 
			
		||||
    extern void * _x86_get_dispatch(void);
 | 
			
		||||
    const GLubyte * const get_disp = (const GLubyte *) _x86_get_dispatch;
 | 
			
		||||
#if defined(USE_X86_ASM) && defined(GLX_USE_TLS) && !defined(GLX_X86_READONLY_TEXT)
 | 
			
		||||
    extern unsigned long _x86_get_dispatch(void);
 | 
			
		||||
    char run_time_patch[] = {
 | 
			
		||||
       0x65, 0xa1, 0, 0, 0, 0 /* movl %gs:0,%eax */
 | 
			
		||||
    };
 | 
			
		||||
    GLuint *offset = (GLuint *) &run_time_patch[2]; /* 32-bits for x86/32 */
 | 
			
		||||
    const GLubyte * const get_disp = (const GLubyte *) run_time_patch;
 | 
			
		||||
    GLubyte * curr_func = (GLubyte *) gl_dispatch_functions_start;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    *offset = _x86_get_dispatch();
 | 
			
		||||
    while ( curr_func != (GLubyte *) gl_dispatch_functions_end ) {
 | 
			
		||||
	(void) memcpy( curr_func, get_disp, 6 );
 | 
			
		||||
	(void) memcpy( curr_func, get_disp, sizeof(run_time_patch));
 | 
			
		||||
	curr_func += DISPATCH_FUNCTION_SIZE;
 | 
			
		||||
    }
 | 
			
		||||
#endif /* defined( USE_X86_ASM ) && defined( GLX_USE_TLS ) */
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
#endif /* defined(PTHREADS) || defined(GLX_USE_TLS) */
 | 
			
		||||
 
 | 
			
		||||
@@ -3284,6 +3284,11 @@ KEYWORD1 void KEYWORD2 NAME(VertexAttrib4NusvARB)(GLuint index, const GLushort *
 | 
			
		||||
   DISPATCH(VertexAttrib4NusvARB, (index, v), (F, "glVertexAttrib4NusvARB(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
KEYWORD1 void KEYWORD2 NAME(VertexAttrib4bv)(GLuint index, const GLbyte * v)
 | 
			
		||||
{
 | 
			
		||||
   DISPATCH(VertexAttrib4bvARB, (index, v), (F, "glVertexAttrib4bv(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
KEYWORD1 void KEYWORD2 NAME(VertexAttrib4bvARB)(GLuint index, const GLbyte * v)
 | 
			
		||||
{
 | 
			
		||||
   DISPATCH(VertexAttrib4bvARB, (index, v), (F, "glVertexAttrib4bvARB(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
@@ -3329,6 +3334,11 @@ KEYWORD1 void KEYWORD2 NAME(VertexAttrib4fvARB)(GLuint index, const GLfloat * v)
 | 
			
		||||
   DISPATCH(VertexAttrib4fvARB, (index, v), (F, "glVertexAttrib4fvARB(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
KEYWORD1 void KEYWORD2 NAME(VertexAttrib4iv)(GLuint index, const GLint * v)
 | 
			
		||||
{
 | 
			
		||||
   DISPATCH(VertexAttrib4ivARB, (index, v), (F, "glVertexAttrib4iv(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
KEYWORD1 void KEYWORD2 NAME(VertexAttrib4ivARB)(GLuint index, const GLint * v)
 | 
			
		||||
{
 | 
			
		||||
   DISPATCH(VertexAttrib4ivARB, (index, v), (F, "glVertexAttrib4ivARB(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
@@ -3354,16 +3364,31 @@ KEYWORD1 void KEYWORD2 NAME(VertexAttrib4svARB)(GLuint index, const GLshort * v)
 | 
			
		||||
   DISPATCH(VertexAttrib4svARB, (index, v), (F, "glVertexAttrib4svARB(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
KEYWORD1 void KEYWORD2 NAME(VertexAttrib4ubv)(GLuint index, const GLubyte * v)
 | 
			
		||||
{
 | 
			
		||||
   DISPATCH(VertexAttrib4ubvARB, (index, v), (F, "glVertexAttrib4ubv(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
KEYWORD1 void KEYWORD2 NAME(VertexAttrib4ubvARB)(GLuint index, const GLubyte * v)
 | 
			
		||||
{
 | 
			
		||||
   DISPATCH(VertexAttrib4ubvARB, (index, v), (F, "glVertexAttrib4ubvARB(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
KEYWORD1 void KEYWORD2 NAME(VertexAttrib4uiv)(GLuint index, const GLuint * v)
 | 
			
		||||
{
 | 
			
		||||
   DISPATCH(VertexAttrib4uivARB, (index, v), (F, "glVertexAttrib4uiv(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
KEYWORD1 void KEYWORD2 NAME(VertexAttrib4uivARB)(GLuint index, const GLuint * v)
 | 
			
		||||
{
 | 
			
		||||
   DISPATCH(VertexAttrib4uivARB, (index, v), (F, "glVertexAttrib4uivARB(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
KEYWORD1 void KEYWORD2 NAME(VertexAttrib4usv)(GLuint index, const GLushort * v)
 | 
			
		||||
{
 | 
			
		||||
   DISPATCH(VertexAttrib4usvARB, (index, v), (F, "glVertexAttrib4usv(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
KEYWORD1 void KEYWORD2 NAME(VertexAttrib4usvARB)(GLuint index, const GLushort * v)
 | 
			
		||||
{
 | 
			
		||||
   DISPATCH(VertexAttrib4usvARB, (index, v), (F, "glVertexAttrib4usvARB(%d, %p);\n", index, (const void *) v));
 | 
			
		||||
@@ -6458,12 +6483,17 @@ static _glapi_proc UNUSED_TABLE_NAME[] = {
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4Nubv),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4Nuiv),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4Nusv),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4bv),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4d),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4dv),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4f),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4fv),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4iv),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4s),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4sv),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4ubv),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4uiv),
 | 
			
		||||
   TABLE_ENTRY(VertexAttrib4usv),
 | 
			
		||||
   TABLE_ENTRY(VertexAttribPointer),
 | 
			
		||||
   TABLE_ENTRY(BindBuffer),
 | 
			
		||||
   TABLE_ENTRY(BufferData),
 | 
			
		||||
 
 | 
			
		||||
@@ -957,12 +957,17 @@ static const char gl_string_table[] =
 | 
			
		||||
    "glVertexAttrib4Nubv\0"
 | 
			
		||||
    "glVertexAttrib4Nuiv\0"
 | 
			
		||||
    "glVertexAttrib4Nusv\0"
 | 
			
		||||
    "glVertexAttrib4bv\0"
 | 
			
		||||
    "glVertexAttrib4d\0"
 | 
			
		||||
    "glVertexAttrib4dv\0"
 | 
			
		||||
    "glVertexAttrib4f\0"
 | 
			
		||||
    "glVertexAttrib4fv\0"
 | 
			
		||||
    "glVertexAttrib4iv\0"
 | 
			
		||||
    "glVertexAttrib4s\0"
 | 
			
		||||
    "glVertexAttrib4sv\0"
 | 
			
		||||
    "glVertexAttrib4ubv\0"
 | 
			
		||||
    "glVertexAttrib4uiv\0"
 | 
			
		||||
    "glVertexAttrib4usv\0"
 | 
			
		||||
    "glVertexAttribPointer\0"
 | 
			
		||||
    "glBindBuffer\0"
 | 
			
		||||
    "glBufferData\0"
 | 
			
		||||
@@ -2100,142 +2105,147 @@ static const glprocs_table_t static_functions[] = {
 | 
			
		||||
    NAME_FUNC_OFFSET(16268, glVertexAttrib4NubvARB, glVertexAttrib4NubvARB, NULL, _gloffset_VertexAttrib4NubvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16288, glVertexAttrib4NuivARB, glVertexAttrib4NuivARB, NULL, _gloffset_VertexAttrib4NuivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16308, glVertexAttrib4NusvARB, glVertexAttrib4NusvARB, NULL, _gloffset_VertexAttrib4NusvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16328, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16345, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16363, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16380, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16398, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16415, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16433, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16455, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16468, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16481, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16497, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16513, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16526, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16549, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16569, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16588, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16599, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16611, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16625, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16638, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16654, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16665, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16678, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16697, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16717, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16730, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16740, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16756, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16775, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16793, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16814, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16829, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16844, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16858, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16873, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16885, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16898, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16910, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16923, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16935, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16948, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16960, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16973, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16985, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16998, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17010, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17023, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17035, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17048, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17060, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17073, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17092, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17111, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17130, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17143, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17161, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17182, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17200, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17220, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17234, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17251, gl_dispatch_stub_568, gl_dispatch_stub_568, NULL, _gloffset_SampleMaskSGIS),
 | 
			
		||||
    NAME_FUNC_OFFSET(17267, gl_dispatch_stub_569, gl_dispatch_stub_569, NULL, _gloffset_SamplePatternSGIS),
 | 
			
		||||
    NAME_FUNC_OFFSET(17286, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17304, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17325, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17347, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17366, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17388, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17411, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17430, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17450, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17469, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17489, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17508, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17528, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17547, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17567, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17586, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17606, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17626, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17647, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17667, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17688, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17708, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17729, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17753, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17771, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17791, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17809, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17821, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17834, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17846, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17859, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17879, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17903, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(17917, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(17934, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(17949, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(17967, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(17981, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(17998, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18013, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18031, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18045, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18062, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18077, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18095, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18109, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18126, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18141, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18159, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18173, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18190, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18205, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18223, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18237, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18254, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18269, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18287, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18301, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18318, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18333, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18351, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18365, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18382, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18397, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18415, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18432, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18452, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18469, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18495, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18524, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18539, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18557, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18576, gl_dispatch_stub_749, gl_dispatch_stub_749, NULL, _gloffset_BlendEquationSeparateEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(18600, gl_dispatch_stub_749, gl_dispatch_stub_749, NULL, _gloffset_BlendEquationSeparateEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(16328, glVertexAttrib4bvARB, glVertexAttrib4bvARB, NULL, _gloffset_VertexAttrib4bvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16346, glVertexAttrib4dARB, glVertexAttrib4dARB, NULL, _gloffset_VertexAttrib4dARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16363, glVertexAttrib4dvARB, glVertexAttrib4dvARB, NULL, _gloffset_VertexAttrib4dvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16381, glVertexAttrib4fARB, glVertexAttrib4fARB, NULL, _gloffset_VertexAttrib4fARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16398, glVertexAttrib4fvARB, glVertexAttrib4fvARB, NULL, _gloffset_VertexAttrib4fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16416, glVertexAttrib4ivARB, glVertexAttrib4ivARB, NULL, _gloffset_VertexAttrib4ivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16434, glVertexAttrib4sARB, glVertexAttrib4sARB, NULL, _gloffset_VertexAttrib4sARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16451, glVertexAttrib4svARB, glVertexAttrib4svARB, NULL, _gloffset_VertexAttrib4svARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16469, glVertexAttrib4ubvARB, glVertexAttrib4ubvARB, NULL, _gloffset_VertexAttrib4ubvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16488, glVertexAttrib4uivARB, glVertexAttrib4uivARB, NULL, _gloffset_VertexAttrib4uivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16507, glVertexAttrib4usvARB, glVertexAttrib4usvARB, NULL, _gloffset_VertexAttrib4usvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16526, glVertexAttribPointerARB, glVertexAttribPointerARB, NULL, _gloffset_VertexAttribPointerARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16548, glBindBufferARB, glBindBufferARB, NULL, _gloffset_BindBufferARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16561, glBufferDataARB, glBufferDataARB, NULL, _gloffset_BufferDataARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16574, glBufferSubDataARB, glBufferSubDataARB, NULL, _gloffset_BufferSubDataARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16590, glDeleteBuffersARB, glDeleteBuffersARB, NULL, _gloffset_DeleteBuffersARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16606, glGenBuffersARB, glGenBuffersARB, NULL, _gloffset_GenBuffersARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16619, glGetBufferParameterivARB, glGetBufferParameterivARB, NULL, _gloffset_GetBufferParameterivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16642, glGetBufferPointervARB, glGetBufferPointervARB, NULL, _gloffset_GetBufferPointervARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16662, glGetBufferSubDataARB, glGetBufferSubDataARB, NULL, _gloffset_GetBufferSubDataARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16681, glIsBufferARB, glIsBufferARB, NULL, _gloffset_IsBufferARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16692, glMapBufferARB, glMapBufferARB, NULL, _gloffset_MapBufferARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16704, glUnmapBufferARB, glUnmapBufferARB, NULL, _gloffset_UnmapBufferARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16718, glBeginQueryARB, glBeginQueryARB, NULL, _gloffset_BeginQueryARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16731, glDeleteQueriesARB, glDeleteQueriesARB, NULL, _gloffset_DeleteQueriesARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16747, glEndQueryARB, glEndQueryARB, NULL, _gloffset_EndQueryARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16758, glGenQueriesARB, glGenQueriesARB, NULL, _gloffset_GenQueriesARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16771, glGetQueryObjectivARB, glGetQueryObjectivARB, NULL, _gloffset_GetQueryObjectivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16790, glGetQueryObjectuivARB, glGetQueryObjectuivARB, NULL, _gloffset_GetQueryObjectuivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16810, glGetQueryivARB, glGetQueryivARB, NULL, _gloffset_GetQueryivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16823, glIsQueryARB, glIsQueryARB, NULL, _gloffset_IsQueryARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16833, glCompileShaderARB, glCompileShaderARB, NULL, _gloffset_CompileShaderARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16849, glGetActiveUniformARB, glGetActiveUniformARB, NULL, _gloffset_GetActiveUniformARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16868, glGetShaderSourceARB, glGetShaderSourceARB, NULL, _gloffset_GetShaderSourceARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16886, glGetUniformLocationARB, glGetUniformLocationARB, NULL, _gloffset_GetUniformLocationARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16907, glGetUniformfvARB, glGetUniformfvARB, NULL, _gloffset_GetUniformfvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16922, glGetUniformivARB, glGetUniformivARB, NULL, _gloffset_GetUniformivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16937, glLinkProgramARB, glLinkProgramARB, NULL, _gloffset_LinkProgramARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16951, glShaderSourceARB, glShaderSourceARB, NULL, _gloffset_ShaderSourceARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16966, glUniform1fARB, glUniform1fARB, NULL, _gloffset_Uniform1fARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16978, glUniform1fvARB, glUniform1fvARB, NULL, _gloffset_Uniform1fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(16991, glUniform1iARB, glUniform1iARB, NULL, _gloffset_Uniform1iARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17003, glUniform1ivARB, glUniform1ivARB, NULL, _gloffset_Uniform1ivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17016, glUniform2fARB, glUniform2fARB, NULL, _gloffset_Uniform2fARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17028, glUniform2fvARB, glUniform2fvARB, NULL, _gloffset_Uniform2fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17041, glUniform2iARB, glUniform2iARB, NULL, _gloffset_Uniform2iARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17053, glUniform2ivARB, glUniform2ivARB, NULL, _gloffset_Uniform2ivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17066, glUniform3fARB, glUniform3fARB, NULL, _gloffset_Uniform3fARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17078, glUniform3fvARB, glUniform3fvARB, NULL, _gloffset_Uniform3fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17091, glUniform3iARB, glUniform3iARB, NULL, _gloffset_Uniform3iARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17103, glUniform3ivARB, glUniform3ivARB, NULL, _gloffset_Uniform3ivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17116, glUniform4fARB, glUniform4fARB, NULL, _gloffset_Uniform4fARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17128, glUniform4fvARB, glUniform4fvARB, NULL, _gloffset_Uniform4fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17141, glUniform4iARB, glUniform4iARB, NULL, _gloffset_Uniform4iARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17153, glUniform4ivARB, glUniform4ivARB, NULL, _gloffset_Uniform4ivARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17166, glUniformMatrix2fvARB, glUniformMatrix2fvARB, NULL, _gloffset_UniformMatrix2fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17185, glUniformMatrix3fvARB, glUniformMatrix3fvARB, NULL, _gloffset_UniformMatrix3fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17204, glUniformMatrix4fvARB, glUniformMatrix4fvARB, NULL, _gloffset_UniformMatrix4fvARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17223, glUseProgramObjectARB, glUseProgramObjectARB, NULL, _gloffset_UseProgramObjectARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17236, glValidateProgramARB, glValidateProgramARB, NULL, _gloffset_ValidateProgramARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17254, glBindAttribLocationARB, glBindAttribLocationARB, NULL, _gloffset_BindAttribLocationARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17275, glGetActiveAttribARB, glGetActiveAttribARB, NULL, _gloffset_GetActiveAttribARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17293, glGetAttribLocationARB, glGetAttribLocationARB, NULL, _gloffset_GetAttribLocationARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17313, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17327, glDrawBuffersARB, glDrawBuffersARB, NULL, _gloffset_DrawBuffersARB),
 | 
			
		||||
    NAME_FUNC_OFFSET(17344, gl_dispatch_stub_568, gl_dispatch_stub_568, NULL, _gloffset_SampleMaskSGIS),
 | 
			
		||||
    NAME_FUNC_OFFSET(17360, gl_dispatch_stub_569, gl_dispatch_stub_569, NULL, _gloffset_SamplePatternSGIS),
 | 
			
		||||
    NAME_FUNC_OFFSET(17379, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17397, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17418, glPointParameterfEXT, glPointParameterfEXT, NULL, _gloffset_PointParameterfEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17440, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17459, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17481, glPointParameterfvEXT, glPointParameterfvEXT, NULL, _gloffset_PointParameterfvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17504, glSecondaryColor3bEXT, glSecondaryColor3bEXT, NULL, _gloffset_SecondaryColor3bEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17523, glSecondaryColor3bvEXT, glSecondaryColor3bvEXT, NULL, _gloffset_SecondaryColor3bvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17543, glSecondaryColor3dEXT, glSecondaryColor3dEXT, NULL, _gloffset_SecondaryColor3dEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17562, glSecondaryColor3dvEXT, glSecondaryColor3dvEXT, NULL, _gloffset_SecondaryColor3dvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17582, glSecondaryColor3fEXT, glSecondaryColor3fEXT, NULL, _gloffset_SecondaryColor3fEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17601, glSecondaryColor3fvEXT, glSecondaryColor3fvEXT, NULL, _gloffset_SecondaryColor3fvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17621, glSecondaryColor3iEXT, glSecondaryColor3iEXT, NULL, _gloffset_SecondaryColor3iEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17640, glSecondaryColor3ivEXT, glSecondaryColor3ivEXT, NULL, _gloffset_SecondaryColor3ivEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17660, glSecondaryColor3sEXT, glSecondaryColor3sEXT, NULL, _gloffset_SecondaryColor3sEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17679, glSecondaryColor3svEXT, glSecondaryColor3svEXT, NULL, _gloffset_SecondaryColor3svEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17699, glSecondaryColor3ubEXT, glSecondaryColor3ubEXT, NULL, _gloffset_SecondaryColor3ubEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17719, glSecondaryColor3ubvEXT, glSecondaryColor3ubvEXT, NULL, _gloffset_SecondaryColor3ubvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17740, glSecondaryColor3uiEXT, glSecondaryColor3uiEXT, NULL, _gloffset_SecondaryColor3uiEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17760, glSecondaryColor3uivEXT, glSecondaryColor3uivEXT, NULL, _gloffset_SecondaryColor3uivEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17781, glSecondaryColor3usEXT, glSecondaryColor3usEXT, NULL, _gloffset_SecondaryColor3usEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17801, glSecondaryColor3usvEXT, glSecondaryColor3usvEXT, NULL, _gloffset_SecondaryColor3usvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17822, glSecondaryColorPointerEXT, glSecondaryColorPointerEXT, NULL, _gloffset_SecondaryColorPointerEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17846, glMultiDrawArraysEXT, glMultiDrawArraysEXT, NULL, _gloffset_MultiDrawArraysEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17864, glMultiDrawElementsEXT, glMultiDrawElementsEXT, NULL, _gloffset_MultiDrawElementsEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17884, glFogCoordPointerEXT, glFogCoordPointerEXT, NULL, _gloffset_FogCoordPointerEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17902, glFogCoorddEXT, glFogCoorddEXT, NULL, _gloffset_FogCoorddEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17914, glFogCoorddvEXT, glFogCoorddvEXT, NULL, _gloffset_FogCoorddvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17927, glFogCoordfEXT, glFogCoordfEXT, NULL, _gloffset_FogCoordfEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17939, glFogCoordfvEXT, glFogCoordfvEXT, NULL, _gloffset_FogCoordfvEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17952, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17972, glBlendFuncSeparateEXT, glBlendFuncSeparateEXT, NULL, _gloffset_BlendFuncSeparateEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(17996, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18010, glWindowPos2dMESA, glWindowPos2dMESA, NULL, _gloffset_WindowPos2dMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18027, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18042, glWindowPos2dvMESA, glWindowPos2dvMESA, NULL, _gloffset_WindowPos2dvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18060, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18074, glWindowPos2fMESA, glWindowPos2fMESA, NULL, _gloffset_WindowPos2fMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18091, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18106, glWindowPos2fvMESA, glWindowPos2fvMESA, NULL, _gloffset_WindowPos2fvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18124, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18138, glWindowPos2iMESA, glWindowPos2iMESA, NULL, _gloffset_WindowPos2iMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18155, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18170, glWindowPos2ivMESA, glWindowPos2ivMESA, NULL, _gloffset_WindowPos2ivMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18188, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18202, glWindowPos2sMESA, glWindowPos2sMESA, NULL, _gloffset_WindowPos2sMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18219, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18234, glWindowPos2svMESA, glWindowPos2svMESA, NULL, _gloffset_WindowPos2svMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18252, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18266, glWindowPos3dMESA, glWindowPos3dMESA, NULL, _gloffset_WindowPos3dMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18283, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18298, glWindowPos3dvMESA, glWindowPos3dvMESA, NULL, _gloffset_WindowPos3dvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18316, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18330, glWindowPos3fMESA, glWindowPos3fMESA, NULL, _gloffset_WindowPos3fMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18347, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18362, glWindowPos3fvMESA, glWindowPos3fvMESA, NULL, _gloffset_WindowPos3fvMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18380, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18394, glWindowPos3iMESA, glWindowPos3iMESA, NULL, _gloffset_WindowPos3iMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18411, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18426, glWindowPos3ivMESA, glWindowPos3ivMESA, NULL, _gloffset_WindowPos3ivMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18444, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18458, glWindowPos3sMESA, glWindowPos3sMESA, NULL, _gloffset_WindowPos3sMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18475, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18490, glWindowPos3svMESA, glWindowPos3svMESA, NULL, _gloffset_WindowPos3svMESA),
 | 
			
		||||
    NAME_FUNC_OFFSET(18508, glBindProgramNV, glBindProgramNV, NULL, _gloffset_BindProgramNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18525, glDeleteProgramsNV, glDeleteProgramsNV, NULL, _gloffset_DeleteProgramsNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18545, glGenProgramsNV, glGenProgramsNV, NULL, _gloffset_GenProgramsNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18562, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18588, glGetVertexAttribPointervNV, glGetVertexAttribPointervNV, NULL, _gloffset_GetVertexAttribPointervNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18617, glIsProgramNV, glIsProgramNV, NULL, _gloffset_IsProgramNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18632, glPointParameteriNV, glPointParameteriNV, NULL, _gloffset_PointParameteriNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18650, glPointParameterivNV, glPointParameterivNV, NULL, _gloffset_PointParameterivNV),
 | 
			
		||||
    NAME_FUNC_OFFSET(18669, gl_dispatch_stub_749, gl_dispatch_stub_749, NULL, _gloffset_BlendEquationSeparateEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(18693, gl_dispatch_stub_749, gl_dispatch_stub_749, NULL, _gloffset_BlendEquationSeparateEXT),
 | 
			
		||||
    NAME_FUNC_OFFSET(-1, NULL, NULL, NULL, 0)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Mesa 3-D graphics library
 | 
			
		||||
 * Version:  6.1
 | 
			
		||||
 * Version:  7.0.1
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
 * copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
@@ -100,6 +100,11 @@ _mesa_validate_DrawElements(GLcontext *ctx,
 | 
			
		||||
                         (const GLubyte *) indices);
 | 
			
		||||
      }
 | 
			
		||||
   }
 | 
			
		||||
   else {
 | 
			
		||||
      /* not using a VBO */
 | 
			
		||||
      if (!indices)
 | 
			
		||||
         return GL_FALSE;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   if (ctx->Const.CheckArrayBounds) {
 | 
			
		||||
      /* find max array index */
 | 
			
		||||
@@ -170,6 +175,16 @@ _mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode,
 | 
			
		||||
       && !(ctx->VertexProgram._Enabled && ctx->Array.ArrayObj->VertexAttrib[0].Enabled))
 | 
			
		||||
      return GL_FALSE;
 | 
			
		||||
 | 
			
		||||
   /* Vertex buffer object tests */
 | 
			
		||||
   if (ctx->Array.ElementArrayBufferObj->Name) {
 | 
			
		||||
      /* XXX re-use code from above? */
 | 
			
		||||
   }
 | 
			
		||||
   else {
 | 
			
		||||
      /* not using VBO */
 | 
			
		||||
      if (!indices)
 | 
			
		||||
         return GL_FALSE;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   if (ctx->Const.CheckArrayBounds) {
 | 
			
		||||
      /* Find max array index.
 | 
			
		||||
       * We don't trust the user's start and end values.
 | 
			
		||||
 
 | 
			
		||||
@@ -764,6 +764,7 @@ pop_texture_group(GLcontext *ctx, const struct gl_texture_attrib *texAttrib)
 | 
			
		||||
         _mesa_TexParameteri(target, GL_TEXTURE_MAG_FILTER, obj->MagFilter);
 | 
			
		||||
         _mesa_TexParameterf(target, GL_TEXTURE_MIN_LOD, obj->MinLod);
 | 
			
		||||
         _mesa_TexParameterf(target, GL_TEXTURE_MAX_LOD, obj->MaxLod);
 | 
			
		||||
         _mesa_TexParameterf(target, GL_TEXTURE_LOD_BIAS, obj->LodBias);
 | 
			
		||||
         _mesa_TexParameteri(target, GL_TEXTURE_BASE_LEVEL, obj->BaseLevel);
 | 
			
		||||
         if (target != GL_TEXTURE_RECTANGLE_ARB)
 | 
			
		||||
            _mesa_TexParameteri(target, GL_TEXTURE_MAX_LEVEL, obj->MaxLevel);
 | 
			
		||||
 
 | 
			
		||||
@@ -5,9 +5,9 @@
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Mesa 3-D graphics library
 | 
			
		||||
 * Version:  6.5.2
 | 
			
		||||
 * Version:  7.0
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
 * copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
@@ -240,10 +240,7 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Bits per depth buffer value.  
 | 
			
		||||
 *
 | 
			
		||||
 * Any reasonable value up to 31 will work.  32 doesn't work because of integer
 | 
			
		||||
 * overflow problems in the rasterizer code.
 | 
			
		||||
 * Bits per depth buffer value (max is 32).
 | 
			
		||||
 */
 | 
			
		||||
#ifndef DEFAULT_SOFTWARE_DEPTH_BITS
 | 
			
		||||
#define DEFAULT_SOFTWARE_DEPTH_BITS 16
 | 
			
		||||
 
 | 
			
		||||
@@ -6,9 +6,9 @@
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Mesa 3-D graphics library
 | 
			
		||||
 * Version:  6.5
 | 
			
		||||
 * Version:  7.0
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
 * copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
@@ -1382,8 +1382,11 @@ check_compatible(const GLcontext *ctx, const GLframebuffer *buffer)
 | 
			
		||||
      return GL_FALSE;
 | 
			
		||||
   if (ctxvis->blueMask && ctxvis->blueMask != bufvis->blueMask)
 | 
			
		||||
      return GL_FALSE;
 | 
			
		||||
#if 0
 | 
			
		||||
   /* disabled (see bug 11161) */
 | 
			
		||||
   if (ctxvis->depthBits && ctxvis->depthBits != bufvis->depthBits)
 | 
			
		||||
      return GL_FALSE;
 | 
			
		||||
#endif
 | 
			
		||||
   if (ctxvis->stencilBits && ctxvis->stencilBits != bufvis->stencilBits)
 | 
			
		||||
      return GL_FALSE;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Mesa 3-D graphics library
 | 
			
		||||
 * Version:  6.5.1
 | 
			
		||||
 * Version:  7.0.1
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
 | 
			
		||||
 * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
 | 
			
		||||
 *
 | 
			
		||||
 * Permission is hereby granted, free of charge, to any person obtaining a
 | 
			
		||||
 * copy of this software and associated documentation files (the "Software"),
 | 
			
		||||
@@ -2716,21 +2716,20 @@ save_PolygonMode(GLenum face, GLenum mode)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Polygon stipple must have been upacked already!
 | 
			
		||||
 */
 | 
			
		||||
static void GLAPIENTRY
 | 
			
		||||
save_PolygonStipple(const GLubyte * pattern)
 | 
			
		||||
{
 | 
			
		||||
   GET_CURRENT_CONTEXT(ctx);
 | 
			
		||||
   GLvoid *image = unpack_image(2, 32, 32, 1, GL_COLOR_INDEX, GL_BITMAP,
 | 
			
		||||
                                pattern, &ctx->Unpack);
 | 
			
		||||
   Node *n;
 | 
			
		||||
   ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
 | 
			
		||||
   n = ALLOC_INSTRUCTION(ctx, OPCODE_POLYGON_STIPPLE, 1);
 | 
			
		||||
   if (n) {
 | 
			
		||||
      void *data;
 | 
			
		||||
      n[1].data = _mesa_malloc(32 * 4);
 | 
			
		||||
      data = n[1].data;         /* This needed for Acorn compiler */
 | 
			
		||||
      MEMCPY(data, pattern, 32 * 4);
 | 
			
		||||
      n[1].data = image; 
 | 
			
		||||
   }
 | 
			
		||||
   else if (image) {
 | 
			
		||||
      _mesa_free(image);
 | 
			
		||||
   }
 | 
			
		||||
   if (ctx->ExecuteFlag) {
 | 
			
		||||
      CALL_PolygonStipple(ctx->Exec, ((GLubyte *) pattern));
 | 
			
		||||
@@ -6169,7 +6168,12 @@ execute_list(GLcontext *ctx, GLuint list)
 | 
			
		||||
            CALL_PolygonMode(ctx->Exec, (n[1].e, n[2].e));
 | 
			
		||||
            break;
 | 
			
		||||
         case OPCODE_POLYGON_STIPPLE:
 | 
			
		||||
            CALL_PolygonStipple(ctx->Exec, ((GLubyte *) n[1].data));
 | 
			
		||||
            {
 | 
			
		||||
               const struct gl_pixelstore_attrib save = ctx->Unpack;
 | 
			
		||||
               ctx->Unpack = ctx->DefaultPacking;
 | 
			
		||||
               CALL_PolygonStipple(ctx->Exec, ((GLubyte *) n[1].data));
 | 
			
		||||
               ctx->Unpack = save;      /* restore */
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
         case OPCODE_POLYGON_OFFSET:
 | 
			
		||||
            CALL_PolygonOffset(ctx->Exec, (n[1].f, n[2].f));
 | 
			
		||||
 
 | 
			
		||||
@@ -91,6 +91,9 @@
 | 
			
		||||
#  pragma disable_message(201) /* Disable unreachable code warnings */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef WGLAPI
 | 
			
		||||
#	undef WGLAPI
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) && !defined(BUILD_FOR_SNAP)
 | 
			
		||||
#  if !defined(__GNUC__) /* mingw environment */
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Mesa 3-D graphics library
 | 
			
		||||
 * Version:  7.0
 | 
			
		||||
 * Version:  7.0.1
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
 | 
			
		||||
 *
 | 
			
		||||
@@ -850,7 +850,7 @@ _mesa_unpack_bitmap( GLint width, GLint height, const GLubyte *pixels,
 | 
			
		||||
         return NULL;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (packing->SkipPixels == 0) {
 | 
			
		||||
      if ((packing->SkipPixels & 7) == 0) {
 | 
			
		||||
         _mesa_memcpy( dst, src, width_in_bytes );
 | 
			
		||||
         if (packing->LsbFirst) {
 | 
			
		||||
            flip_bytes( dst, width_in_bytes );
 | 
			
		||||
@@ -942,7 +942,7 @@ _mesa_pack_bitmap( GLint width, GLint height, const GLubyte *source,
 | 
			
		||||
      if (!dst)
 | 
			
		||||
         return;
 | 
			
		||||
 | 
			
		||||
      if (packing->SkipPixels == 0) {
 | 
			
		||||
      if ((packing->SkipPixels & 7) == 0) {
 | 
			
		||||
         _mesa_memcpy( dst, src, width_in_bytes );
 | 
			
		||||
         if (packing->LsbFirst) {
 | 
			
		||||
            flip_bytes( dst, width_in_bytes );
 | 
			
		||||
@@ -961,20 +961,20 @@ _mesa_pack_bitmap( GLint width, GLint height, const GLubyte *source,
 | 
			
		||||
               if (*s & srcMask) {
 | 
			
		||||
                  *d |= dstMask;
 | 
			
		||||
               }
 | 
			
		||||
               if (srcMask == 128) {
 | 
			
		||||
                  srcMask = 1;
 | 
			
		||||
               if (srcMask == 1) {
 | 
			
		||||
                  srcMask = 128;
 | 
			
		||||
                  s++;
 | 
			
		||||
               }
 | 
			
		||||
               else {
 | 
			
		||||
                  srcMask = srcMask << 1;
 | 
			
		||||
                  srcMask = srcMask >> 1;
 | 
			
		||||
               }
 | 
			
		||||
               if (dstMask == 1) {
 | 
			
		||||
                  dstMask = 128;
 | 
			
		||||
               if (dstMask == 128) {
 | 
			
		||||
                  dstMask = 1;
 | 
			
		||||
                  d++;
 | 
			
		||||
                  *d = 0;
 | 
			
		||||
               }
 | 
			
		||||
               else {
 | 
			
		||||
                  dstMask = dstMask >> 1;
 | 
			
		||||
                  dstMask = dstMask << 1;
 | 
			
		||||
               }
 | 
			
		||||
            }
 | 
			
		||||
         }
 | 
			
		||||
@@ -3648,11 +3648,13 @@ _mesa_unpack_stencil_span( const GLcontext *ctx, GLuint n,
 | 
			
		||||
    * Try simple cases first
 | 
			
		||||
    */
 | 
			
		||||
   if (transferOps == 0 &&
 | 
			
		||||
       !ctx->Pixel.MapStencilFlag &&
 | 
			
		||||
       srcType == GL_UNSIGNED_BYTE &&
 | 
			
		||||
       dstType == GL_UNSIGNED_BYTE) {
 | 
			
		||||
      _mesa_memcpy(dest, source, n * sizeof(GLubyte));
 | 
			
		||||
   }
 | 
			
		||||
   else if (transferOps == 0 &&
 | 
			
		||||
            !ctx->Pixel.MapStencilFlag &&
 | 
			
		||||
            srcType == GL_UNSIGNED_INT &&
 | 
			
		||||
            dstType == GL_UNSIGNED_INT &&
 | 
			
		||||
            !srcPacking->SwapBytes) {
 | 
			
		||||
@@ -3668,19 +3670,17 @@ _mesa_unpack_stencil_span( const GLcontext *ctx, GLuint n,
 | 
			
		||||
      extract_uint_indexes(n, indexes, GL_STENCIL_INDEX, srcType, source,
 | 
			
		||||
                           srcPacking);
 | 
			
		||||
 | 
			
		||||
      if (transferOps) {
 | 
			
		||||
         if (transferOps & IMAGE_SHIFT_OFFSET_BIT) {
 | 
			
		||||
            /* shift and offset indexes */
 | 
			
		||||
            shift_and_offset_ci(ctx, n, indexes);
 | 
			
		||||
         }
 | 
			
		||||
      if (transferOps & IMAGE_SHIFT_OFFSET_BIT) {
 | 
			
		||||
         /* shift and offset indexes */
 | 
			
		||||
         shift_and_offset_ci(ctx, n, indexes);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
         if (ctx->Pixel.MapStencilFlag) {
 | 
			
		||||
            /* Apply stencil lookup table */
 | 
			
		||||
            GLuint mask = ctx->PixelMaps.StoS.Size - 1;
 | 
			
		||||
            GLuint i;
 | 
			
		||||
            for (i=0;i<n;i++) {
 | 
			
		||||
               indexes[i] = ctx->PixelMaps.StoS.Map[ indexes[i] & mask ];
 | 
			
		||||
            }
 | 
			
		||||
      if (ctx->Pixel.MapStencilFlag) {
 | 
			
		||||
         /* Apply stencil lookup table */
 | 
			
		||||
         const GLuint mask = ctx->PixelMaps.StoS.Size - 1;
 | 
			
		||||
         GLuint i;
 | 
			
		||||
         for (i = 0; i < n; i++) {
 | 
			
		||||
            indexes[i] = ctx->PixelMaps.StoS.Map[ indexes[i] & mask ];
 | 
			
		||||
         }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@@ -3733,7 +3733,7 @@ _mesa_pack_stencil_span( const GLcontext *ctx, GLuint n,
 | 
			
		||||
 | 
			
		||||
   switch (dstType) {
 | 
			
		||||
   case GL_UNSIGNED_BYTE:
 | 
			
		||||
      if (sizeof(GLstencil) == 8) {
 | 
			
		||||
      if (sizeof(GLstencil) == 1) {
 | 
			
		||||
         _mesa_memcpy( dest, source, n );
 | 
			
		||||
      }
 | 
			
		||||
      else {
 | 
			
		||||
@@ -3745,14 +3745,11 @@ _mesa_pack_stencil_span( const GLcontext *ctx, GLuint n,
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
   case GL_BYTE:
 | 
			
		||||
      if (sizeof(GLstencil) == 8) {
 | 
			
		||||
         _mesa_memcpy( dest, source, n );
 | 
			
		||||
      }
 | 
			
		||||
      else {
 | 
			
		||||
      {
 | 
			
		||||
         GLbyte *dst = (GLbyte *) dest;
 | 
			
		||||
         GLuint i;
 | 
			
		||||
         for (i=0;i<n;i++) {
 | 
			
		||||
            dst[i] = (GLbyte) source[i];
 | 
			
		||||
            dst[i] = (GLbyte) (source[i] & 0x7f);
 | 
			
		||||
         }
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
@@ -3878,10 +3875,20 @@ _mesa_pack_stencil_span( const GLcontext *ctx, GLuint n,
 | 
			
		||||
                    SWAP4BYTE(value);                                   \
 | 
			
		||||
                }                                                       \
 | 
			
		||||
            }                                                           \
 | 
			
		||||
            depthValues[i] = CLAMP(GLTYPE2FLOAT(value), 0.0F, 1.0F);    \
 | 
			
		||||
            depthValues[i] = GLTYPE2FLOAT(value);                       \
 | 
			
		||||
        }                                                               \
 | 
			
		||||
    } while (0)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Unpack a row of depth/z values from memory, returning GLushort, GLuint
 | 
			
		||||
 * or GLfloat values.
 | 
			
		||||
 * The glPixelTransfer (scale/bias) params will be applied.
 | 
			
		||||
 *
 | 
			
		||||
 * \param dstType  one of GL_UNSIGNED_SHORT, GL_UNSIGNED_INT, GL_FLOAT
 | 
			
		||||
 * \param depthScale  scale factor (max value) for returned GLushort or
 | 
			
		||||
 *                    GLuint values (ignored for GLfloat).
 | 
			
		||||
 */
 | 
			
		||||
void
 | 
			
		||||
_mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
 | 
			
		||||
                         GLenum dstType, GLvoid *dest, GLfloat depthScale,
 | 
			
		||||
@@ -3889,6 +3896,7 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
 | 
			
		||||
                         const struct gl_pixelstore_attrib *srcPacking )
 | 
			
		||||
{
 | 
			
		||||
   GLfloat depthTemp[MAX_WIDTH], *depthValues;
 | 
			
		||||
   GLboolean needClamp = GL_FALSE;
 | 
			
		||||
 | 
			
		||||
   /* Look for special cases first.
 | 
			
		||||
    * Not only are these faster, they're less prone to numeric conversion
 | 
			
		||||
@@ -3906,7 +3914,9 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
 | 
			
		||||
         }
 | 
			
		||||
         return;
 | 
			
		||||
      }
 | 
			
		||||
      if (srcType == GL_UNSIGNED_SHORT && dstType == GL_UNSIGNED_INT) {
 | 
			
		||||
      if (srcType == GL_UNSIGNED_SHORT
 | 
			
		||||
          && dstType == GL_UNSIGNED_INT
 | 
			
		||||
          && depthScale == (GLfloat) 0xffffffff) {
 | 
			
		||||
         const GLushort *src = (const GLushort *) source;
 | 
			
		||||
         GLuint *dst = (GLuint *) dest;
 | 
			
		||||
         GLuint i;
 | 
			
		||||
@@ -3918,7 +3928,7 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
 | 
			
		||||
      /* XXX may want to add additional cases here someday */
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   /* general case path */
 | 
			
		||||
   /* general case path follows */
 | 
			
		||||
 | 
			
		||||
   if (dstType == GL_FLOAT) {
 | 
			
		||||
      depthValues = (GLfloat *) dest;
 | 
			
		||||
@@ -3927,29 +3937,31 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
 | 
			
		||||
      depthValues = depthTemp;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   /* XXX we need to obey srcPacking->SwapBytes here!!! */
 | 
			
		||||
   (void) srcPacking;
 | 
			
		||||
 | 
			
		||||
   /* convert incoming values to GLfloat */
 | 
			
		||||
   /* Convert incoming values to GLfloat.  Some conversions will require
 | 
			
		||||
    * clamping, below.
 | 
			
		||||
    */
 | 
			
		||||
   switch (srcType) {
 | 
			
		||||
      case GL_BYTE:
 | 
			
		||||
          DEPTH_VALUES(GLbyte, BYTE_TO_FLOAT);
 | 
			
		||||
          break;
 | 
			
		||||
         DEPTH_VALUES(GLbyte, BYTE_TO_FLOAT);
 | 
			
		||||
         needClamp = GL_TRUE;
 | 
			
		||||
         break;
 | 
			
		||||
      case GL_UNSIGNED_BYTE:
 | 
			
		||||
          DEPTH_VALUES(GLubyte, UBYTE_TO_FLOAT);
 | 
			
		||||
          break;
 | 
			
		||||
         DEPTH_VALUES(GLubyte, UBYTE_TO_FLOAT);
 | 
			
		||||
         break;
 | 
			
		||||
      case GL_SHORT:
 | 
			
		||||
          DEPTH_VALUES(GLshort, SHORT_TO_FLOAT);
 | 
			
		||||
          break;
 | 
			
		||||
         DEPTH_VALUES(GLshort, SHORT_TO_FLOAT);
 | 
			
		||||
         needClamp = GL_TRUE;
 | 
			
		||||
         break;
 | 
			
		||||
      case GL_UNSIGNED_SHORT:
 | 
			
		||||
          DEPTH_VALUES(GLushort, USHORT_TO_FLOAT);
 | 
			
		||||
          break;
 | 
			
		||||
         DEPTH_VALUES(GLushort, USHORT_TO_FLOAT);
 | 
			
		||||
         break;
 | 
			
		||||
      case GL_INT:
 | 
			
		||||
          DEPTH_VALUES(GLint, INT_TO_FLOAT);
 | 
			
		||||
          break;
 | 
			
		||||
         DEPTH_VALUES(GLint, INT_TO_FLOAT);
 | 
			
		||||
         needClamp = GL_TRUE;
 | 
			
		||||
         break;
 | 
			
		||||
      case GL_UNSIGNED_INT:
 | 
			
		||||
          DEPTH_VALUES(GLuint, UINT_TO_FLOAT);
 | 
			
		||||
          break;
 | 
			
		||||
         DEPTH_VALUES(GLuint, UINT_TO_FLOAT);
 | 
			
		||||
         break;
 | 
			
		||||
      case GL_UNSIGNED_INT_24_8_EXT: /* GL_EXT_packed_depth_stencil */
 | 
			
		||||
         if (dstType == GL_UNSIGNED_INT &&
 | 
			
		||||
             depthScale == (GLfloat) 0xffffff &&
 | 
			
		||||
@@ -3981,19 +3993,21 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
 | 
			
		||||
         }
 | 
			
		||||
         break;
 | 
			
		||||
      case GL_FLOAT:
 | 
			
		||||
          DEPTH_VALUES(GLfloat, 1*);
 | 
			
		||||
          break;
 | 
			
		||||
         DEPTH_VALUES(GLfloat, 1*);
 | 
			
		||||
         needClamp = GL_TRUE;
 | 
			
		||||
         break;
 | 
			
		||||
      case GL_HALF_FLOAT_ARB:
 | 
			
		||||
         {
 | 
			
		||||
            GLuint i;
 | 
			
		||||
            const GLhalfARB *src = (const GLhalfARB *) source;
 | 
			
		||||
            for (i = 0; i < n; i++) {
 | 
			
		||||
                GLhalfARB value = src[i];
 | 
			
		||||
                if (srcPacking->SwapBytes) {
 | 
			
		||||
                    SWAP2BYTE(value);
 | 
			
		||||
                }
 | 
			
		||||
               GLhalfARB value = src[i];
 | 
			
		||||
               if (srcPacking->SwapBytes) {
 | 
			
		||||
                  SWAP2BYTE(value);
 | 
			
		||||
               }
 | 
			
		||||
               depthValues[i] = _mesa_half_to_float(value);
 | 
			
		||||
            }
 | 
			
		||||
            needClamp = GL_TRUE;
 | 
			
		||||
         }
 | 
			
		||||
         break;
 | 
			
		||||
      default:
 | 
			
		||||
@@ -4001,12 +4015,30 @@ _mesa_unpack_depth_span( const GLcontext *ctx, GLuint n,
 | 
			
		||||
         return;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
   /* apply depth scale and bias and clamp to [0,1] */
 | 
			
		||||
   if (ctx->Pixel.DepthScale != 1.0 || ctx->Pixel.DepthBias != 0.0) {
 | 
			
		||||
      _mesa_scale_and_bias_depth(ctx, n, depthValues);
 | 
			
		||||
   /* apply depth scale and bias */
 | 
			
		||||
   {
 | 
			
		||||
      const GLfloat scale = ctx->Pixel.DepthScale;
 | 
			
		||||
      const GLfloat bias = ctx->Pixel.DepthBias;
 | 
			
		||||
      if (scale != 1.0 || bias != 0.0) {
 | 
			
		||||
         GLuint i;
 | 
			
		||||
         for (i = 0; i < n; i++) {
 | 
			
		||||
            depthValues[i] = depthValues[i] * scale + bias;
 | 
			
		||||
         }
 | 
			
		||||
         needClamp = GL_TRUE;
 | 
			
		||||
      }
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   /* clamp to [0, 1] */
 | 
			
		||||
   if (needClamp) {
 | 
			
		||||
      GLuint i;
 | 
			
		||||
      for (i = 0; i < n; i++) {
 | 
			
		||||
         depthValues[i] = CLAMP(depthValues[i], 0.0, 1.0);
 | 
			
		||||
      }
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
   /*
 | 
			
		||||
    * Convert values to dstType
 | 
			
		||||
    */
 | 
			
		||||
   if (dstType == GL_UNSIGNED_INT) {
 | 
			
		||||
      GLuint *zValues = (GLuint *) dest;
 | 
			
		||||
      GLuint i;
 | 
			
		||||
 
 | 
			
		||||
@@ -575,7 +575,11 @@ _mesa_ffs(int i)
 | 
			
		||||
 *          if no bits set.
 | 
			
		||||
 */
 | 
			
		||||
int
 | 
			
		||||
#ifdef __MINGW32__
 | 
			
		||||
_mesa_ffsll(long val)
 | 
			
		||||
#else
 | 
			
		||||
_mesa_ffsll(long long val)
 | 
			
		||||
#endif
 | 
			
		||||
{
 | 
			
		||||
#ifdef ffsll
 | 
			
		||||
   return ffsll(val);
 | 
			
		||||
 
 | 
			
		||||
@@ -700,7 +700,11 @@ extern int
 | 
			
		||||
_mesa_ffs(int i);
 | 
			
		||||
 | 
			
		||||
extern int
 | 
			
		||||
#ifdef __MINGW32__
 | 
			
		||||
_mesa_ffsll(long i);
 | 
			
		||||
#else
 | 
			
		||||
_mesa_ffsll(long long i);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
extern unsigned int
 | 
			
		||||
_mesa_bitcount(unsigned int n);
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user