Compare commits
308 Commits
mesa-6.5.3
...
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 | ||
|
b0fe0d8a55 | ||
|
c128c3ce8c | ||
|
6efdf648f5 | ||
|
6a587c0124 | ||
|
524c3336c4 | ||
|
0e7e211055 | ||
|
4e641bf3e9 | ||
|
2189ff5e51 | ||
|
33a73466ae | ||
|
13c0abd8a7 | ||
|
82de92c0fb | ||
|
e4b8481f39 | ||
|
b5990cec90 | ||
|
d93642251e | ||
|
c66fd808ac | ||
|
73449270bb | ||
|
6f56e68ee3 | ||
|
65fae19383 | ||
|
b78aec5767 | ||
|
6bae7d40f7 | ||
|
5f1f1f5704 | ||
|
93881edb46 | ||
|
56b99ace19 | ||
|
3aad47679e | ||
|
dac5303692 | ||
|
64b03f33ee | ||
|
b8b0dd1e20 | ||
|
93f9e61f43 | ||
|
f405fbb36d | ||
|
5a09ea01e0 | ||
|
98d25a5a28 | ||
|
0aa998b2ab | ||
|
b6087270a0 | ||
|
3f709f16ef | ||
|
67363327e5 | ||
|
bcaf8fc7b1 | ||
|
ef29d6af6c | ||
|
6a69bb5864 | ||
|
cbd29adbc8 | ||
|
c729e67321 | ||
|
5b23d36613 | ||
|
a87390504f | ||
|
cc358d861d | ||
|
749e093e33 | ||
|
eab6e16522 | ||
|
1b39be3790 | ||
|
69ff5a3dbc | ||
|
01ec508c7f | ||
|
d4e3b0b2c2 | ||
|
b63c70666f | ||
|
c33c00764c | ||
|
6c342ad859 | ||
|
86e4f52f3c | ||
|
f0707c789a | ||
|
aed53ba525 | ||
|
3dec7c57b0 | ||
|
544e441f53 | ||
|
fa546c367d | ||
|
64a6a50155 | ||
|
c103453d4f | ||
|
d7e3d1dc42 | ||
|
02e44e41c8 | ||
|
eed67a6e3e | ||
|
e856edb279 | ||
|
58239d2ae3 | ||
|
2f6a0840c4 | ||
|
c9e723e501 | ||
|
87a980a795 | ||
|
e282f89a38 | ||
|
e2e4b60c7d | ||
|
58dacc8df1 | ||
|
b470189378 | ||
|
574bf4d346 | ||
|
795ebb1a3b | ||
|
d0be8b959a | ||
|
672ecba175 | ||
|
0dcea4bf8e | ||
|
16c503f39a | ||
|
4d5d4e1f97 | ||
|
a9ab36b8f2 | ||
|
88288b614e | ||
|
a154706061 | ||
|
6fe41a4c01 | ||
|
f4a2b9f83d | ||
|
56c2f7bb42 | ||
|
df747eb354 | ||
|
ff7a41a159 | ||
|
01fdb34b39 | ||
|
3c9e5cb0bd | ||
|
a6aa1f8016 | ||
|
967c2d220d | ||
|
0e6b7eb9c0 | ||
|
ed42bd6e20 | ||
|
2db667290a | ||
|
cea0c2b144 | ||
|
2b5ef29a7b | ||
|
4ed59c6012 | ||
|
7e7b1f7c4d | ||
|
c48e4c6f09 | ||
|
4f20fe8a93 | ||
|
d28f6d9176 | ||
|
fe6a2c4295 | ||
|
faf47d9f84 | ||
|
f9828f5c4f | ||
|
7b165de5f8 | ||
|
62ef001de7 | ||
|
76d7b62cd2 | ||
|
901fc0de18 | ||
|
c970811dab | ||
|
bb97694fad | ||
|
516259d609 | ||
|
3e4302fe3b | ||
|
dcc8e5f4c1 | ||
|
32c8d002d0 | ||
|
c9b87b8ad8 | ||
|
5d61cfd1fd | ||
|
93e957cc65 | ||
|
3eae496deb | ||
|
81c6516af1 | ||
|
9e91351826 | ||
|
328b307e2f | ||
|
d316b4dc22 | ||
|
f0126a76ac | ||
|
b8640db021 | ||
|
28b47110b6 | ||
|
fe2c58d2d5 | ||
|
4917955205 | ||
|
eca50a27e1 | ||
|
0950e9727e | ||
|
504fafe389 | ||
|
72608aedc3 | ||
|
be56660ba0 | ||
|
36c8bc6141 | ||
|
5c8296a6ab | ||
|
6665658a56 | ||
|
204bc4e441 | ||
|
e90ad3dbbb | ||
|
8d62afdb6a | ||
|
59494bafb4 | ||
|
33939fd29b | ||
|
4960af08ad | ||
|
f5b0cafbb1 | ||
|
c578354642 | ||
|
da37ac5ee7 | ||
|
ed2fddc98e | ||
|
58eaf0acca | ||
|
d132f7245d | ||
|
73bc8b63ac | ||
|
377ce9e074 | ||
|
f1d785188b | ||
|
313c4c2643 | ||
|
fbeae4f70c | ||
|
9301a6a325 | ||
|
6c036812be | ||
|
c6abbbfd02 | ||
|
8a7f474c69 | ||
|
47e33a27df | ||
|
401629c721 | ||
|
f1770c3210 | ||
|
8130a4fe98 | ||
|
8f1c63b263 | ||
|
857ebc6d47 | ||
|
660bdc616b | ||
|
88ae491bd2 | ||
|
8445960d9f | ||
|
74cae00c0e | ||
|
56d9663574 | ||
|
81d1a04e04 | ||
|
62cbe6c3f3 | ||
|
16cec9f767 | ||
|
5e2a66466d | ||
|
b3378f6cc5 | ||
|
91948f99dd | ||
|
ae5f67575d | ||
|
e75fbd3f91 | ||
|
a6dad578b5 | ||
|
c6443eb1a3 | ||
|
121533defb | ||
|
3cddba688d | ||
|
dc881e1909 | ||
|
2dfb03beb2 | ||
|
18cfe0c801 | ||
|
60d136f63c | ||
|
62da6a1b3e | ||
|
77e7535c0f | ||
|
5c1b53d58d | ||
|
b2f1d6422b | ||
|
99f24c8d17 | ||
|
04c401c91e | ||
|
03f201d935 | ||
|
594b5ad87d | ||
|
bfd5cf72c4 | ||
|
7559364027 | ||
|
65faf02367 | ||
|
c409dbcae3 | ||
|
cbf280dc26 | ||
|
af0ae93863 | ||
|
bcc3baadba | ||
|
4ca7c804db | ||
|
bfaf6156fb | ||
|
d741b10be6 | ||
|
e371a5f084 | ||
|
af846712fd | ||
|
c4615abb11 | ||
|
430e036413 | ||
|
502ebe90e8 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,7 +1,8 @@
|
||||
*~
|
||||
*.a
|
||||
*.o
|
||||
*.so
|
||||
*.sw[a-z]
|
||||
*~
|
||||
depend
|
||||
depend.bak
|
||||
lib
|
||||
|
42
Makefile
42
Makefile
@@ -1,5 +1,7 @@
|
||||
# Top-level Mesa makefile
|
||||
|
||||
SHELL = /bin/bash
|
||||
|
||||
TOP = .
|
||||
|
||||
SUBDIRS = src progs
|
||||
@@ -7,7 +9,9 @@ SUBDIRS = src progs
|
||||
|
||||
default: $(TOP)/configs/current
|
||||
@for dir in $(SUBDIRS) ; do \
|
||||
(cd $$dir ; $(MAKE)) || exit 1 ; \
|
||||
if [ -d $$dir ] ; then \
|
||||
(cd $$dir && $(MAKE)) || exit 1 ; \
|
||||
fi \
|
||||
done
|
||||
|
||||
|
||||
@@ -16,7 +20,9 @@ doxygen:
|
||||
|
||||
clean:
|
||||
@for dir in $(SUBDIRS) ; do \
|
||||
(cd $$dir ; $(MAKE) clean) ; \
|
||||
if [ -d $$dir ] ; then \
|
||||
(cd $$dir && $(MAKE) clean) ; \
|
||||
fi \
|
||||
done
|
||||
|
||||
|
||||
@@ -34,9 +40,12 @@ realclean:
|
||||
|
||||
install:
|
||||
@for dir in $(SUBDIRS) ; do \
|
||||
(cd $$dir ; $(MAKE) install) || exit 1 ; \
|
||||
if [ -d $$dir ] ; then \
|
||||
(cd $$dir && $(MAKE) install) || exit 1 ; \
|
||||
fi \
|
||||
done
|
||||
|
||||
|
||||
# DirectFBGL module installation
|
||||
linux-directfb-install:
|
||||
cd src/mesa/drivers/directfb && $(MAKE) install
|
||||
@@ -60,6 +69,7 @@ aix-64-static \
|
||||
aix-gcc \
|
||||
aix-static \
|
||||
beos \
|
||||
bluegene-osmesa \
|
||||
darwin \
|
||||
darwin-static \
|
||||
darwin-static-x86ppc \
|
||||
@@ -144,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" ; \
|
||||
@@ -155,10 +166,10 @@ ultrix-gcc:
|
||||
|
||||
# Rules for making release tarballs
|
||||
|
||||
DIRECTORY = Mesa-6.5.3
|
||||
LIB_NAME = MesaLib-6.5.3
|
||||
DEMO_NAME = MesaDemos-6.5.3
|
||||
GLUT_NAME = MesaGLUT-6.5.3
|
||||
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* \
|
||||
@@ -222,6 +233,9 @@ MAIN_FILES = \
|
||||
$(DIRECTORY)/src/mesa/shader/slang/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/shader/slang/sources \
|
||||
$(DIRECTORY)/src/mesa/shader/slang/library/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/shader/slang/library/*.gc \
|
||||
$(DIRECTORY)/src/mesa/shader/slang/library/*.syn \
|
||||
$(DIRECTORY)/src/mesa/shader/slang/library/Makefile \
|
||||
$(DIRECTORY)/src/mesa/swrast/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/swrast/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/swrast/sources \
|
||||
@@ -278,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 \
|
||||
@@ -318,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 \
|
||||
@@ -362,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)
|
||||
|
@@ -100,6 +100,14 @@ do
|
||||
-L*)
|
||||
DEPS="$DEPS $1"
|
||||
;;
|
||||
-pthread)
|
||||
# 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
|
@@ -8,9 +8,9 @@
|
||||
CONFIG_NAME = default
|
||||
|
||||
# Version info
|
||||
MESA_MAJOR=6
|
||||
MESA_MINOR=5
|
||||
MESA_TINY=3
|
||||
MESA_MAJOR=7
|
||||
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
|
||||
|
@@ -67,4 +67,4 @@ WINDOW_SYSTEM=dri
|
||||
# gamma are missing because they have not been converted to use the new
|
||||
# interface.
|
||||
DRI_DIRS = i810 i915tex i915 i965 mach64 mga r128 r200 r300 radeon s3v \
|
||||
savage sis tdfx trident unichrome ffb nouveau
|
||||
savage sis tdfx trident unichrome ffb
|
||||
|
@@ -15,6 +15,13 @@ PIC_FLAGS = -fPIC
|
||||
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
|
||||
ARCH_FLAGS ?=
|
||||
|
||||
# DRM and pciaccess
|
||||
LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
|
||||
LIBDRM_LIB = `pkg-config --libs libdrm`
|
||||
PCIACCESS_CFLAGS = `pkg-config --cflags pciaccess`
|
||||
PCIACCESS_LIB = `pkg-config --libs pciaccess`
|
||||
|
||||
|
||||
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
|
||||
-D_BSD_SOURCE -D_GNU_SOURCE -DHAVE_POSIX_MEMALIGN \
|
||||
-DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DDRM_USE_MALLOC -DIN_DRI_DRIVER
|
||||
@@ -28,7 +35,7 @@ CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
|
||||
ASM_SOURCES =
|
||||
|
||||
# Library/program dependencies
|
||||
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl -L$(TOP)/$(LIB_DIR)
|
||||
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl -L$(TOP)/$(LIB_DIR) $(PCIACCESS_LIB)
|
||||
GL_LIB_DEPS = -lm -lpthread -ldl
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
@@ -39,5 +46,5 @@ SRC_DIRS = glx/mini mesa glu glut/mini
|
||||
DRIVER_DIRS = dri
|
||||
PROGRAM_DIRS = miniglx
|
||||
|
||||
#DRI_DIRS = ffb gamma sis savage
|
||||
DRI_DIRS = i810 i915 mach64 mga r128 r200 radeon tdfx unichrome fb
|
||||
#DRI_DIRS = ffb gamma sis savage tdfx unichrome fb
|
||||
DRI_DIRS = i810 i915tex i915 mach64 mga r128 r200 radeon
|
||||
|
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,19 +88,6 @@ driver (such as <code>radeon_dri.so</code>) at runtime. The
|
||||
environment variable <code>LIBGL_DRIVERS_PATH</code> should name the
|
||||
directory where these modules are located.<br>
|
||||
<br>
|
||||
Prior to running a MiniGXL application, the following kernel modules
|
||||
must be installed:<br>
|
||||
<br>
|
||||
<div style="margin-left: 40px;"> agpgart.o<br>
|
||||
radeonfb.o (assuming Radeon hardware)<br>
|
||||
radeon.o (assuming Radeon hardware)<br>
|
||||
</div>
|
||||
<code></code> <br>
|
||||
Finally, MiniGLX reads a configuration file (by default,<code>
|
||||
/etc/miniglx.conf</code>) to determine basic configuration information.
|
||||
The configuration file may also be located in the directory
|
||||
specified by the <code>MINIGLX_CONF</code> environment variable).<br>
|
||||
<br>
|
||||
The remainder of this section describes the MiniGLX API functions.<br>
|
||||
<br>
|
||||
<h2>3.1 Initialization</h2>
|
||||
|
@@ -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!
|
||||
|
||||
|
||||
|
||||
*********************************************************************************
|
@@ -71,8 +71,8 @@ a:visited {
|
||||
<li><a href="helpwanted.html" target="MainFrame">Help Wanted</a>
|
||||
<li><a href="devinfo.html" target="MainFrame">Development Notes</a>
|
||||
<li><a href="sourcedocs.html" target="MainFrame">Source Documentation</a>
|
||||
<li><a href="subset.html" target="MainFrame">Subset Information</a>
|
||||
<li><a href="fbdev-dri.html" target="MainFrame">fbdev/DRI Environment</a>
|
||||
<li><a href="subset.html" target="MainFrame">Mesa Subset Driver</a>
|
||||
<li><a href="glfbdev-driver.html" target="MainFrame">glFBDev Driver</a>
|
||||
<LI><A HREF="dispatch.html" target="MainFrame">GL Dispatch</A>
|
||||
</ul>
|
||||
|
@@ -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>
|
||||
|
@@ -12,161 +12,77 @@
|
||||
<H1>1. Introduction</H1>
|
||||
|
||||
<p>
|
||||
The fbdev/DRI sub-project within Mesa brings hardware accelerated OpenGL
|
||||
rendering to the Linux fbdev environment.
|
||||
The X Window System / XFree86 is not needed.
|
||||
The fbdev/DRI environment supports hardware-accelerated 3D rendering without
|
||||
the X window system. This is typically used for embedded applications.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Basically, the <a href="http://dri.sf.net/">DRI</a> drivers for hardware
|
||||
accelerated OpenGL for XFree86 have been ported to fbdev so that X is
|
||||
not needed.
|
||||
This means fbdev/DRI works in full-screen mode only.
|
||||
Contributors to this project include Jon Smirl, Keith Whitwell and Dave Airlie.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
DRI driver writers may find this simplified environment easier to work in,
|
||||
compared to the full XFree86/DRI environment.
|
||||
Applications in the fbdev/DRI environment use
|
||||
the <a href="MiniGXL.html"> MiniGLX</a> interface to choose pixel
|
||||
formats, create rendering contexts, etc. It's a subset of the GLX and
|
||||
Xlib interfaces allowing some degree of application portability between
|
||||
the X and X-less environments.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Much of the work for this project has been done by Jon Smirl and
|
||||
Keith Whitwell.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To use fbdev/DRI, you'll need a Linux 2.4 or 2.6 kernel.
|
||||
</p>
|
||||
|
||||
<h3>Background Info</h3>
|
||||
|
||||
<p>
|
||||
The Mesa-based DRI drivers used to be hosted in the DRI tree (which is
|
||||
basically a copy of the XFree86 tree).
|
||||
Since the Mesa-based DRI drivers are moreso "Mesa drivers" than "XFree86
|
||||
drivers" and the fact that with some work, the drivers could be used
|
||||
without X, the driver code was moved into the Mesa tree.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
So now the DRI drivers can be compiled for two different environments:
|
||||
fbdev and XFree86.
|
||||
To build the drivers for XFree86, one has to download/build the DRI
|
||||
source tree.
|
||||
Eventually, we'd like to be able to build the drivers for XFree86 outside
|
||||
of the XFree86/DRI trees.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<h1>2. Compilation</h1>
|
||||
|
||||
<h2>2.1 Compiling the DRM modules</h2>
|
||||
|
||||
<p>
|
||||
First, you'll need the DRM (Direct Rendering Manager) kernel module sources.
|
||||
They're found in a module of the DRI CVS tree.
|
||||
To obtain the code do the following:
|
||||
You'll need the DRM and pciaccess libraries. Check with:
|
||||
</p>
|
||||
<pre>
|
||||
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri login
|
||||
</pre>
|
||||
<p>
|
||||
Press Enter/Return when prompted for a password. Then,
|
||||
</p>
|
||||
<pre>
|
||||
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri co drm
|
||||
pkg-config --modversion libdrm
|
||||
pkg-config --modversion pciaccess
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Compile the DRM kernel modules:
|
||||
You can get them from the git repository with:
|
||||
</p>
|
||||
<pre>
|
||||
cd drm/linux
|
||||
make
|
||||
git clone git://anongit.freedesktop.org/git/mesa/drm
|
||||
git clone git://anongit.freedesktop.org/git/xorg/lib/libpciaccess
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Note: you may need to be root in order to make a few symlinks.
|
||||
See the README files in those projects for build/install instructions.
|
||||
</p>
|
||||
|
||||
|
||||
<p>
|
||||
When compilation is done, you should have at least the following
|
||||
kernel modules:
|
||||
You'll need fbdev header files. Check with:
|
||||
</p>
|
||||
<pre>
|
||||
gamma.o
|
||||
i810.o
|
||||
i830.o
|
||||
mach64.o
|
||||
mga.o
|
||||
r128.o
|
||||
radeon.o
|
||||
savage.o
|
||||
sis.o
|
||||
tdfx.o
|
||||
via.o
|
||||
ls -l /usr/include/linux/fb.h
|
||||
</pre>
|
||||
<p>
|
||||
You'll probably want to copy/move them into your kernel module directory
|
||||
(for example: <code>/lib/modules/2.4.18-14/kernel/drivers/char/drm/</code>).
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<h2>2.2 Compiling the Mesa drivers</h2>
|
||||
|
||||
<p>
|
||||
Begin by editing the <code>Mesa/configs/default</code> file to set
|
||||
the <code>DRM_SOURCE_PATH</code> variable.
|
||||
Set it to the location where the DRM module sources are located.
|
||||
For example, if your current directory in step 2.1 was <code>/home/fred/</code>
|
||||
set DRM_SOURCE_PATH to <code>/home/fred/drm</code>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Next, assuming you're starting with a fresh Mesa CVS checkout,
|
||||
do the following:
|
||||
Compile Mesa with the 'linux-solo' configuration:
|
||||
</p>
|
||||
<pre>
|
||||
make linux-solo
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
If you previously built the source tree, run <code>make realclean</code>
|
||||
first to remove the old object files.
|
||||
When complete you should have the following:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When this is finished, check the <code>Mesa/lib/</code> directory
|
||||
to verify that the following files were made:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><code>libGL.so.1.2</code> - the client-side OpenGL library
|
||||
(and a few symlinks to it).
|
||||
<li><code>libGLU.so.1.1</code> - the GLU library (and a few symlinks to it).
|
||||
<li><code>libglut.so.3.7</code> - the GLUT library (and a few symlinks to it).
|
||||
<li><code>mga_dri.so</code> - DRI driver for Matrox G200/G400 cards.
|
||||
<li><code>r128_dri.so</code> - DRI driver for ATI Rage 128 cards.
|
||||
<li><code>r200_dri.so</code> - DRI driver for ATI R200 Radeon cards.
|
||||
<li><code>radeon_dri.so</code> - DRI driver for original ATI Radeon cards.
|
||||
<li><code>i810_dri.so</code> - DRI driver for Intel i810/i815 chips.
|
||||
<li><code>i830_dri.so</code> - DRI driver for Intel i830/i845 chips.
|
||||
<li><code>mga_dri.so</code> - DRI driver for Matrox G200/G400 cards.
|
||||
<li><code>sis_dri.so</code> - DRI driver for SIS cards.
|
||||
<li><code>tdfx_dri.so</code> - DRI driver for 3dfx Voodoo 3/4/5 cards.
|
||||
<li><code>gamma_dri.so</code> - DRI driver for 3Dlabs gamma cards.
|
||||
<li><code>fb_dri.so</code> - software-only fbdev driver.
|
||||
<li><code>miniglx.conf</code> - configuration file for the MiniGLX interface
|
||||
<li>lib/libGL.so - the GL library which applications link with
|
||||
<li>lib/*_dri_so - DRI drivers
|
||||
<li>lib/miniglx.conf - sample MiniGLX config file
|
||||
<li>progs/miniglx/* - several MiniGLX sample programs
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h1>3. Using fbdev/DRI</h1>
|
||||
|
||||
<p>
|
||||
If XFree86 is currently running, exit/stop the X server so you're
|
||||
working from the console.
|
||||
If an X server currently running, exit/stop it so you're working from
|
||||
the console.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -175,12 +91,23 @@ working from the console.
|
||||
<p>
|
||||
You'll need to load the kernel modules specific to your graphics hardware.
|
||||
Typically, this consists of the agpgart module, an fbdev driver module
|
||||
and the DRM kernel module (from step 2.1).
|
||||
and the DRM kernel module.
|
||||
</p>
|
||||
<p>
|
||||
As root, the kernel modules can be loaded as follows:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you have Intel i915/i945 hardware:
|
||||
</p>
|
||||
<pre>
|
||||
modprobe agpgart # the AGP GART module
|
||||
modprobe intelfb # the Intel fbdev driver
|
||||
modprobe i915 # the i915/945 DRI kernel module
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
If you have ATI Radeon/R200 hardware, run as root:
|
||||
If you have ATI Radeon/R200 hardware:
|
||||
</p>
|
||||
<pre>
|
||||
modprobe agpgart # the AGP GART module
|
||||
@@ -189,7 +116,7 @@ If you have ATI Radeon/R200 hardware, run as root:
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
If you have ATI Rage 128 hardware, run as root:
|
||||
If you have ATI Rage 128 hardware:
|
||||
</p>
|
||||
<pre>
|
||||
modprobe agpgart # the AGP GART module
|
||||
@@ -198,7 +125,7 @@ If you have ATI Rage 128 hardware, run as root:
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
If you have Matrox G200/G400 hardware, run as root:
|
||||
If you have Matrox G200/G400 hardware:
|
||||
</p>
|
||||
<pre>
|
||||
modprobe agpgart # the AGP GART module
|
||||
@@ -207,37 +134,46 @@ If you have Matrox G200/G400 hardware, run as root:
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Then run <code>lsmod</code> to be sure the modules are loaded.
|
||||
For a Radeon card, you should see something like this:
|
||||
To verify that the agpgart, fbdev and drm modules are loaded:
|
||||
</p>
|
||||
<pre>
|
||||
Module Size Used by Not tainted
|
||||
radeon 110308 0 (unused)
|
||||
radeonfb 21900 0 (unused)
|
||||
agpgart 43072 1
|
||||
ls -l /dev/agpgart /dev/fb* /dev/dri
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Alternately, use lsmod to inspect the currently installed modules.
|
||||
If you have problems, look at the output of dmesg.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>3.2 Configuration File</h2>
|
||||
|
||||
<p>
|
||||
The <code>Mesa/lib/miniglx.conf</code> file should be installed
|
||||
in <code>/etc/</code>.
|
||||
Copy the sample miniglx.conf to /etc/miniglx.conf and review/edit its contents.
|
||||
Alternately, the MINIGLX_CONF environment variable can be used to
|
||||
indicate the location of miniglx.conf
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Edit <code>/etc/miniglx.conf</code> to be sure it's set up correctly
|
||||
for your hardware.
|
||||
Comments in the file explain the options.
|
||||
To determine the pciBusID value, run lspci and examine the output.
|
||||
For example:
|
||||
</p>
|
||||
<pre>
|
||||
/sbin/lspci:
|
||||
00:02.0 VGA compatible controller: Intel Corporation 82915G/GV/910GL Express Chipset Family Graphics Controller (rev 04)
|
||||
</pre>
|
||||
<p>
|
||||
00:02.0 indicates that pciBusID should be PCI:0:2:0
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2>3.3 Running fbdev/DRI Programs</h2>
|
||||
|
||||
<p>
|
||||
Make sure your LD_LIBRARY_PATH environment variable is set to the
|
||||
<code>Mesa/lib/</code> directory.
|
||||
location of the libGL.so library. You may need to append other paths
|
||||
to LD_LIBRARY_PATH if libpciaccess.so is in a non-standard location,
|
||||
for example.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -245,7 +181,7 @@ Change to the <code>Mesa/progs/miniglx/</code> directory and
|
||||
start the sample_server program in the background:
|
||||
</p>
|
||||
<pre>
|
||||
./sample_server &
|
||||
./sample_server &
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@@ -268,27 +204,24 @@ them from a remote shell so that you can stop them with ctrl-C.
|
||||
|
||||
<h1>4.0 Troubleshooting</h1>
|
||||
|
||||
<p>
|
||||
<ol>
|
||||
<li>
|
||||
If you try to run miniglxtest and get the following:
|
||||
</p>
|
||||
<br>
|
||||
<pre>
|
||||
[miniglx] failed to probe chipset
|
||||
connect: Connection refused
|
||||
server connection lost
|
||||
</pre>
|
||||
<p>
|
||||
It means that the sample_server process is not running.
|
||||
</p>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<h1>5.0 Programming Information</h1>
|
||||
|
||||
<p>
|
||||
The full OpenGL API is available with fbdev/DRI.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
OpenGL/Mesa is interfaced to fbdev via the <a href="MiniGLX.html">MiniGLX</a>
|
||||
interface.
|
||||
|
@@ -128,10 +128,15 @@ specification as well as the GL_ARB_vertex_program and
|
||||
GL_ARB_fragment_program extensions.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
June 2007: Mesa 7.0 is released, implementing the OpenGL 2.1 specification
|
||||
and OpenGL Shading Language.
|
||||
</p>
|
||||
|
||||
|
||||
<p>
|
||||
Ongoing: Mesa is used as the core of many hardware OpenGL drivers for
|
||||
the XFree86 X.org X servers within the
|
||||
the XFree86 and X.org X servers within the
|
||||
<A href="http://dri.freedesktop.org/" target="_parent">DRI project</A>.
|
||||
I continue to enhance Mesa with new extensions and features.
|
||||
</p>
|
||||
@@ -141,9 +146,16 @@ I continue to enhance Mesa with new extensions and features.
|
||||
<H1>Major Versions</H1>
|
||||
|
||||
<p>
|
||||
This is a summary of the major versions of Mesa. Note that Mesa's major
|
||||
version number tracks OpenGL's minor version number (+1).
|
||||
Work is underway to implement the OpenGL 2.0 specification.
|
||||
This is a summary of the major versions of Mesa.
|
||||
Mesa's major version number has been incremented whenever a new version
|
||||
of the OpenGL specification is implemented.
|
||||
</p>
|
||||
|
||||
|
||||
<H2>Version 7.x features</H2>
|
||||
<p>
|
||||
Version 7.x of Mesa implements the OpenGL 2.1 API. The main feature
|
||||
of OpenGL 2.x is the OpenGL Shading Language.
|
||||
</p>
|
||||
|
||||
|
||||
|
@@ -11,6 +11,20 @@
|
||||
<H1>News</H1>
|
||||
|
||||
|
||||
<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.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>April 27, 2007</h2>
|
||||
<p>
|
||||
<a href="relnotes-6.5.3.html">Mesa 6.5.3</a> is released.
|
||||
|
@@ -18,7 +18,15 @@ Mesa 7.0 is expected to follow shortly.
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
TBD
|
||||
39f33ea64e34e2d5b20640b008b57649 MesaLib-6.5.3.tar.gz
|
||||
46359457147c469745f24b5074a186f0 MesaLib-6.5.3.tar.bz2
|
||||
a8946fa861634ce15971396f47992c41 MesaLib-6.5.3.zip
|
||||
08e26948d57eaca74d02a530b2d8106e MesaDemos-6.5.3.tar.gz
|
||||
8af91773ab2653fe537499676b05f2e8 MesaDemos-6.5.3.tar.bz2
|
||||
783f81b171bf89b0929abc894efd25a6 MesaDemos-6.5.3.zip
|
||||
9467d415388fe1ad82991fb20704b812 MesaGLUT-6.5.3.tar.gz
|
||||
360843e46b7ebb6909290b023f9b26fa MesaGLUT-6.5.3.tar.bz2
|
||||
7686065e5c15a30de08a1610860b6840 MesaGLUT-6.5.3.zip
|
||||
</pre>
|
||||
|
||||
|
||||
|
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>
|
93
docs/relnotes-7.0.html
Normal file
93
docs/relnotes-7.0.html
Normal file
@@ -0,0 +1,93 @@
|
||||
<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 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>
|
||||
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>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<ul>
|
||||
<li>OpenGL 2.0 and 2.1 API support.
|
||||
</ul>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
<ul>
|
||||
<li>Fixed a few fog-related bugs.
|
||||
<li>Fixed broken GLSL mix() function.
|
||||
<li>Fixed broken GLSL exp() functions.
|
||||
<li>Fixed GLSL mod4(vec4, vec4) bug.
|
||||
<li>Implemented GLSL asin(), acos(), atan() functions.
|
||||
<li>Fixed an R300 driver bug that caused Xorg composite manager to crash
|
||||
<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>
|
||||
|
||||
|
||||
<h2>Internal code changes</h2>
|
||||
<ul>
|
||||
<li>Some texture code consolidation and simplifiction (Ian Romanick)
|
||||
<li>R300 driver clean-ups.
|
||||
</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>
|
@@ -20,6 +20,8 @@ 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>
|
||||
<LI><A HREF="relnotes-6.5.1.html">6.5.1 release notes</A>
|
||||
|
@@ -1,17 +1,18 @@
|
||||
<HTML>
|
||||
|
||||
<TITLE>Mesa Subset</TITLE>
|
||||
<TITLE>Mesa Subset Driver</TITLE>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||
|
||||
<BODY>
|
||||
|
||||
<H1>Mesa Subset</H1>
|
||||
<H1>Mesa Subset Driver</H1>
|
||||
|
||||
<p>
|
||||
In 2002/2003 Tungsten Graphics was contracted to develop a subset Mesa/Radeon
|
||||
driver for an embedded environment. The result is a reduced-size DRI driver
|
||||
for the ATI R200 chip, for use with Linux fbdev rather than XFree86.
|
||||
for the ATI R200 chip, for use with
|
||||
<a href="fbdev-dri.html">fbdev/DRI environment</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -19,15 +20,5 @@ The specification for this subset can be found
|
||||
<a href="subset-A.html">here</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The <a href="MiniGLX.html">MiniGLX specification</a> describes the
|
||||
interface between fbdev and Mesa.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
More info to come...
|
||||
</p>
|
||||
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@@ -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
|
||||
|
@@ -17,7 +17,7 @@ message:
|
||||
subdirs:
|
||||
@for dir in $(SUBDIRS) ; do \
|
||||
if [ -d $$dir ] ; then \
|
||||
(cd $$dir ; $(MAKE)) || exit 1 ; \
|
||||
(cd $$dir && $(MAKE)) || exit 1 ; \
|
||||
fi \
|
||||
done
|
||||
|
||||
@@ -27,6 +27,6 @@ install:
|
||||
clean:
|
||||
@for dir in $(SUBDIRS) tests ; do \
|
||||
if [ -d $$dir ] ; then \
|
||||
(cd $$dir ; $(MAKE) clean) ; \
|
||||
(cd $$dir && $(MAKE) clean) ; \
|
||||
fi \
|
||||
done
|
||||
|
@@ -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 );
|
||||
|
@@ -5,17 +5,12 @@ include $(TOP)/configs/current
|
||||
|
||||
INCDIR = $(TOP)/include
|
||||
|
||||
OSMESA_LIBS = -L$(TOP)/$(LIB_DIR) -lglut -lOSMesa -lGLU -lGL $(APP_LIB_DEPS)
|
||||
|
||||
OSMESA16_LIBS = -L$(TOP)/$(LIB_DIR) -lglut -lOSMesa16 -lGLU -lGL $(APP_LIB_DEPS)
|
||||
|
||||
OSMESA32_LIBS = -L$(TOP)/$(LIB_DIR) -lglut -lOSMesa32 -lGLU -lGL $(APP_LIB_DEPS)
|
||||
|
||||
LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
|
||||
PROGS = \
|
||||
brick \
|
||||
bump \
|
||||
deriv \
|
||||
mandelbrot \
|
||||
noise \
|
||||
toyball \
|
||||
|
319
progs/glsl/deriv.c
Normal file
319
progs/glsl/deriv.c
Normal file
@@ -0,0 +1,319 @@
|
||||
/**
|
||||
* Test OpenGL 2.0 dx/dy functions for texcoords.
|
||||
* Brian Paul
|
||||
* 2 May 2007
|
||||
*
|
||||
* NOTE: resize the window to observe how the partial derivatives of
|
||||
* the texcoords change.
|
||||
*/
|
||||
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glut.h>
|
||||
#include <GL/glext.h>
|
||||
#include "extfuncs.h"
|
||||
|
||||
|
||||
static char *FragProgFile = NULL;
|
||||
static char *VertProgFile = NULL;
|
||||
static GLuint fragShader;
|
||||
static GLuint vertShader;
|
||||
static GLuint program;
|
||||
static GLuint SphereList, RectList, CurList;
|
||||
static GLint win = 0;
|
||||
static GLboolean anim = GL_TRUE;
|
||||
static GLfloat xRot = 0.0f, yRot = 0.0f;
|
||||
|
||||
|
||||
static void
|
||||
Redisplay(void)
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
glPushMatrix();
|
||||
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
|
||||
glRotatef(yRot, 0.0f, 1.0f, 0.0f);
|
||||
glCallList(CurList);
|
||||
glPopMatrix();
|
||||
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Idle(void)
|
||||
{
|
||||
yRot = glutGet(GLUT_ELAPSED_TIME) * 0.1;
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Reshape(int width, int height)
|
||||
{
|
||||
glViewport(0, 0, width, height);
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 25.0);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
glTranslatef(0.0f, 0.0f, -15.0f);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
CleanUp(void)
|
||||
{
|
||||
glDeleteShader_func(fragShader);
|
||||
glDeleteShader_func(vertShader);
|
||||
glDeleteProgram_func(program);
|
||||
glutDestroyWindow(win);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Key(unsigned char key, int x, int y)
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
|
||||
switch(key) {
|
||||
case ' ':
|
||||
case 'a':
|
||||
anim = !anim;
|
||||
if (anim)
|
||||
glutIdleFunc(Idle);
|
||||
else
|
||||
glutIdleFunc(NULL);
|
||||
break;
|
||||
case 'o':
|
||||
if (CurList == SphereList)
|
||||
CurList = RectList;
|
||||
else
|
||||
CurList = SphereList;
|
||||
break;
|
||||
case 27:
|
||||
CleanUp();
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
SpecialKey(int key, int x, int y)
|
||||
{
|
||||
const GLfloat step = 3.0f;
|
||||
|
||||
(void) x;
|
||||
(void) y;
|
||||
|
||||
switch(key) {
|
||||
case GLUT_KEY_UP:
|
||||
xRot -= step;
|
||||
break;
|
||||
case GLUT_KEY_DOWN:
|
||||
xRot += step;
|
||||
break;
|
||||
case GLUT_KEY_LEFT:
|
||||
yRot -= step;
|
||||
break;
|
||||
case GLUT_KEY_RIGHT:
|
||||
yRot += step;
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
MakeSphere(void)
|
||||
{
|
||||
GLUquadricObj *obj = gluNewQuadric();
|
||||
SphereList = glGenLists(1);
|
||||
gluQuadricTexture(obj, GL_TRUE);
|
||||
glNewList(SphereList, GL_COMPILE);
|
||||
gluSphere(obj, 2.0f, 30, 15);
|
||||
glEndList();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
MakeRect(void)
|
||||
{
|
||||
RectList = glGenLists(1);
|
||||
glNewList(RectList, GL_COMPILE);
|
||||
glBegin(GL_POLYGON);
|
||||
glTexCoord2f(0, 0); glVertex2f(-2, -2);
|
||||
glTexCoord2f(1, 0); glVertex2f( 2, -2);
|
||||
glTexCoord2f(1, 1); glVertex2f( 2, 2);
|
||||
glTexCoord2f(0, 1); glVertex2f(-2, 2);
|
||||
glEnd();
|
||||
glEndList();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
LoadAndCompileShader(GLuint shader, const char *text)
|
||||
{
|
||||
GLint stat;
|
||||
|
||||
glShaderSource_func(shader, 1, (const GLchar **) &text, NULL);
|
||||
|
||||
glCompileShader_func(shader);
|
||||
|
||||
glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat);
|
||||
if (!stat) {
|
||||
GLchar log[1000];
|
||||
GLsizei len;
|
||||
glGetShaderInfoLog_func(shader, 1000, &len, log);
|
||||
fprintf(stderr, "fslight: problem compiling shader:\n%s\n", log);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Read a shader from a file.
|
||||
*/
|
||||
static void
|
||||
ReadShader(GLuint shader, const char *filename)
|
||||
{
|
||||
const int max = 100*1000;
|
||||
int n;
|
||||
char *buffer = (char*) malloc(max);
|
||||
FILE *f = fopen(filename, "r");
|
||||
if (!f) {
|
||||
fprintf(stderr, "fslight: Unable to open shader file %s\n", filename);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
n = fread(buffer, 1, max, f);
|
||||
printf("fslight: read %d bytes from shader file %s\n", n, filename);
|
||||
if (n > 0) {
|
||||
buffer[n] = 0;
|
||||
LoadAndCompileShader(shader, buffer);
|
||||
}
|
||||
|
||||
fclose(f);
|
||||
free(buffer);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
CheckLink(GLuint prog)
|
||||
{
|
||||
GLint stat;
|
||||
glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
|
||||
if (!stat) {
|
||||
GLchar log[1000];
|
||||
GLsizei len;
|
||||
glGetProgramInfoLog_func(prog, 1000, &len, log);
|
||||
fprintf(stderr, "Linker error:\n%s\n", log);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Init(void)
|
||||
{
|
||||
static const char *fragShaderText =
|
||||
"void main() {\n"
|
||||
" gl_FragColor = abs(dFdy(gl_TexCoord[0])) * 50.0;\n"
|
||||
" // gl_FragColor = gl_TexCoord[0];\n"
|
||||
"}\n";
|
||||
static const char *vertShaderText =
|
||||
"void main() {\n"
|
||||
" gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n"
|
||||
" gl_TexCoord[0] = gl_MultiTexCoord0;\n"
|
||||
"}\n";
|
||||
const char *version;
|
||||
|
||||
version = (const char *) glGetString(GL_VERSION);
|
||||
if (version[0] != '2' || version[1] != '.') {
|
||||
printf("This program requires OpenGL 2.x, found %s\n", version);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
GetExtensionFuncs();
|
||||
|
||||
fragShader = glCreateShader_func(GL_FRAGMENT_SHADER);
|
||||
if (FragProgFile)
|
||||
ReadShader(fragShader, FragProgFile);
|
||||
else
|
||||
LoadAndCompileShader(fragShader, fragShaderText);
|
||||
|
||||
vertShader = glCreateShader_func(GL_VERTEX_SHADER);
|
||||
if (VertProgFile)
|
||||
ReadShader(vertShader, VertProgFile);
|
||||
else
|
||||
LoadAndCompileShader(vertShader, vertShaderText);
|
||||
|
||||
program = glCreateProgram_func();
|
||||
glAttachShader_func(program, fragShader);
|
||||
glAttachShader_func(program, vertShader);
|
||||
glLinkProgram_func(program);
|
||||
CheckLink(program);
|
||||
glUseProgram_func(program);
|
||||
|
||||
/*assert(glGetError() == 0);*/
|
||||
|
||||
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
||||
MakeSphere();
|
||||
MakeRect();
|
||||
|
||||
CurList = SphereList;
|
||||
|
||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||
|
||||
assert(glIsProgram_func(program));
|
||||
assert(glIsShader_func(fragShader));
|
||||
assert(glIsShader_func(vertShader));
|
||||
|
||||
glColor3f(1, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
ParseOptions(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "-fs") == 0) {
|
||||
FragProgFile = argv[i+1];
|
||||
}
|
||||
else if (strcmp(argv[i], "-vs") == 0) {
|
||||
VertProgFile = argv[i+1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
glutInit(&argc, argv);
|
||||
glutInitWindowPosition( 0, 0);
|
||||
glutInitWindowSize(200, 200);
|
||||
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
|
||||
win = glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc(Reshape);
|
||||
glutKeyboardFunc(Key);
|
||||
glutSpecialFunc(SpecialKey);
|
||||
glutDisplayFunc(Redisplay);
|
||||
if (anim)
|
||||
glutIdleFunc(Idle);
|
||||
ParseOptions(argc, argv);
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
@@ -1,5 +1,3 @@
|
||||
/* $Id: miniglxtest.c,v 1.3 2004/03/25 14:58:39 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Test the mini GLX interface.
|
||||
*/
|
||||
@@ -7,6 +5,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <GL/gl.h>
|
||||
#define USE_MINI_GLX 1
|
||||
@@ -16,90 +15,86 @@
|
||||
#include <GL/glx.h>
|
||||
#endif
|
||||
|
||||
#define FRONTBUFFER 1
|
||||
#define NR 6
|
||||
#define DO_SLEEPS 1
|
||||
#define NR_DISPLAYS 2
|
||||
static GLXContext ctx;
|
||||
|
||||
GLXContext ctx;
|
||||
static GLuint NumFrames = 100;
|
||||
static GLuint NumDisplays = 1;
|
||||
static GLboolean Texture = GL_FALSE;
|
||||
static GLboolean SingleBuffer = GL_FALSE;
|
||||
static GLboolean Sleeps = GL_TRUE;
|
||||
|
||||
|
||||
static void _subset_Rectf( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 )
|
||||
static void
|
||||
rect(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
|
||||
{
|
||||
glBegin( GL_QUADS );
|
||||
glVertex2f( x1, y1 );
|
||||
glVertex2f( x2, y1 );
|
||||
glVertex2f( x2, y2 );
|
||||
glVertex2f( x1, y2 );
|
||||
glBegin(GL_QUADS);
|
||||
glTexCoord2f(0, 0); glColor3f(0, 0, 1); glVertex2f(x1, y1);
|
||||
glTexCoord2f(1, 0); glColor3f(1, 0, 0); glVertex2f(x2, y1);
|
||||
glTexCoord2f(1, 1); glColor3f(0, 1, 0); glVertex2f(x2, y2);
|
||||
glTexCoord2f(0, 1); glColor3f(0, 0, 0); glVertex2f(x1, y2);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void redraw( Display *dpy, Window w, int rot )
|
||||
static void
|
||||
redraw(Display *dpy, Window w, int rot)
|
||||
{
|
||||
printf("Redraw event\n");
|
||||
GLfloat a;
|
||||
|
||||
#if FRONTBUFFER
|
||||
glDrawBuffer( GL_FRONT );
|
||||
#else
|
||||
/* glDrawBuffer( GL_BACK ); */
|
||||
#endif
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
glClearColor( rand()/(float)RAND_MAX,
|
||||
rand()/(float)RAND_MAX,
|
||||
rand()/(float)RAND_MAX,
|
||||
1);
|
||||
|
||||
glClear( GL_COLOR_BUFFER_BIT );
|
||||
|
||||
#if 1
|
||||
glColor3f( rand()/(float)RAND_MAX,
|
||||
rand()/(float)RAND_MAX,
|
||||
rand()/(float)RAND_MAX );
|
||||
glPushMatrix();
|
||||
glRotatef(rot, 0, 0, 1);
|
||||
glScalef(.5, .5, .5);
|
||||
_subset_Rectf( -1, -1, 1, 1 );
|
||||
glRotatef(rot, 0, 0, 1);
|
||||
glScalef(.5, .5, .5);
|
||||
for (a = 0.0; a < 360.0; a += 30.0) {
|
||||
glPushMatrix();
|
||||
glRotatef(a, 0, 0, 1);
|
||||
glRotatef(40, 1, 0, 0);
|
||||
glColor3f(a / 360.0, 1-a/360.0, 0);
|
||||
rect(0.3, -0.25, 1.5, 0.25);
|
||||
glPopMatrix();
|
||||
}
|
||||
glPopMatrix();
|
||||
#endif
|
||||
|
||||
#if FRONTBUFFER
|
||||
glFlush();
|
||||
#else
|
||||
glXSwapBuffers( dpy, w );
|
||||
#endif
|
||||
glFinish();
|
||||
if (SingleBuffer)
|
||||
glFlush();
|
||||
else
|
||||
glXSwapBuffers(dpy, w);
|
||||
}
|
||||
|
||||
|
||||
static Window make_rgb_db_window( Display *dpy,
|
||||
unsigned int width, unsigned int height )
|
||||
static Window
|
||||
make_window(Display *dpy, unsigned int width, unsigned int height)
|
||||
{
|
||||
int attrib[] = { GLX_RGBA,
|
||||
GLX_RED_SIZE, 1,
|
||||
GLX_GREEN_SIZE, 1,
|
||||
GLX_BLUE_SIZE, 1,
|
||||
#if !FRONTBUFFER
|
||||
GLX_DOUBLEBUFFER,
|
||||
#endif
|
||||
None };
|
||||
int scrnum;
|
||||
int attrib_single[] = { GLX_RGBA,
|
||||
GLX_RED_SIZE, 1,
|
||||
GLX_GREEN_SIZE, 1,
|
||||
GLX_BLUE_SIZE, 1,
|
||||
GLX_DEPTH_SIZE, 1,
|
||||
None };
|
||||
int attrib_double[] = { GLX_RGBA,
|
||||
GLX_RED_SIZE, 1,
|
||||
GLX_GREEN_SIZE, 1,
|
||||
GLX_BLUE_SIZE, 1,
|
||||
GLX_DEPTH_SIZE, 1,
|
||||
GLX_DOUBLEBUFFER,
|
||||
None };
|
||||
int *attrib = SingleBuffer ? attrib_single : attrib_double;
|
||||
int scrnum = 0;
|
||||
XSetWindowAttributes attr;
|
||||
unsigned long mask;
|
||||
Window root;
|
||||
Window win;
|
||||
XVisualInfo *visinfo;
|
||||
|
||||
scrnum = 0;
|
||||
root = RootWindow( dpy, scrnum );
|
||||
root = RootWindow(dpy, scrnum);
|
||||
|
||||
if (!(visinfo = glXChooseVisual( dpy, scrnum, attrib ))) {
|
||||
if (!(visinfo = glXChooseVisual(dpy, scrnum, attrib))) {
|
||||
printf("Error: couldn't get an RGB, Double-buffered visual\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(!(ctx = glXCreateContext( dpy, visinfo, NULL, True ))) {
|
||||
if (!(ctx = glXCreateContext(dpy, visinfo, NULL, True))) {
|
||||
printf("Error: glXCreateContext failed\n");
|
||||
exit(1);
|
||||
}
|
||||
@@ -107,19 +102,19 @@ static Window make_rgb_db_window( Display *dpy,
|
||||
/* window attributes */
|
||||
attr.background_pixel = 0;
|
||||
attr.border_pixel = 0;
|
||||
attr.colormap = XCreateColormap( dpy, root, visinfo->visual, AllocNone);
|
||||
attr.colormap = XCreateColormap(dpy, root, visinfo->visual, AllocNone);
|
||||
attr.event_mask = StructureNotifyMask | ExposureMask;
|
||||
mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
|
||||
|
||||
win = XCreateWindow( dpy, root, 0, 0, width, height,
|
||||
win = XCreateWindow(dpy, root, 0, 0, width, height,
|
||||
0, visinfo->depth, InputOutput,
|
||||
visinfo->visual, mask, &attr );
|
||||
visinfo->visual, mask, &attr);
|
||||
if (!win) {
|
||||
printf("Error: XCreateWindow failed\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glXMakeCurrent( dpy, win, ctx );
|
||||
glXMakeCurrent(dpy, win, ctx);
|
||||
|
||||
glViewport(0, 0, width, height);
|
||||
|
||||
@@ -127,22 +122,24 @@ static Window make_rgb_db_window( Display *dpy,
|
||||
}
|
||||
|
||||
|
||||
static void event_loop( Display *dpy, Window win )
|
||||
static void
|
||||
event_loop(Display *dpy, Window win)
|
||||
{
|
||||
int i;
|
||||
|
||||
printf("Hang on... drawing %d frames\n", NR);
|
||||
for (i = 0; i < NR; i++) {
|
||||
redraw( dpy, win, i*10 );
|
||||
if (DO_SLEEPS) {
|
||||
printf("sleep(1)\n");
|
||||
sleep(1);
|
||||
printf("Drawing %d frames\n", NumFrames);
|
||||
|
||||
for (i = 0; i < NumFrames; i++) {
|
||||
redraw(dpy, win, -i*2);
|
||||
if (Sleeps) {
|
||||
usleep(20000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static int foo( void )
|
||||
static int
|
||||
runtest(void)
|
||||
{
|
||||
Display *dpy;
|
||||
Window win;
|
||||
@@ -153,41 +150,121 @@ static int foo( void )
|
||||
return 1;
|
||||
}
|
||||
|
||||
win = make_rgb_db_window( dpy, 800, 600);
|
||||
win = make_window(dpy, 800, 600);
|
||||
|
||||
srand(getpid());
|
||||
|
||||
glShadeModel( GL_FLAT );
|
||||
glClearColor( 0.5, 0.5, 0.5, 1.0 );
|
||||
/* init GL state */
|
||||
glClearColor(0.5, 0.5, 0.5, 1.0);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
if (Texture) {
|
||||
GLubyte image[16][16][4];
|
||||
GLint i, j;
|
||||
for (i = 0; i < 16; i++) {
|
||||
for (j = 0; j < 16; j++) {
|
||||
if (((i / 2) ^ (j / 2)) & 1) {
|
||||
image[i][j][0] = 255;
|
||||
image[i][j][1] = 255;
|
||||
image[i][j][2] = 255;
|
||||
image[i][j][3] = 255;
|
||||
}
|
||||
else {
|
||||
image[i][j][0] = 128;
|
||||
image[i][j][1] = 128;
|
||||
image[i][j][2] = 128;
|
||||
image[i][j][3] = 128;
|
||||
}
|
||||
}
|
||||
}
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 16, 16, 0,
|
||||
GL_RGBA, GL_UNSIGNED_BYTE, image);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
}
|
||||
if (SingleBuffer) {
|
||||
glDrawBuffer(GL_FRONT);
|
||||
glReadBuffer(GL_FRONT);
|
||||
}
|
||||
else {
|
||||
glDrawBuffer(GL_BACK);
|
||||
}
|
||||
|
||||
XMapWindow( dpy, win );
|
||||
XMapWindow(dpy, win);
|
||||
|
||||
/* wait for window to get mapped */
|
||||
{
|
||||
XEvent e;
|
||||
while (1) {
|
||||
XNextEvent( dpy, &e );
|
||||
XNextEvent(dpy, &e);
|
||||
if (e.type == MapNotify && e.xmap.window == win) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
event_loop( dpy, win );
|
||||
event_loop(dpy, win);
|
||||
|
||||
glXDestroyContext( dpy, ctx );
|
||||
XDestroyWindow( dpy, win );
|
||||
glXDestroyContext(dpy, ctx);
|
||||
XDestroyWindow(dpy, win);
|
||||
|
||||
XCloseDisplay( dpy );
|
||||
XCloseDisplay(dpy);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
static void
|
||||
usage(void)
|
||||
{
|
||||
printf("Usage:\n");
|
||||
printf(" -f N render N frames (default %d)\n", NumFrames);
|
||||
printf(" -d N do N display cycles\n");
|
||||
printf(" -t texturing\n");
|
||||
printf(" -s single buffering\n");
|
||||
printf(" -n no usleep() delay\n");
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
parse_args(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
for (i = 0 ; i < NR_DISPLAYS ; i++) {
|
||||
if (foo() != 0)
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "-f") == 0) {
|
||||
NumFrames = atoi(argv[i + 1]);
|
||||
i++;
|
||||
}
|
||||
else if (strcmp(argv[i], "-d") == 0) {
|
||||
NumDisplays = atoi(argv[i + 1]);
|
||||
i++;
|
||||
}
|
||||
else if (strcmp(argv[i], "-n") == 0) {
|
||||
Sleeps = GL_FALSE;
|
||||
}
|
||||
else if (strcmp(argv[i], "-s") == 0) {
|
||||
SingleBuffer = GL_TRUE;
|
||||
}
|
||||
else if (strcmp(argv[i], "-t") == 0) {
|
||||
Texture = GL_TRUE;
|
||||
}
|
||||
else {
|
||||
usage();
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
|
||||
parse_args(argc, argv);
|
||||
|
||||
for (i = 0; i < NumDisplays; i++) {
|
||||
if (runtest() != 0)
|
||||
break;
|
||||
}
|
||||
|
||||
|
@@ -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*/
|
||||
|
@@ -17,14 +17,14 @@ message:
|
||||
subdirs:
|
||||
@for dir in $(SUBDIRS) ; do \
|
||||
if [ -d $$dir ] ; then \
|
||||
(cd $$dir ; $(MAKE)) || exit 1 ; \
|
||||
(cd $$dir && $(MAKE)) || exit 1; \
|
||||
fi \
|
||||
done
|
||||
|
||||
install:
|
||||
@for dir in $(SUBDIRS) ; do \
|
||||
if [ -d $$dir ] ; then \
|
||||
(cd $$dir ; $(MAKE) install) || exit 1 ; \
|
||||
(cd $$dir && $(MAKE) install) || exit 1 ; \
|
||||
fi \
|
||||
done
|
||||
|
||||
@@ -35,6 +35,6 @@ $(TOP)/$(LIB_DIR):
|
||||
clean:
|
||||
@for dir in $(SUBDIRS) ; do \
|
||||
if [ -d $$dir ] ; then \
|
||||
(cd $$dir ; $(MAKE) clean) ; \
|
||||
(cd $$dir && $(MAKE) clean) ; \
|
||||
fi \
|
||||
done
|
||||
|
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 */
|
||||
|
@@ -90,7 +90,7 @@ int APIENTRY glutCreateWindow (const char *title)
|
||||
attr.event_mask = StructureNotifyMask | ExposureMask;
|
||||
mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
|
||||
|
||||
win = XCreateWindow( dpy, root, 0, 0, g_width, g_height,
|
||||
win = XCreateWindow( dpy, root, g_xpos, g_ypos, g_width, g_height,
|
||||
0, visinfo->depth, InputOutput,
|
||||
visinfo->visual, mask, &attr );
|
||||
if (!win) {
|
||||
|
@@ -1,5 +1,4 @@
|
||||
# Build a subset DRI-based libGL.so library.
|
||||
# Indirect rendering not supported, etc.
|
||||
# Build the MiniGLX libGL.so library.
|
||||
|
||||
TOP = ../../..
|
||||
include $(TOP)/configs/current
|
||||
@@ -29,7 +28,9 @@ INCLUDE_DIRS = \
|
||||
-I$(TOP)/src/mesa/glapi \
|
||||
-I$(TOP)/src/glx/x11 \
|
||||
-I$(TOP)/src/mesa/drivers/dri/common \
|
||||
`pkg-config --cflags libdrm`
|
||||
$(LIBDRM_CFLAGS) \
|
||||
$(PCIACCESS_CFLAGS)
|
||||
|
||||
|
||||
|
||||
##### RULES #####
|
||||
@@ -43,16 +44,20 @@ INCLUDE_DIRS = \
|
||||
|
||||
##### TARGETS #####
|
||||
|
||||
default: depend $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME)
|
||||
default: depend $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/miniglx.conf
|
||||
|
||||
|
||||
# Make libGL
|
||||
$(TOP)/$(LIB_DIR)/$(GL_LIB_NAME): $(OBJECTS) Makefile
|
||||
$(TOP)/bin/mklib -o $(GL_LIB) -linker '$(CC)' \
|
||||
@ $(TOP)/bin/mklib -o $(GL_LIB) -linker '$(CC)' \
|
||||
-major 1 -minor 2 $(MKLIB_OPTIONS) \
|
||||
-install $(TOP)/$(LIB_DIR) $(GL_LIB_DEPS) $(OBJECTS) `/usr/bin/pkg-config --libs libdrm` `/usr/bin/pkg-config --libs pciaccess`
|
||||
rm -f $(TOP)/$(LIB_DIR)/miniglx.conf
|
||||
install example.miniglx.conf $(TOP)/$(LIB_DIR)/miniglx.conf
|
||||
-install $(TOP)/$(LIB_DIR) $(GL_LIB_DEPS) $(OBJECTS) \
|
||||
$(LIBDRM_LIB) $(PCIACCESS_LIB)
|
||||
|
||||
|
||||
# install sample miniglx.conf
|
||||
$(TOP)/$(LIB_DIR)/miniglx.conf:
|
||||
$(INSTALL) example.miniglx.conf $(TOP)/$(LIB_DIR)/miniglx.conf
|
||||
|
||||
|
||||
drmtest: xf86drm.o drmtest.o
|
||||
|
@@ -1528,8 +1528,8 @@ XCreateWindow( Display *dpy, Window parent, int x, int y,
|
||||
}
|
||||
|
||||
/* init other per-window fields */
|
||||
win->x = 0;
|
||||
win->y = 0;
|
||||
win->x = x;
|
||||
win->y = y;
|
||||
win->w = width;
|
||||
win->h = height;
|
||||
win->visual = visual; /* ptr assignment */
|
||||
@@ -1537,7 +1537,7 @@ XCreateWindow( Display *dpy, Window parent, int x, int y,
|
||||
win->bytesPerPixel = dpy->driverContext.cpp;
|
||||
win->rowStride = dpy->driverContext.shared.virtualWidth * win->bytesPerPixel;
|
||||
win->size = win->rowStride * height;
|
||||
win->frontStart = dpy->driverContext.FBAddress;
|
||||
win->frontStart = dpy->driverContext.FBAddress + (win->rowStride * win->x) + (win->y * win->bytesPerPixel);
|
||||
win->frontBottom = (GLubyte *) win->frontStart + (height-1) * win->rowStride;
|
||||
|
||||
/* This is incorrect: the hardware driver could put the backbuffer
|
||||
|
@@ -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;
|
||||
|
@@ -1667,7 +1667,7 @@ __glXGetArrayType( const __GLXattribute * const state,
|
||||
key, index );
|
||||
|
||||
if ( a != NULL ) {
|
||||
*dest = (GLintptr) a->enabled;
|
||||
*dest = (GLintptr) a->data_type;
|
||||
}
|
||||
|
||||
return (a != NULL);
|
||||
|
@@ -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)
|
||||
|
@@ -14,21 +14,25 @@ $(TOP)/$(LIB_DIR):
|
||||
|
||||
|
||||
subdirs:
|
||||
echo $(DRI_DIRS)
|
||||
@for dir in $(DRI_DIRS) ; do \
|
||||
echo $$dir ; \
|
||||
(cd $$dir && $(MAKE)) || exit 1; \
|
||||
if [ -d $$dir ] ; then \
|
||||
(cd $$dir && $(MAKE)) || exit 1 ; \
|
||||
fi \
|
||||
done
|
||||
|
||||
|
||||
install:
|
||||
@for dir in $(DRI_DIRS) ; do \
|
||||
(cd $$dir && $(MAKE) install) || exit 1; \
|
||||
if [ -d $$dir ] ; then \
|
||||
(cd $$dir && $(MAKE) install) || exit 1 ; \
|
||||
fi \
|
||||
done
|
||||
|
||||
|
||||
clean:
|
||||
@for dir in $(DRI_DIRS) ; do \
|
||||
(cd $$dir && $(MAKE) clean) ; \
|
||||
if [ -d $$dir ] ; then \
|
||||
(cd $$dir && $(MAKE) clean) ; \
|
||||
fi \
|
||||
done
|
||||
-rm -f common/*.o
|
||||
|
@@ -25,11 +25,13 @@ OBJECTS = $(C_SOURCES:.c=.o) \
|
||||
$(ASM_SOURCES:.S=.o)
|
||||
|
||||
else
|
||||
# miniglx
|
||||
WINOBJ=
|
||||
WINLIB=-L$(MESA)/src/glx/mini
|
||||
MINIGLX_INCLUDES = -I$(TOP)/src/glx/mini
|
||||
INCLUDES = $(MINIGLX_INCLUDES) \
|
||||
$(SHARED_INCLUDES)
|
||||
$(SHARED_INCLUDES) \
|
||||
$(PCIACCESS_CFLAGS)
|
||||
|
||||
OBJECTS = $(C_SOURCES:.c=.o) \
|
||||
$(MINIGLX_SOURCES:.c=.o) \
|
||||
@@ -54,7 +56,8 @@ SHARED_INCLUDES = \
|
||||
-I$(TOP)/src/mesa/swrast_setup \
|
||||
-I$(TOP)/src/egl/main \
|
||||
-I$(TOP)/src/egl/drivers/dri \
|
||||
`pkg-config --cflags libdrm`
|
||||
$(LIBDRM_CFLAGS)
|
||||
|
||||
|
||||
##### RULES #####
|
||||
|
||||
@@ -70,11 +73,6 @@ SHARED_INCLUDES = \
|
||||
default: depend symlinks $(LIBNAME) $(TOP)/$(LIB_DIR)/$(LIBNAME)
|
||||
|
||||
|
||||
#$(TOP)/$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
|
||||
# @echo BUILDING FOR: $(WINDOW_SYSTEM)
|
||||
# $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(TOP)/$(LIB_DIR) \
|
||||
# $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
|
||||
|
||||
$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template
|
||||
$(TOP)/bin/mklib -noprefix -o $@ \
|
||||
$(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS)
|
||||
@@ -84,9 +82,6 @@ $(TOP)/$(LIB_DIR)/$(LIBNAME): $(LIBNAME)
|
||||
$(INSTALL) $(LIBNAME) $(TOP)/$(LIB_DIR)
|
||||
|
||||
|
||||
|
||||
# Run 'make depend' to update the dependencies if you change
|
||||
# what's included by any source file.
|
||||
depend: $(C_SOURCES) $(ASM_SOURCES) $(SYMLINKS)
|
||||
touch depend
|
||||
$(MKDEP) $(MKDEP_OPTIONS) $(DRIVER_DEFINES) $(INCLUDES) $(C_SOURCES) \
|
||||
@@ -103,8 +98,10 @@ clean:
|
||||
-rm -f *.o */*.o *~ *.so *~ server/*.o $(SYMLINKS)
|
||||
-rm -f depend depend.bak
|
||||
|
||||
|
||||
install: $(LIBNAME)
|
||||
$(INSTALL) -d $(DRI_DRIVER_INSTALL_DIR)
|
||||
$(INSTALL) -m 755 $(LIBNAME) $(DRI_DRIVER_INSTALL_DIR)
|
||||
|
||||
|
||||
include depend
|
||||
|
@@ -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:
|
||||
|
@@ -455,12 +455,14 @@ static unsigned long AllocFromAGP(const DRIDriverContext *ctx, I830Rec *pI830, l
|
||||
}
|
||||
|
||||
unsigned long
|
||||
I830AllocVidMem(const DRIDriverContext *ctx, I830Rec *pI830, I830MemRange *result, I830MemPool *pool, long size, unsigned long alignment, int flags)
|
||||
I830AllocVidMem(const DRIDriverContext *ctx, I830Rec *pI830,
|
||||
I830MemRange *result, I830MemPool *pool, long size,
|
||||
unsigned long alignment, int flags)
|
||||
{
|
||||
int ret;
|
||||
unsigned long ret;
|
||||
|
||||
if (!result)
|
||||
return 0;
|
||||
if (!result)
|
||||
return 0;
|
||||
|
||||
/* Make sure these are initialised. */
|
||||
result->Size = 0;
|
||||
@@ -470,16 +472,15 @@ I830AllocVidMem(const DRIDriverContext *ctx, I830Rec *pI830, I830MemRange *resul
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (pool->Free.Size < size)
|
||||
return AllocFromAGP(ctx, pI830, size, alignment, result);
|
||||
else
|
||||
{
|
||||
ret = AllocFromPool(ctx, pI830, result, pool, size, alignment, flags);
|
||||
|
||||
if (ret==0)
|
||||
return AllocFromAGP(ctx, pI830, size, alignment, result);
|
||||
return ret;
|
||||
if (pool->Free.Size < size) {
|
||||
ret = AllocFromAGP(ctx, pI830, size, alignment, result);
|
||||
}
|
||||
else {
|
||||
ret = AllocFromPool(ctx, pI830, result, pool, size, alignment, flags);
|
||||
if (ret == 0)
|
||||
ret = AllocFromAGP(ctx, pI830, size, alignment, result);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
static Bool BindAgpRange(const DRIDriverContext *ctx, I830MemRange *mem)
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -483,12 +483,14 @@ static unsigned long AllocFromAGP(const DRIDriverContext *ctx, I830Rec *pI830, l
|
||||
}
|
||||
|
||||
unsigned long
|
||||
I830AllocVidMem(const DRIDriverContext *ctx, I830Rec *pI830, I830MemRange *result, I830MemPool *pool, long size, unsigned long alignment, int flags)
|
||||
I830AllocVidMem(const DRIDriverContext *ctx, I830Rec *pI830,
|
||||
I830MemRange *result, I830MemPool *pool, long size,
|
||||
unsigned long alignment, int flags)
|
||||
{
|
||||
int ret;
|
||||
unsigned long ret;
|
||||
|
||||
if (!result)
|
||||
return 0;
|
||||
if (!result)
|
||||
return 0;
|
||||
|
||||
/* Make sure these are initialised. */
|
||||
result->Size = 0;
|
||||
@@ -498,16 +500,15 @@ I830AllocVidMem(const DRIDriverContext *ctx, I830Rec *pI830, I830MemRange *resul
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (pool->Free.Size < size)
|
||||
return AllocFromAGP(ctx, pI830, size, alignment, result);
|
||||
else
|
||||
{
|
||||
ret = AllocFromPool(ctx, pI830, result, pool, size, alignment, flags);
|
||||
|
||||
if (ret==0)
|
||||
return AllocFromAGP(ctx, pI830, size, alignment, result);
|
||||
return ret;
|
||||
if (pool->Free.Size < size) {
|
||||
ret = AllocFromAGP(ctx, pI830, size, alignment, result);
|
||||
}
|
||||
else {
|
||||
ret = AllocFromPool(ctx, pI830, result, pool, size, alignment, flags);
|
||||
if (ret == 0)
|
||||
ret = AllocFromAGP(ctx, pI830, size, alignment, result);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
static Bool BindAgpRange(const DRIDriverContext *ctx, I830MemRange *mem)
|
||||
@@ -895,31 +896,6 @@ I830DRIUnmapScreenRegions(const DRIDriverContext *ctx, I830Rec *pI830, drmI830Sa
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void
|
||||
I830InitTextureHeap(const DRIDriverContext *ctx, I830Rec *pI830, drmI830Sarea *sarea)
|
||||
{
|
||||
/* Start up the simple memory manager for agp space */
|
||||
drmI830MemInitHeap drmHeap;
|
||||
drmHeap.region = I830_MEM_REGION_AGP;
|
||||
drmHeap.start = 0;
|
||||
drmHeap.size = sarea->tex_size;
|
||||
|
||||
if (drmCommandWrite(ctx->drmFD, DRM_I830_INIT_HEAP,
|
||||
&drmHeap, sizeof(drmHeap))) {
|
||||
fprintf(stderr,
|
||||
"[drm] Failed to initialized agp heap manager\n");
|
||||
} else {
|
||||
fprintf(stderr,
|
||||
"[drm] Initialized kernel agp heap manager, %d\n",
|
||||
sarea->tex_size);
|
||||
|
||||
I830SetParam(ctx, I830_SETPARAM_TEX_LRU_LOG_GRANULARITY,
|
||||
sarea->log_tex_granularity);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static Bool
|
||||
I830DRIDoMappings(DRIDriverContext *ctx, I830Rec *pI830, drmI830Sarea *sarea)
|
||||
{
|
||||
@@ -943,9 +919,6 @@ I830DRIDoMappings(DRIDriverContext *ctx, I830Rec *pI830, drmI830Sarea *sarea)
|
||||
I830DRIMapScreenRegions(ctx, pI830, sarea);
|
||||
SetupDRIMM(ctx, pI830);
|
||||
|
||||
#if 0
|
||||
I830InitTextureHeap(ctx, pI830, sarea);
|
||||
#endif
|
||||
if (ctx->pciDevice != PCI_CHIP_845_G &&
|
||||
ctx->pciDevice != PCI_CHIP_I830_M) {
|
||||
I830SetParam(ctx, I830_SETPARAM_USE_MI_BATCHBUFFER_START, 1 );
|
||||
|
@@ -34,6 +34,7 @@
|
||||
#include "brw_state.h"
|
||||
#include "brw_defines.h"
|
||||
#include "brw_util.h"
|
||||
#include "macros.h"
|
||||
#include "enums.h"
|
||||
|
||||
static void upload_cc_vp( struct brw_context *brw )
|
||||
|
@@ -46,7 +46,7 @@
|
||||
|
||||
#include "tnl/tnl.h"
|
||||
#include "vbo/vbo_context.h"
|
||||
|
||||
#include "swrast/swrast.h"
|
||||
|
||||
|
||||
|
||||
|
@@ -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);
|
||||
|
@@ -679,7 +679,6 @@ r200MakeCurrent( __DRIcontextPrivate *driContextPriv,
|
||||
newCtx->dri.drawable = driDrawPriv;
|
||||
|
||||
r200SetCliprects(newCtx);
|
||||
r200UpdateWindow( newCtx->glCtx );
|
||||
r200UpdateViewportOffset( newCtx->glCtx );
|
||||
}
|
||||
|
||||
|
3
src/mesa/drivers/dri/r300/.gitignore
vendored
3
src/mesa/drivers/dri/r300/.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
radeon_chipset.h
|
||||
radeon_screen.*
|
||||
radeon_screen.[ch]
|
||||
radeon_span.h
|
||||
server
|
||||
|
2
src/mesa/drivers/dri/r300/Lindent
Executable file
2
src/mesa/drivers/dri/r300/Lindent
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
indent -npro -kr -i8 -ts8 -sob -l80 -ss -ncs "$@"
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user