Compare commits
114 Commits
mesa-6_5-2
...
texmem_0_3
Author | SHA1 | Date | |
---|---|---|---|
|
814cae6a45 | ||
|
410673f64c | ||
|
a83a3cfa1c | ||
|
da89238b13 | ||
|
984387b89c | ||
|
93bc5e8402 | ||
|
43722cae42 | ||
|
f397a2a1e5 | ||
|
87a0312068 | ||
|
ee525436cc | ||
|
520ba25dc3 | ||
|
6f9dc91045 | ||
|
d17637d47f | ||
|
980a25cd92 | ||
|
607c474f2d | ||
|
2f54146c1f | ||
|
72aeeef7c3 | ||
|
dadc8e2a50 | ||
|
02d401b475 | ||
|
9d695abcac | ||
|
e070007d16 | ||
|
39c4c8d54b | ||
|
4fa3cf225f | ||
|
1c2c1c4560 | ||
|
e3904516bb | ||
|
ceb222798b | ||
|
6abcf6a3d3 | ||
|
db0ed8942f | ||
|
bd9f38ccaa | ||
|
b15421c22b | ||
|
5db0e131ef | ||
|
b249ff8a86 | ||
|
9d6e0f5d64 | ||
|
4f8549634e | ||
|
3345ab8ccf | ||
|
cd3c9febda | ||
|
8c58a32360 | ||
|
0d646ea3a8 | ||
|
6a33e6d221 | ||
|
fc4bc6fc97 | ||
|
4239cfd534 | ||
|
b0902a4158 | ||
|
269219dc05 | ||
|
5dbadd418c | ||
|
71bce51324 | ||
|
308d377ca8 | ||
|
4f39d22c29 | ||
|
8dab7963b7 | ||
|
ec30116c9f | ||
|
5ac3ad7722 | ||
|
fe239744aa | ||
|
137dcd4a46 | ||
|
0d7755fc73 | ||
|
c863e63549 | ||
|
62920e2ab2 | ||
|
ce3885fc5f | ||
|
bf0c1ca618 | ||
|
64bc9caa1c | ||
|
89a2ea6fd3 | ||
|
41123a85ec | ||
|
f10469abe8 | ||
|
4a74de797c | ||
|
c745394242 | ||
|
f9f3de8c31 | ||
|
3d0a073a71 | ||
|
219ee91fa8 | ||
|
632eae3fec | ||
|
f378bcd8bf | ||
|
ded29089f3 | ||
|
527c05eb2a | ||
|
365582dd6f | ||
|
cc738e004f | ||
|
f05e7eba95 | ||
|
90d7b9c9eb | ||
|
e724324894 | ||
|
9a4f15ee59 | ||
|
689df543db | ||
|
667dd3c3e8 | ||
|
fe3242f00a | ||
|
e8947a5fa0 | ||
|
91dbc04d5e | ||
|
32bf274f78 | ||
|
fc434622b3 | ||
|
4cc87c7248 | ||
|
c26999fd2c | ||
|
d2ac9ab6ee | ||
|
39dd5196e6 | ||
|
0e6ef1b1cd | ||
|
32d61d0616 | ||
|
a7722cb794 | ||
|
c28399baa7 | ||
|
a97492f4df | ||
|
9d9d7b1dee | ||
|
122629f279 | ||
|
459db7bd72 | ||
|
a623e008c6 | ||
|
2f12458fb3 | ||
|
a1a6ac4af4 | ||
|
4e2de9531e | ||
|
ad15866ef0 | ||
|
0749e2723b | ||
|
69ddf6cc41 | ||
|
114ecb9d67 | ||
|
df926955be | ||
|
813e56db51 | ||
|
f81b1dbe37 | ||
|
416ac254c2 | ||
|
f4e46e1a46 | ||
|
7ef4a07165 | ||
|
883f9891cb | ||
|
d9eff8ba19 | ||
|
b8528ea55e | ||
|
e5c28321b2 | ||
|
e77875dcbe |
3
Makefile
3
Makefile
@@ -376,6 +376,9 @@ GLUT_FILES = \
|
||||
$(DIRECTORY)/src/glut/dos/PC_HW/*.[chS] \
|
||||
$(DIRECTORY)/src/glut/ggi/*.[ch] \
|
||||
$(DIRECTORY)/src/glut/ggi/Makefile \
|
||||
$(DIRECTORY)/src/glut/fbdev/Makefile \
|
||||
$(DIRECTORY)/src/glut/fbdev/cursors.h \
|
||||
$(DIRECTORY)/src/glut/fbdev/glut_fbdev.c \
|
||||
$(DIRECTORY)/windows/VC6/progs/glut/glut.dsp \
|
||||
$(DIRECTORY)/windows/VC7/progs/glut/glut.vcproj
|
||||
|
||||
|
@@ -10,7 +10,7 @@ CXX = xlC
|
||||
|
||||
CFLAGS = -q64 -qmaxmem=16384 -O -DAIXV3 -DPTHREADS
|
||||
CXXFLAGS = -q64 -qmaxmem=16384 -O -DAIXV3 -DPTHREADS
|
||||
LIB_DIR=$(TOP)/lib64
|
||||
LIB_DIR = lib64
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
@@ -20,8 +20,8 @@ GLW_LIB_NAME = libGLw.a
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
GL_LIB_DEPS = -lX11 -lXext -lm -lpthread
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm -lC
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lXi -lXmu -lX11 -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lXm -lXt -lX11
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm -lC
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lXi -lXmu -lX11 -lm
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lXm -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(TOP)/lib64 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm -lpthread -lC
|
||||
|
||||
|
@@ -11,7 +11,7 @@ CXX = xlC
|
||||
CFLAGS = -q64 -O -DAIXV3 -DPTHREADS
|
||||
CXXFLAGS = -q64 -O -DAIXV3 -DPTHREADS
|
||||
MKLIB_OPTIONS = -static
|
||||
LIB_DIR=$(TOP)/lib64
|
||||
LIB_DIR = lib64
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
@@ -20,6 +20,6 @@ GLUT_LIB_NAME = libglut.a
|
||||
GLW_LIB_NAME = libGLw.a
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
APP_LIB_DEPS = -q64 -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) \
|
||||
APP_LIB_DEPS = -q64 -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) \
|
||||
-lX11 -lXext -lXmu -lXi -lm -lpthread -lC
|
||||
|
||||
|
@@ -13,7 +13,7 @@ CXXFLAGS = -O2 -DAIXV3
|
||||
|
||||
MKLIB_OPTIONS = -arch aix-gcc
|
||||
GL_LIB_DEPS = -lX11 -lXext -lm
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lXi -lXmu
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -Wl,-brtl -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lX11 -lXext -lXmu -lXi
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lXi -lXmu
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -Wl,-brtl -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lX11 -lXext -lXmu -lXi
|
||||
|
||||
|
@@ -19,7 +19,7 @@ GLUT_LIB_NAME = libglut.a
|
||||
GLW_LIB_NAME = libGLw.a
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) \
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) \
|
||||
-lX11 -lXext -lXmu -lXi -lm -lpthread -lC
|
||||
|
||||
|
||||
|
@@ -93,8 +93,8 @@ PROGRAM_DIRS = beos samples redbook demos tests
|
||||
|
||||
# Library/program dependencies
|
||||
GL_LIB_DEPS =
|
||||
OSMESA_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB)
|
||||
OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
||||
GLU_LIB_DEPS =
|
||||
GLUT_LIB_DEPS = -lgame -L$(LIB_DIR) -l$(GL_LIB)
|
||||
APP_LIB_DEPS = -lbe -L$(LIB_DIR) -l$(GL_LIB) -l$(GLUT_LIB)
|
||||
GLUT_LIB_DEPS = -lgame -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
||||
APP_LIB_DEPS = -lbe -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLUT_LIB)
|
||||
|
||||
|
@@ -18,9 +18,9 @@ GLW_LIB_NAME = libGLw.dylib
|
||||
OSMESA_LIB_NAME = libOSMesa.dylib
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
OSMESA_LIB_DEPS = -L$(LIB_DIR) -lGL
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -lGL
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -lGL -lGLU -L/usr/X11R6/lib -lX11 -lXmu -lXi -lXext
|
||||
OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lGL
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lGL
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lGL -lGLU -L/usr/X11R6/lib -lX11 -lXmu -lXi -lXext
|
||||
GLW_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXt $(TOP)/lib/GL.dylib
|
||||
APP_LIB_DEPS = -L$(TOP)/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
|
||||
|
@@ -22,9 +22,9 @@ GLW_LIB_NAME = libGLw.dylib
|
||||
OSMESA_LIB_NAME = libOSMesa.dylib
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
OSMESA_LIB_DEPS = -L$(LIB_DIR) -lGL
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -lGL
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -lGL -lGLU -L/usr/X11R6/lib -lX11 -lXmu -lXi -lXext
|
||||
OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lGL
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lGL
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lGL -lGLU -L/usr/X11R6/lib -lX11 -lXmu -lXi -lXext
|
||||
GLW_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXt $(TOP)/lib/GL.dylib
|
||||
APP_LIB_DEPS = -L$(TOP)/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
|
||||
|
@@ -10,7 +10,7 @@ CONFIG_NAME = default
|
||||
# Version info
|
||||
MESA_MAJOR=6
|
||||
MESA_MINOR=5
|
||||
MESA_TINY=0
|
||||
MESA_TINY=1
|
||||
|
||||
# external projects. This should be useless now that we use libdrm.
|
||||
DRM_SOURCE_PATH=$(TOP)/../drm
|
||||
@@ -59,7 +59,7 @@ GLW_SOURCES = GLwDrawA.c
|
||||
|
||||
|
||||
# Directories to build
|
||||
LIB_DIR = $(TOP)/lib
|
||||
LIB_DIR = lib
|
||||
SRC_DIRS = mesa glu glut/glx glw
|
||||
GLU_DIRS = sgi
|
||||
DRIVER_DIRS = x11 osmesa
|
||||
@@ -70,14 +70,18 @@ PROGRAM_DIRS = demos redbook samples xdemos
|
||||
# Library/program dependencies
|
||||
EXTRA_LIB_PATH ?=
|
||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
|
||||
OSMESA_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB)
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
|
||||
|
||||
|
||||
# Installation directories (for make install)
|
||||
INSTALL_DIR = /usr/local
|
||||
DRI_DRIVER_INSTALL_DIR = /usr/X11R6/lib/modules/dri
|
||||
|
||||
# Where libGL will look for DRI hardware drivers
|
||||
DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR)
|
||||
|
||||
|
@@ -26,4 +26,4 @@ CXXFLAGS += $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(DEFINES) $(X11_INCLUDES)
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
EXTRA_LIB_PATH = -L/usr/X11R6/lib
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) $(EXTRA_LIB_PATH) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lXext -lXmu -lXi -lX11 -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) $(EXTRA_LIB_PATH) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lXext -lXmu -lXi -lX11 -lm
|
||||
|
@@ -28,8 +28,8 @@ LIBDRM_LIB = `pkg-config --libs libdrm`
|
||||
DRI_LIB_DEPS = -L/usr/local/lib -lm -lpthread -lexpat $(LIBDRM_LIB)
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lm -lpthread $(LIBDRM_LIB)
|
||||
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -lGLU -lGL -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -lGL -lXt -lXm -lX11
|
||||
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 -lXm -lX11
|
||||
|
||||
|
||||
# Directories
|
||||
|
@@ -11,4 +11,4 @@ CXX = aCC
|
||||
CFLAGS = +O3 +DAportable +z -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM
|
||||
CXXFLAGS = +O3 +DAportable +Z -Aa -D_HPUX_SOURCE
|
||||
|
||||
APP_LIB_DEPS = -$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
|
||||
APP_LIB_DEPS = -$(TOP)/$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
|
||||
|
@@ -12,5 +12,5 @@ CFLAGS = -ansi -O3 -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/incl
|
||||
CXXFLAGS = -ansi -O3 -D_HPUX_SOURCE
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
|
||||
|
||||
|
@@ -26,5 +26,5 @@ OSMESA_LIB_DEPS =
|
||||
GLU_LIB_DEPS =
|
||||
GLUT_LIB_DEPS =
|
||||
GLW_LIB_DEPS =
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm -lstdc++
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm -lstdc++
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm -lstdc++
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm -lstdc++
|
||||
|
@@ -23,8 +23,8 @@ GLW_LIB_NAME = libGLw.a
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
# Library/program dependencies
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB)
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB)
|
||||
GL_LIB_DEPS = -L/usr/lib/X11R6/ -L/usr/contrib/X11R6/lib/ -lXext -lXt -lXi -lX11 -lm -lpthread
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm -lCsup -lcl
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm -lCsup -lcl
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
|
@@ -23,5 +23,5 @@ GLW_LIB_NAME = libGLw.a
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
# Library/program dependencies
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6/ -L/usr/contrib/X11R6/lib/ -lXext -lXmu -lXt -lXi -lX11 -lm -lpthread -lCsup -lcl
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6/ -L/usr/contrib/X11R6/lib/ -lXext -lXmu -lXt -lXi -lX11 -lm -lpthread -lCsup -lcl
|
||||
|
||||
|
@@ -14,7 +14,7 @@ CXXFLAGS = +z -Aa +DD64 +O2 +Onolimit +Oaggressive -D_HPUX_SOURCE -I/usr/include
|
||||
|
||||
MKLIB_OPTIONS =
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
LIB_DIR = lib64
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
@@ -24,8 +24,8 @@ GLW_LIB_NAME = libGLw.a
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
# Library/program dependencies
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB)
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB)
|
||||
GL_LIB_DEPS = -L/usr/lib/X11R6/pa20_64 -L/usr/contrib/X11R6/lib/pa20_64 -lXext -lXmu -lXt -lXi -lX11 -lm -lpthread
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm -lCsup -lcl
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm -lCsup -lcl
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
|
@@ -14,7 +14,7 @@ CXXFLAGS = +O3 +DA2.0W -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X1
|
||||
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
LIB_DIR = lib64
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
@@ -24,4 +24,4 @@ GLW_LIB_NAME = libGLw.a
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
# Library/program dependencies
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6/pa20_64 -L/usr/contrib/X11R6/lib/pa20_64 -lXext -lXmu -lXt -lXi -lX11 -lm -lpthread -lCsup -lcl
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6/pa20_64 -L/usr/contrib/X11R6/lib/pa20_64 -lXext -lXmu -lXt -lXi -lX11 -lm -lpthread -lCsup -lcl
|
||||
|
@@ -14,7 +14,7 @@ CXXFLAGS = +z -Aa +DD64 +O3 +DSmckinley -D_HPUX_SOURCE -I/usr/include/X11R6 -I/u
|
||||
|
||||
MKLIB_OPTIONS =
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
LIB_DIR = lib64
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.so
|
||||
@@ -25,6 +25,6 @@ OSMESA_LIB_NAME = libOSMesa.so
|
||||
|
||||
# Library/program dependencies
|
||||
GL_LIB_DEPS = -L/usr/lib/X11R6/ -L/usr/contrib/X11R6/lib/ -lXext -lXmu -lXt -lXi -lX11 -lm -lpthread
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm -lCsup -lcl
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm -lCsup -lcl
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
|
@@ -14,7 +14,7 @@ CXXFLAGS = +O3 +DD64 -Aa -D_HPUX_SOURCE +DSmckinley -I/usr/include/X11R6 -I/usr/
|
||||
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
LIB_DIR = lib64
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
@@ -24,4 +24,4 @@ GLW_LIB_NAME = libGLw.a
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
# Library/program dependencies
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lXt -lX11 -lpthread -lm -lCsup -lcl
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lXt -lX11 -lpthread -lm -lCsup -lcl
|
||||
|
@@ -12,5 +12,5 @@ CXX = c++
|
||||
CFLAGS = +z +O3 +Olibcalls +ESlit -Aa +Onolimit -D_HPUX_SOURCE -I/usr/include/X11R5 -DUSE_XSHM
|
||||
CXXFLAGS = +z +O3 +Olibcalls +ESlit -Aa +Onolimit -D_HPUX_SOURCE -I/usr/include/X11R5
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/lib/X11R5 -s -Wl,+s,-B,nonfatal,-B,immediate -lXext -lXmu -lXi -lX11 -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/lib/X11R5 -s -Wl,+s,-B,nonfatal,-B,immediate -lXext -lXmu -lXi -lX11 -lm
|
||||
|
||||
|
@@ -11,4 +11,4 @@ CXX = aCC
|
||||
CFLAGS = +O3 +DAportable +z -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM
|
||||
CXXFLAGS = +O3 +DAportable +Z -Aa -D_HPUX_SOURCE
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
|
||||
|
@@ -12,6 +12,6 @@ CXXFLAGS = -64 -O3 -ansi -woff 1174 -DPTHREADS
|
||||
|
||||
GLW_SOURCES = GLwDrawA.c GLwMDrawA.c
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
LIB_DIR = lib64
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -64 -rpath $(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXi -lpthread -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -64 -rpath $(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXi -lpthread -lm
|
||||
|
@@ -13,9 +13,9 @@ MKLIB_OPTIONS = -static
|
||||
|
||||
GLW_SOURCES = GLwDrawA.c GLwMDrawA.c
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
LIB_DIR = lib64
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -64 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lpthread -lm -lC
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -64 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lpthread -lm -lC
|
||||
|
||||
GL_LIB_NAME = libGL.a
|
||||
GLU_LIB_NAME = libGLU.a
|
||||
|
@@ -12,6 +12,6 @@ CXXFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1552 -DPTHREADS
|
||||
|
||||
GLW_SOURCES = GLwDrawA.c GLwMDrawA.c
|
||||
|
||||
LIB_DIR = $(TOP)/lib32
|
||||
LIB_DIR = lib32
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -n32 -rpath $(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXi -lfpe -lpthread -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -n32 -rpath $(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXi -lfpe -lpthread -lm
|
||||
|
@@ -13,9 +13,9 @@ MKLIB_OPTIONS = -static
|
||||
|
||||
GLW_SOURCES = GLwDrawA.c GLwMDrawA.c
|
||||
|
||||
LIB_DIR = $(TOP)/lib32
|
||||
LIB_DIR = lib32
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -n32 -glut -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lpthread -lm -lC
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -n32 -glut -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lpthread -lm -lC
|
||||
|
||||
GL_LIB_NAME = libGL.a
|
||||
GLU_LIB_NAME = libGLU.a
|
||||
|
@@ -12,7 +12,7 @@ CXXFLAGS = -32 -mips2 -O2 -ansi -woff 3262,3666
|
||||
|
||||
GLW_SOURCES = GLwDrawA.c GLwMDrawA.c
|
||||
|
||||
LIB_DIR = $(TOP)/lib32
|
||||
LIB_DIR = lib32
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -32 -rpath $(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -32 -rpath $(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm
|
||||
|
||||
|
@@ -13,9 +13,9 @@ MKLIB_OPTIONS = -static
|
||||
|
||||
GLW_SOURCES = GLwDrawA.c GLwMDrawA.c
|
||||
|
||||
LIB_DIR = $(TOP)/lib32
|
||||
LIB_DIR = lib32
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -32 -glut -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm -lC
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -32 -glut -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm -lC
|
||||
|
||||
GL_LIB_NAME = libGL.a
|
||||
GLU_LIB_NAME = libGLU.a
|
||||
|
@@ -12,7 +12,7 @@ CXXFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -fPIC -D_XOPEN_SOURCE
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
|
||||
|
@@ -22,6 +22,6 @@ OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -L/usr/X11R6/lib -lX11 -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -L/usr/X11R6/lib -lX11 -lm
|
||||
|
@@ -29,6 +29,6 @@ PROGRAM_DIRS = demos directfb
|
||||
|
||||
# Library/program dependencies
|
||||
GL_LIB_DEPS = -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -l$(GLU_LIB)
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -l$(GLU_LIB) -l$(GLUT_LIB)
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLU_LIB)
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLU_LIB) -l$(GLUT_LIB)
|
||||
|
||||
|
@@ -11,7 +11,7 @@ ASM_FLAGS = -DUSE_X86_64_ASM
|
||||
ASM_SOURCES = $(X86-64_SOURCES)
|
||||
ASM_API = $(X86-64_API)
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
LIB_DIR = lib64
|
||||
|
||||
# Library/program dependencies
|
||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib64
|
||||
|
@@ -15,6 +15,6 @@ GLUT_CFLAGS = -fexceptions
|
||||
|
||||
# Library/program dependencies
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -L/usr/local/glide/lib -lglide3x -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/local/glide/lib -lglide3x -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/local/glide/lib -lglide3x -lm
|
||||
|
@@ -13,9 +13,9 @@ GLUT_CFLAGS = -fexceptions
|
||||
MKLIB_OPTIONS = -arch icc-istatic
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lpthread
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB)
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB)
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(GL_LIB_DEPS)
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB)
|
||||
|
||||
|
||||
|
@@ -23,5 +23,5 @@ GL_LIB_DEPS =
|
||||
GLU_LIB_DEPS =
|
||||
GLUT_LIB_DEPS =
|
||||
GLW_LIB_DEPS =
|
||||
APP_LIB_DEPS = -i-static -cxxlib-icc -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lpthread -lm -lcxa -lunwind
|
||||
APP_LIB_DEPS = -i-static -cxxlib-icc -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lpthread -lm -lcxa -lunwind
|
||||
|
||||
|
@@ -13,8 +13,8 @@ GLUT_CFLAGS = -fexceptions
|
||||
MKLIB_OPTIONS = -arch icc
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
|
||||
ASM_SOURCES = $(X86_SOURCES)
|
||||
ASM_API = $(X86_API)
|
||||
|
@@ -21,7 +21,7 @@ OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
GL_LIB_DEPS =
|
||||
GLUT_LIB_DEPS =
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -lpthread -lcxa -lunwind
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -lpthread -lcxa -lunwind
|
||||
|
||||
ASM_SOURCES = $(X86_SOURCES)
|
||||
ASM_API = $(X86_API)
|
||||
|
@@ -21,5 +21,5 @@ PROGRAM_DIRS = osdemos
|
||||
|
||||
# Dependencies
|
||||
OSMESA_LIB_DEPS = -lm -lpthread
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(OSMESA_LIB)
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
|
||||
APP_LIB_DEPS = -lOSMesa -lGLU
|
||||
|
@@ -24,5 +24,5 @@ PROGRAM_DIRS =
|
||||
|
||||
# Dependencies
|
||||
OSMESA_LIB_DEPS = -lm -lpthread
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(OSMESA_LIB)
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
|
||||
APP_LIB_DEPS = -lOSMesa16
|
||||
|
@@ -24,5 +24,5 @@ PROGRAM_DIRS =
|
||||
|
||||
# Dependencies
|
||||
OSMESA_LIB_DEPS = -lm -lpthread
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(OSMESA_LIB)
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(OSMESA_LIB)
|
||||
APP_LIB_DEPS = -lOSMesa32
|
||||
|
@@ -16,8 +16,8 @@ GLUT_CFLAGS = -fexceptions
|
||||
|
||||
# Need to have -L/usr/X11R6/lib in these:
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lXt -L/usr/X11R6/lib -lX11
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lXt -L/usr/X11R6/lib -lX11
|
||||
|
||||
# Need to make static libs for profiling:
|
||||
MKLIB_OPTIONS = -static
|
||||
@@ -26,4 +26,4 @@ GLU_LIB_NAME = lib$(GLU_LIB).a
|
||||
GLUT_LIB_NAME = lib$(GLUT_LIB).a
|
||||
GLW_LIB_NAME = lib$(GLW_LIB).a
|
||||
OSMESA_LIB_NAME = lib$(OSMesa).a
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
|
||||
|
@@ -28,11 +28,11 @@ CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
|
||||
ASM_SOURCES =
|
||||
|
||||
# Library/program dependencies
|
||||
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl -L$(LIB_DIR)
|
||||
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl -L$(TOP)/$(LIB_DIR)
|
||||
GL_LIB_DEPS = -lm -lpthread -ldl
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
|
||||
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
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
|
||||
|
||||
# Directories
|
||||
SRC_DIRS = glx/mini mesa glu glut/mini
|
||||
|
@@ -26,5 +26,5 @@ GLUT_CFLAGS = -fexceptions
|
||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib
|
||||
|
||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11
|
||||
|
@@ -12,6 +12,6 @@ CXXFLAGS = -mcpu=ultrasparc -O2 -ffast-math -ansi -pedantic -fPIC -D_SVID_SOURCE
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
|
||||
|
@@ -12,6 +12,6 @@ CXXFLAGS = -mv8 -O2 -mtune=ultrasparc -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BS
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR)-l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR)-l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
|
@@ -10,5 +10,5 @@ ASM_SOURCES = $(X86-64_SOURCES)
|
||||
ASM_API = $(X86-64_API)
|
||||
ASM_FLAGS = -DUSE_X86_64_ASM
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
LIB_DIR = lib64
|
||||
EXTRA_LIB_PATH = -L/usr/X11R6/lib64
|
||||
|
@@ -19,5 +19,5 @@ OSMESA_LIB_DEPS =
|
||||
GLU_LIB_DEPS =
|
||||
GLUT_LIB_DEPS =
|
||||
GLW_LIB_DEPS =
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) \
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) \
|
||||
$(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lpthread -lstdc++ -lm
|
||||
|
@@ -20,6 +20,6 @@ ASM_API = $(X86_API)
|
||||
|
||||
# Library/program dependencies
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -L/usr/local/glide/lib -lglide3x -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/local/glide/lib -lglide3x -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/local/glide/lib -lglide3x -lm
|
||||
|
@@ -19,5 +19,5 @@ OSMESA_LIB_DEPS =
|
||||
GLU_LIB_DEPS =
|
||||
GLUT_LIB_DEPS =
|
||||
GLW_LIB_DEPS =
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) \
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) \
|
||||
$(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lpthread -lstdc++ -lm
|
||||
|
@@ -10,5 +10,5 @@ CXX = g++
|
||||
CFLAGS = -O2 -fPIC -DUSE_XSHM -I/usr/X11R6/include -DHZ=100
|
||||
CXXFLAGS = -O2 -fPIC
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
|
||||
|
||||
|
@@ -12,7 +12,7 @@ CXXFLAGS = -O2 -fPIC -I/usr/X11R6/include -DHZ=100
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm
|
||||
OSMESA_LIB_DEPS = -lm
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB)
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lm
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
|
||||
|
@@ -11,6 +11,6 @@ CFLAGS = -O0 -std1 -ieee_with_no_inexact -DUSE_XSHM -DPTHREADS -D_REENTRANT
|
||||
CXXFLAGS = -O2 -std ansi -ieee -DPTHREADS -D_REENTRANT
|
||||
|
||||
GL_LIB_DEPS = -lX11 -lXext -lm -lpthread
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXt -lXi -lm
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lpthread -lm
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXt -lXi -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lpthread -lm
|
||||
|
@@ -14,4 +14,4 @@ MKLIB_OPTIONS = -static
|
||||
GL_LIB_DEPS =
|
||||
GLU_LIB_DEPS =
|
||||
GLUT_LIB_DEPS =
|
||||
APP_LIB_DEPS = -noso -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -so_archive -lX11 -lXext -lXmu -lXi -lpthread -lm -lcxx
|
||||
APP_LIB_DEPS = -noso -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -so_archive -lX11 -lXext -lXmu -lXi -lpthread -lm -lcxx
|
||||
|
@@ -9,7 +9,7 @@ CC = cc
|
||||
CFLAGS = -Xa -xO3 -xpentium -KPIC -I/usr/openwin/include -DUSE_XSHM
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/openwin/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm -lglut -lGLU -lGL
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/openwin/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm -lglut -lGLU -lGL
|
||||
|
||||
GL_LIB_NAME = libGL.a
|
||||
GLU_LIB_NAME = libGLU.a
|
||||
|
@@ -12,6 +12,6 @@ CXXFLAGS = -O3 -march=i486 -fPIC
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
GL_LIB_DEPS = -L/usr/openwin/lib -lX11 -lXext -lm -lpthread
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/openwin/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/openwin/lib -R/usr/openwin/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lX11 -lXext -lXi -lXmu
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/openwin/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/openwin/lib -R/usr/openwin/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lX11 -lXext -lXi -lXmu
|
||||
|
@@ -13,9 +13,9 @@ GLUT_CFLAGS = -fexceptions
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
GL_LIB_DEPS = -L/usr/openwin/lib -lX11 -lXext -lm -lpthread
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/openwin/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/openwin/lib -R/usr/openwin/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lX11 -lXext -lXi -lXmu
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/openwin/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/openwin/lib -R/usr/openwin/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lX11 -lXext -lXi -lXmu
|
||||
|
||||
GL_LIB_NAME = libGL.a
|
||||
GLU_LIB_NAME = libGLU.a
|
||||
|
@@ -7,6 +7,6 @@ CONFIG_NAME = sunos4
|
||||
# Compiler and flags
|
||||
CC = acc
|
||||
CFLAGS = -Kpic -O -I/usr/include/X11R5 -DUSE_XSHM -DSUNOS4
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/lib/X11R5 -lX11 -lXext -lXmu -lXi -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/lib/X11R5 -lX11 -lXext -lXmu -lXi -lm
|
||||
|
||||
|
||||
|
@@ -11,5 +11,5 @@ CFLAGS = -fPIC -O3 -I/usr/openwin/include -I/usr/include/X11R5 -I/usr/include/X1
|
||||
CXXFLAGS = -fPIC -O3 -I/usr/openwin/include -DSUNOS4
|
||||
GLUT_CFLAGS = -fexceptions -DSOLARIS_2_4_BUG
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm
|
||||
|
||||
|
@@ -22,4 +22,4 @@ OSMESA_LIB_DEPS =
|
||||
GLU_LIB_DEPS =
|
||||
GLUT_LIB_DEPS =
|
||||
GLW_LIB_DEPS =
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm
|
||||
|
@@ -12,7 +12,7 @@ CXXFLAGS = -KPIC -Xa -O -I/usr/openwin/include -I/usr/dt/include
|
||||
GLUT_CFLAGS = -DSOLARIS_2_4_BUG
|
||||
|
||||
GL_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -lX11 -lXext -lXmu -lXi -lm
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -lCrun -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
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
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lCrun -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
|
@@ -32,5 +32,5 @@ GLUT_CFLAGS = -fexceptions -DSOLARIS_2_4_BUG
|
||||
EXTRA_LIB_PATH=-L/usr/openwin/lib
|
||||
|
||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXi -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
|
@@ -12,8 +12,8 @@ CXXFLAGS = -KPIC -Xa -native -fast -xO5 -xlibmil -xsafe=mem -xdepend -I/usr/open
|
||||
GLUT_CFLAGS = -DSOLARIS_2_4_BUG
|
||||
|
||||
GL_LIB_DEPS = -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lCrun
|
||||
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
|
||||
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 -lCrun
|
||||
|
||||
|
@@ -12,7 +12,7 @@ CXXFLAGS = -xarch=v8 -KPIC -O -I/usr/openwin/include -I/usr/dt/include -DPTHREAD
|
||||
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$(LIB_DIR) -l$(GL_LIB) -lm -lCstd -lCrun
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
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
|
||||
|
@@ -13,4 +13,4 @@ CFLAGS = -xarch=v8 -KPIC -O -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM
|
||||
CXXFLAGS = -xarch=v8 -KPIC -O -I/usr/openwin/include -I/usr/dt/include -DPTHREADS
|
||||
GLUT_CFLAGS = -DSOLARIS_2_4_BUG
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11 -lXext -lXmu -lXi -lpthread -lm -lCstd -lCrun
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11 -lXext -lXmu -lXi -lpthread -lm -lCstd -lCrun
|
||||
|
@@ -6,7 +6,7 @@ CONFIG_NAME = sunos5-v9
|
||||
|
||||
MKLIB_OPTIONS = -cplusplus
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
LIB_DIR = lib64
|
||||
|
||||
# Compiler and flags
|
||||
CC = cc
|
||||
@@ -16,8 +16,8 @@ CXXFLAGS = -xarch=v9 -KPIC -O -I/usr/openwin/include -I/usr/dt/include -DPTHREAD
|
||||
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$(LIB_DIR) -l$(GL_LIB) -lm -lCstd -lCrun
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
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
|
||||
|
||||
|
@@ -6,7 +6,7 @@ CONFIG_NAME = sunos5-v9-static
|
||||
|
||||
MKLIB_OPTIONS = -static -cplusplus
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
LIB_DIR = lib64
|
||||
|
||||
# Compiler and flags
|
||||
CC = cc
|
||||
@@ -15,4 +15,4 @@ CFLAGS = -xarch=v9 -KPIC -O -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM
|
||||
CXXFLAGS = -xarch=v9 -KPIC -O -I/usr/openwin/include -I/usr/dt/include -DPTHREADS
|
||||
GLUT_CFLAGS = -DSOLARIS_2_4_BUG
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11 -lXext -lXmu -lXi -lpthread -lm -lCstd -lCrun
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11 -lXext -lXmu -lXi -lpthread -lm -lCstd -lCrun
|
||||
|
@@ -18,4 +18,4 @@ GLUT_LIB_NAME = libglut.a
|
||||
GLW_LIB_NAME = libGLw.a
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lXmu -lX11 -lXi -lm
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lXmu -lX11 -lXi -lm
|
||||
|
@@ -17,9 +17,9 @@ Status
|
||||
|
||||
Version
|
||||
|
||||
Last Modified Date: May 29, 2006
|
||||
Author Revision: 0.1
|
||||
$Date: 2006/05/30 09:35:36 $ $Revision: 1.1 $
|
||||
Last Modified Date: July 30, 2006
|
||||
Author Revision: 0.2
|
||||
$Date: 2006/07/30 14:28:38 $ $Revision: 1.2 $
|
||||
|
||||
Number
|
||||
|
||||
@@ -27,16 +27,26 @@ Number
|
||||
|
||||
Dependencies
|
||||
|
||||
OpenGL 1.5 is required.
|
||||
OpenGL 1.0 is required.
|
||||
|
||||
The ARB_shader_objects extension is required.
|
||||
|
||||
The ARB_shading_language_100 extension is required.
|
||||
|
||||
The extension is written against the OpenGL 1.5 specification.
|
||||
ARB_shading_language_100 is required.
|
||||
ARB_shader_objects is required.
|
||||
The extension is written against the OpenGL Shading Language
|
||||
1.10 Specification.
|
||||
|
||||
The extension is written against the OpenGL Shading Language 1.10
|
||||
Specification.
|
||||
|
||||
Overview
|
||||
|
||||
TBD
|
||||
This extension introduces a debug object that can be attached to
|
||||
a program object to enable debugging. Vertex and/or fragment shader,
|
||||
during execution, issue diagnostic function calls that are logged
|
||||
to the debug object's log. A separate debug log for each shader type
|
||||
is maintained. A debug object can be attached, detached and queried
|
||||
at any time outside the Begin/End pair. Multiple debug objects can
|
||||
be attached to a single program object.
|
||||
|
||||
IP Status
|
||||
|
||||
@@ -48,7 +58,13 @@ Issues
|
||||
|
||||
New Procedures and Functions
|
||||
|
||||
TBD
|
||||
handleARB CreateDebugObjectMESA(void)
|
||||
void ClearDebugLogMESA(handleARB obj, enum logType, enum shaderType)
|
||||
void GetDebugLogMESA(handleARB obj, enum logType, enum shaderType,
|
||||
sizei maxLength, sizei *length,
|
||||
charARB *debugLog)
|
||||
sizei GetDebugLogLengthMESA(handleARB obj, enum logType,
|
||||
enum shaderType)
|
||||
|
||||
New Types
|
||||
|
||||
@@ -56,7 +72,15 @@ New Types
|
||||
|
||||
New Tokens
|
||||
|
||||
TBD
|
||||
Returned by the <params> parameter of GetObjectParameter{fi}vARB:
|
||||
|
||||
DEBUG_OBJECT_MESA 0x8759
|
||||
|
||||
Accepted by the <logType> argument of ClearDebugLogMESA,
|
||||
GetDebugLogLengthMESA and GetDebugLogMESA:
|
||||
|
||||
DEBUG_PRINT_MESA 0x875A
|
||||
DEBUG_ASSERT_MESA 0x875B
|
||||
|
||||
Additions to Chapter 2 of the OpenGL 1.5 Specification
|
||||
(OpenGL Operation)
|
||||
@@ -128,31 +152,75 @@ Additions to Chapter 8 of the OpenGL Shading Language 1.10 Specification
|
||||
|
||||
Debug functions are available to both fragment and vertex shaders.
|
||||
They are used to track the execution of a shader by logging
|
||||
passed-in arguments to the shader's info log. That values can be
|
||||
retrieved and validated by the application after shader execution
|
||||
passed-in arguments to the debug object's log. Those values can be
|
||||
retrieved by the application for inspection after shader execution
|
||||
is complete.
|
||||
|
||||
void printMESA(const float value);
|
||||
void printMESA(const int value);
|
||||
void printMESA(const bool value);
|
||||
void printMESA(const vec2 value);
|
||||
void printMESA(const vec3 value);
|
||||
void printMESA(const vec4 value);
|
||||
void printMESA(const ivec2 value);
|
||||
void printMESA(const ivec3 value);
|
||||
void printMESA(const ivec4 value);
|
||||
void printMESA(const bvec2 value);
|
||||
void printMESA(const bvec3 value);
|
||||
void printMESA(const bvec4 value);
|
||||
void printMESA(const mat2 value);
|
||||
void printMESA(const mat3 value);
|
||||
void printMESA(const mat4 value);
|
||||
void printMESA(const sampler1D value);
|
||||
void printMESA(const sampler2D value);
|
||||
void printMESA(const sampler3D value);
|
||||
void printMESA(const samplerCube value);
|
||||
void printMESA(const sampler1DShadow value);
|
||||
void printMESA(const sampler2DShadow value);
|
||||
The text, if any, produced by any of these functions is appended
|
||||
to each debug object that is attached to the program object.
|
||||
There are different debug log types
|
||||
|
||||
Add a new section 8.10.1 "Print Function":
|
||||
|
||||
The following printMESA prototypes are available.
|
||||
|
||||
void printMESA(const float value)
|
||||
void printMESA(const int value)
|
||||
void printMESA(const bool value)
|
||||
void printMESA(const vec2 value)
|
||||
void printMESA(const vec3 value)
|
||||
void printMESA(const vec4 value)
|
||||
void printMESA(const ivec2 value)
|
||||
void printMESA(const ivec3 value)
|
||||
void printMESA(const ivec4 value)
|
||||
void printMESA(const bvec2 value)
|
||||
void printMESA(const bvec3 value)
|
||||
void printMESA(const bvec4 value)
|
||||
void printMESA(const mat2 value)
|
||||
void printMESA(const mat3 value)
|
||||
void printMESA(const mat4 value)
|
||||
void printMESA(const sampler1D value)
|
||||
void printMESA(const sampler2D value)
|
||||
void printMESA(const sampler3D value)
|
||||
void printMESA(const samplerCube value)
|
||||
void printMESA(const sampler1DShadow value)
|
||||
void printMESA(const sampler2DShadow value)
|
||||
|
||||
The printMESA function writes the argument <value> to the "debug
|
||||
print log" (XXX DEBUG_PRINT_MESA?). Each component is written in
|
||||
text format (XXX format!) and is delimited by a white space (XXX 1
|
||||
or more?).
|
||||
|
||||
Add a new section 8.10.2 "Assert Function":
|
||||
|
||||
The following assertMESA prototypes are available.
|
||||
|
||||
void assertMESA(const bool condition)
|
||||
void assertMESA(const bool condition, const int cookie)
|
||||
void assertMESA(const bool condition, const int cookie,
|
||||
const int file, const int line)
|
||||
|
||||
The assertMESA function checks if the argument <condition> is
|
||||
true or false. If it is true, nothing happens. If it is false,
|
||||
a diagnostic message is written to the "debug assert log".
|
||||
The message contains the argument <file>, <line>, <cookie> and
|
||||
implementation dependent double-quoted string, each of this
|
||||
delimited by a white space. If the argument <cookie> is not present,
|
||||
it is meant as if it was of value 0. If the arguments <file> and
|
||||
<line> are not present, they are meant as if they were of values
|
||||
__FILE__ and __LINE__, respectively. The following three calls
|
||||
produce the same output, assuming they were issued from the same
|
||||
file and line.
|
||||
|
||||
assertMESA (false);
|
||||
assertMESA (false, 0);
|
||||
assertMESA (false, 0, __FILE__, __LINE__);
|
||||
|
||||
The diagnostic message examples follow.
|
||||
|
||||
1 89 0 ""
|
||||
1 45 333 "all (lessThanEqual (fragColor, vec4 (1.0)))"
|
||||
1 66 1 "assertion failed in file 1, line 66, cookie 1"
|
||||
|
||||
Additions to Chapter 9 of the OpenGL Shading Language 1.10 Specification
|
||||
(Shading Language Grammar)
|
||||
@@ -192,3 +260,6 @@ Revision History
|
||||
|
||||
29 May 2006
|
||||
Initial draft. (Michal Krol)
|
||||
30 July 2006
|
||||
Add Overview, New Procedures and Functions, New Tokens sections.
|
||||
Add sections 8.10.1, 8.10.2 to GLSL spec.
|
||||
|
@@ -1474,6 +1474,7 @@ Mesa Version History
|
||||
6.5.1 month, day, 2006
|
||||
New:
|
||||
- GL_APPLE_vertex_array_object extension (Ian Romanick)
|
||||
- "engine" demo
|
||||
Changes:
|
||||
- The glVertexAttribARB functions no longer alias the conventional
|
||||
vertex attributes.
|
||||
@@ -1495,3 +1496,5 @@ Mesa Version History
|
||||
- rectangular depth textures didn't work
|
||||
- invalid mode to glBegin didn't generate an error (bug 7142)
|
||||
- 'normalized' parameter to glVertexAttribPointerARB didn't work
|
||||
- disable bogus GLX_SGI_video_sync extension in xlib driver
|
||||
- fixed R128 driver locking bug (Martijn van Oosterhout)
|
||||
|
@@ -47,9 +47,13 @@ If you're not interested in running the demos, you'll only need the first
|
||||
package.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you're new to this and not sure what you're doing, grab all three packages.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The packages are available in .tar.gz, .tar.bz2 and .zip formats.
|
||||
Other organizations might offer additional package formats.
|
||||
Other sites might offer additional package formats.
|
||||
</p>
|
||||
|
||||
<H1>Unpacking</H1>
|
||||
@@ -95,7 +99,7 @@ or
|
||||
<h1>Contents</h1>
|
||||
|
||||
<p>
|
||||
After unpacking you'll have these directories:
|
||||
After unpacking you'll have these files and directories (among others):
|
||||
</p>
|
||||
<pre>
|
||||
Makefile - top-level Makefile for most systems
|
||||
@@ -106,6 +110,7 @@ docs/ - documentation
|
||||
src/ - source code for libraries
|
||||
src/mesa - sources for the main Mesa library and device drivers
|
||||
src/glu - libGLU source code
|
||||
src/glx - sources for building libGL with full GLX and DRI support
|
||||
src/glw - Xt/Motif/OpenGL widget code
|
||||
</pre>
|
||||
|
||||
|
@@ -30,6 +30,11 @@ MESA_ycbcr_texture.spec:
|
||||
GL_MESA_pack_invert.spec
|
||||
GL_PACK_INVERT_MESA 0x8758
|
||||
|
||||
GL_MESA_shader_debug.spec:
|
||||
GL_DEBUG_OBJECT_MESA 0x8759
|
||||
GL_DEBUG_PRINT_MESA 0x875A
|
||||
GL_DEBUG_ASSERT_MESA 0x875B
|
||||
|
||||
GL_MESA_program_debug.spec:
|
||||
GL_FRAGMENT_PROGRAM_CALLBACK_MESA 0x????
|
||||
GL_VERTEX_PROGRAM_CALLBACK_MESA 0x????
|
||||
|
@@ -37,54 +37,75 @@ The GL/glfbdev.h header file defines the glFBDev interface.
|
||||
The progs/fbdev/glfbdevtest.c demonstrates how to use the glFBDev interface.
|
||||
</p>
|
||||
|
||||
|
||||
<p>
|
||||
For more information about fbdev, see the
|
||||
<a href="http://www.tldp.org/HOWTO/Framebuffer-HOWTO.html" target="_parent">
|
||||
Framebuffer Howto</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You will need at minimum, a framebuffer device, check /dev/fb0
|
||||
</p>
|
||||
|
||||
<h1>2. Compilation</h1>
|
||||
|
||||
<p>
|
||||
To compile Mesa with support for the glFBDev interface:
|
||||
<pre>
|
||||
XXX todo
|
||||
make realclean
|
||||
make linux-fbdev
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
When compilation is finished look in progs/glfbdev/ for the glfbdevtest demo.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
xxx todo
|
||||
</p>
|
||||
|
||||
|
||||
<h1>3. Compiling and linking glFBDev programs</h1>
|
||||
<h1>3. Permissions</h1>
|
||||
|
||||
<p>
|
||||
xxx todo
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<h1>4. Running glFBDev programs</h1>
|
||||
|
||||
Typically /dev/fb/0 is grouped to the video group. It may be useful to add
|
||||
your user to the video group so the demos will not have to be run as root.
|
||||
To use fbdevglut with the prefered tty input, you should add the user to the
|
||||
tty group as well
|
||||
<p>
|
||||
First, you need to have a working fbdev environment.
|
||||
See the
|
||||
<a href="http://www.tldp.org/HOWTO/Framebuffer-HOWTO.html" target="_parent">
|
||||
Framebuffer Howto</a> for information.
|
||||
</p>
|
||||
|
||||
<h1>4. Using fbdevglut</h1>
|
||||
Almost all of the programs in the progs directory use glut, and they compile with fbdevglut.
|
||||
Currently glBlendFunc is not working with glFBDev.
|
||||
<p>
|
||||
Programs must be run with root permission.
|
||||
To compile the redbook sample programs:
|
||||
<pre>
|
||||
cd progs/redbook
|
||||
make
|
||||
</pre>
|
||||
</p>
|
||||
<p>glut features not supported:
|
||||
<li>Overlays
|
||||
<li>Subwindows
|
||||
<li>Input devices other than Keyboard/Mouse
|
||||
<li>No support for GLUT_MULTISAMPLE, GLUT_STEREO, or GLUT_LUMINANCE
|
||||
<li>Cursor and Menu Support will flicker in GLUT_SINGLE mode
|
||||
|
||||
<p>Keyboard input is read by opening /dev/tty and reading keycodes in medium raw mode.
|
||||
<p>Mouse input is read from env var MOUSE, or /dev/gpmdata and should be in ms3 format.
|
||||
To forward data in this format to /dev/gpmdata, run gpm with the -Rms3 option.
|
||||
<p> glutInit allows glut programs to pass parameters to the glut library, currently the
|
||||
following options are supported for fbdevglut:
|
||||
<p><li>-geometry widthxheight -- This will force the resolution to be widthxheight instead of autodetecting.
|
||||
The modes are read from /etc/fb.modes
|
||||
<p><li>-bpp -- This will force the bitdepth to the one specified
|
||||
<p><li>-vt -- This allows you to specify the virtual terminal to attach keyboard input to. It is useful to specify when running inside screen.
|
||||
<p><li>-mousespeed -- A floating point multiplication factor to increase mouse speed
|
||||
<p><li>-nomouse -- Disable mouse support
|
||||
<p><li>-nokeyboard -- Disable keyboard support (this will probably break mouse support as well)
|
||||
<p><li>-stdin -- Use stdin for input instead of attaching to kbd in medium-raw mode.
|
||||
This will make it impossible to detect keypresses like Shift+Tab, you will also need to specify -gpmmouse for mouse support. This option can be used with a debugger, and it is possible to single step a program with gdb and set the FRAMEBUFFER environment variable to a different framebuffer for display. The program will not be able to handle vt switching on it's own, so it will always display.
|
||||
<p><li>-gpmmouse -- This will attempt to connect to the /dev/gpmctl socket using liblow
|
||||
for mouse data. Gpm does not provide this data when in graphics mode, so vt switching
|
||||
will briefly display text. This mode typically has no initial mouse delay.
|
||||
<p><li>-- Ignore any additional arguments
|
||||
<p>Notes:
|
||||
<p>
|
||||
1. The mouse pointer flickers in single buffering mode, as it must be rendered in software. Hopefully in the future there will be a way to access hardware cursors in fbdev devices.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -32,6 +32,7 @@ a software renderer using Xlib to do all rendering.
|
||||
The libGL.so library will be a self-contained rendering library that will
|
||||
allow you to run OpenGL/GLX applications on any X server (regardless of
|
||||
whether it supports the GLX X server extension).
|
||||
You will <em>not</em> be able to use hardware 3D acceleration.
|
||||
<p>
|
||||
To compile stand-alone Mesa type <b>make</b> in the top-level directory.
|
||||
You'll see a list of supported system configurations.
|
||||
@@ -126,7 +127,7 @@ Later, if you want to rebuild for a different configuration run
|
||||
|
||||
<p>
|
||||
When compilation has finished, look in the top-level <code>lib/</code>
|
||||
directory.
|
||||
(or <code>lib64/</code>) directory.
|
||||
You'll see a set of library files similar to this:
|
||||
</p>
|
||||
<pre>
|
||||
@@ -278,14 +279,16 @@ already installed, you'll have to choose different directories, like
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To install Mesa's headers and libraries, run <code>make install</code>
|
||||
You'll be prompted to enter alternative directories for the headers
|
||||
and libraries.
|
||||
To install Mesa's headers and libraries, run <code>make install</code>.
|
||||
But first, check the Mesa/configs/default file and examine the values
|
||||
of the <b>INSTALL_DIR</b> and <b>DRI_DRIVER_INSTALL_DIR</b> variables.
|
||||
Change them if needed, then run <code>make install</code>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Note: at runtime, you can set the LD_LIBRARY_PATH (on Linux) to switch
|
||||
between the Mesa libs and another vendor libs whenever you want.
|
||||
Note: at runtime you can use the LD_LIBRARY_PATH environment variable
|
||||
(on Linux at least) to switch
|
||||
between the Mesa libraries and other vendor's libraries whenever you want.
|
||||
This is a handy way to compare multiple OpenGL implementations.
|
||||
</p>
|
||||
|
||||
|
@@ -108,6 +108,7 @@
|
||||
#define glClampColorARB MANGLE(ClampColorARB)
|
||||
#define glClearAccum MANGLE(ClearAccum)
|
||||
#define glClearColor MANGLE(ClearColor)
|
||||
#define glClearDebugLogMESA MANGLE(ClearDebugLogMESA)
|
||||
#define glClearDepth MANGLE(ClearDepth)
|
||||
#define glClearIndex MANGLE(ClearIndex)
|
||||
#define glClear MANGLE(Clear)
|
||||
@@ -230,6 +231,7 @@
|
||||
#define glCopyTexSubImage2D MANGLE(CopyTexSubImage2D)
|
||||
#define glCopyTexSubImage3DEXT MANGLE(CopyTexSubImage3DEXT)
|
||||
#define glCopyTexSubImage3D MANGLE(CopyTexSubImage3D)
|
||||
#define glCreateDebugObjectMESA MANGLE(CreateDebugObjectMESA)
|
||||
#define glCreateProgram MANGLE(CreateProgram)
|
||||
#define glCreateProgramObjectARB MANGLE(CreateProgramObjectARB)
|
||||
#define glCreateShader MANGLE(CreateShader)
|
||||
@@ -438,6 +440,8 @@
|
||||
#define glGetConvolutionParameterfv MANGLE(GetConvolutionParameterfv)
|
||||
#define glGetConvolutionParameterivEXT MANGLE(GetConvolutionParameterivEXT)
|
||||
#define glGetConvolutionParameteriv MANGLE(GetConvolutionParameteriv)
|
||||
#define glGetDebugLogLengthMESA MANGLE(GetDebugLogLengthMESA)
|
||||
#define glGetDebugLogMESA MANGLE(GetDebugLogMESA)
|
||||
#define glGetDetailTexFuncSGIS MANGLE(GetDetailTexFuncSGIS)
|
||||
#define glGetDoublev MANGLE(GetDoublev)
|
||||
#define glGetError MANGLE(GetError)
|
||||
@@ -1470,5 +1474,6 @@
|
||||
#define glWindowPos4sMESA MANGLE(WindowPos4sMESA)
|
||||
#define glWindowPos4svMESA MANGLE(WindowPos4svMESA)
|
||||
#define glWriteMaskEXT MANGLE(WriteMaskEXT)
|
||||
gl.h:GLAPI void GLAPIENTRY
|
||||
|
||||
#endif /* GL_MANGLE_H */
|
||||
|
@@ -5,13 +5,13 @@ include $(TOP)/configs/current
|
||||
|
||||
INCDIR = $(TOP)/include
|
||||
|
||||
OSMESA_LIBS = -L$(LIB_DIR) -lglut -lOSMesa -lGLU -lGL $(APP_LIB_DEPS)
|
||||
OSMESA_LIBS = -L$(TOP)/$(LIB_DIR) -lglut -lOSMesa -lGLU -lGL $(APP_LIB_DEPS)
|
||||
|
||||
OSMESA16_LIBS = -L$(LIB_DIR) -lglut -lOSMesa16 -lGLU -lGL $(APP_LIB_DEPS)
|
||||
OSMESA16_LIBS = -L$(TOP)/$(LIB_DIR) -lglut -lOSMesa16 -lGLU -lGL $(APP_LIB_DEPS)
|
||||
|
||||
OSMESA32_LIBS = -L$(LIB_DIR) -lglut -lOSMesa32 -lGLU -lGL $(APP_LIB_DEPS)
|
||||
OSMESA32_LIBS = -L$(TOP)/$(LIB_DIR) -lglut -lOSMesa32 -lGLU -lGL $(APP_LIB_DEPS)
|
||||
|
||||
LIB_DEP = $(LIB_DIR)/$(GL_LIB_NAME) $(LIB_DIR)/$(GLU_LIB_NAME) $(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
|
||||
PROGS = \
|
||||
arbfplight \
|
||||
@@ -47,6 +47,7 @@ PROGS = \
|
||||
renormal \
|
||||
shadowtex \
|
||||
singlebuffer \
|
||||
streaming_rect \
|
||||
spectex \
|
||||
spriteblast \
|
||||
stex3d \
|
||||
|
@@ -47,6 +47,7 @@ typedef struct
|
||||
GLuint CrankList;
|
||||
GLuint ConnRodList;
|
||||
GLuint PistonList;
|
||||
GLuint BlockList;
|
||||
} Engine;
|
||||
|
||||
|
||||
@@ -80,6 +81,7 @@ typedef struct
|
||||
GLboolean UseLists;
|
||||
GLboolean DrawBox;
|
||||
GLboolean ShowInfo;
|
||||
GLboolean ShowBlock;
|
||||
} RenderInfo;
|
||||
|
||||
|
||||
@@ -87,9 +89,10 @@ static GLUquadric *Q;
|
||||
|
||||
static GLfloat Theta = 0.0;
|
||||
|
||||
static GLfloat PistonColor[4] = { 1.0, 0.5, 0.5, 1.0 };
|
||||
static GLfloat ConnRodColor[4] = { 0.7, 1.0, 0.7, 1.0 };
|
||||
static GLfloat CrankshaftColor[4] = { 0.7, 0.7, 1.0, 1.0 };
|
||||
static const GLfloat PistonColor[4] = { 1.0, 0.5, 0.5, 1.0 };
|
||||
static const GLfloat ConnRodColor[4] = { 0.7, 1.0, 0.7, 1.0 };
|
||||
static const GLfloat CrankshaftColor[4] = { 0.7, 0.7, 1.0, 1.0 };
|
||||
static const GLfloat BlockColor[4] = {0.8, 0.8, 0.8, 0.75 };
|
||||
|
||||
static GLuint TextureObj;
|
||||
static GLint WinWidth = 800, WinHeight = 500;
|
||||
@@ -113,7 +116,7 @@ static Engine Engines[NUM_ENGINES] =
|
||||
0.25, /* CrankPinRadius */
|
||||
0.3, /* CrankJournalRadius */
|
||||
0.4, /* CrankJournalLength */
|
||||
1.3, /* ConnectingRodLength */
|
||||
1.5, /* ConnectingRodLength */
|
||||
0.1 /* ConnectingRodThickness */
|
||||
},
|
||||
{
|
||||
@@ -129,7 +132,7 @@ static Engine Engines[NUM_ENGINES] =
|
||||
0.25, /* CrankPinRadius */
|
||||
0.3, /* CrankJournalRadius */
|
||||
0.4, /* CrankJournalLength */
|
||||
1.3, /* ConnectingRodLength */
|
||||
1.5, /* ConnectingRodLength */
|
||||
0.1 /* ConnectingRodThickness */
|
||||
},
|
||||
{
|
||||
@@ -145,7 +148,7 @@ static Engine Engines[NUM_ENGINES] =
|
||||
0.25, /* CrankPinRadius */
|
||||
0.3, /* CrankJournalRadius */
|
||||
0.4, /* CrankJournalLength */
|
||||
1.3, /* ConnectingRodLength */
|
||||
1.5, /* ConnectingRodLength */
|
||||
0.1 /* ConnectingRodThickness */
|
||||
}
|
||||
};
|
||||
@@ -180,6 +183,7 @@ InitRenderInfo(RenderInfo *render)
|
||||
render->Texture = GL_FALSE;
|
||||
render->DrawBox = GL_FALSE;
|
||||
render->ShowInfo = GL_TRUE;
|
||||
render->ShowBlock = GL_FALSE;
|
||||
render->UseLists = GL_FALSE;
|
||||
}
|
||||
|
||||
@@ -190,6 +194,9 @@ InitRenderInfo(RenderInfo *render)
|
||||
static void
|
||||
SetRenderState(RenderMode mode)
|
||||
{
|
||||
static const GLfloat gray2[4] = { 0.2, 0.2, 0.2, 1.0 };
|
||||
static const GLfloat gray4[4] = { 0.4, 0.4, 0.4, 1.0 };
|
||||
|
||||
/* defaults */
|
||||
glDisable(GL_LIGHTING);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
@@ -198,6 +205,7 @@ SetRenderState(RenderMode mode)
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
glDisable(GL_TEXTURE_GEN_S);
|
||||
glDisable(GL_TEXTURE_GEN_T);
|
||||
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, gray2);
|
||||
|
||||
switch (mode) {
|
||||
case LIT:
|
||||
@@ -214,6 +222,7 @@ SetRenderState(RenderMode mode)
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glEnable(GL_TEXTURE_GEN_S);
|
||||
glEnable(GL_TEXTURE_GEN_T);
|
||||
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, gray4);
|
||||
break;
|
||||
default:
|
||||
;
|
||||
@@ -269,6 +278,19 @@ PistonShaftPosition(const Engine *eng, int piston)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Compute distance between two adjacent pistons
|
||||
*/
|
||||
static float
|
||||
PistonSpacing(const Engine *eng)
|
||||
{
|
||||
const int pistonsPerCrank = eng->Pistons / eng->Cranks;
|
||||
const float z0 = PistonShaftPosition(eng, 0);
|
||||
const float z1 = PistonShaftPosition(eng, pistonsPerCrank);
|
||||
return z1 - z0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* (x0, y0) = position of big end on crankshaft
|
||||
* (x1, y1) = position of small end on piston
|
||||
@@ -517,6 +539,144 @@ DrawPositionedConnectingRod(const Engine *eng, float crankAngle)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draw a square with a hole in middle.
|
||||
*/
|
||||
static void
|
||||
SquareWithHole(float squareSize, float holeRadius)
|
||||
{
|
||||
int i;
|
||||
glBegin(GL_QUAD_STRIP);
|
||||
glNormal3f(0, 0, 1);
|
||||
for (i = 0; i <= 360; i += 5) {
|
||||
const float x1 = holeRadius * cos(DEG_TO_RAD(i));
|
||||
const float y1 = holeRadius * sin(DEG_TO_RAD(i));
|
||||
float x2, y2;
|
||||
if (i > 315 || i <= 45) {
|
||||
x2 = squareSize;
|
||||
y2 = squareSize * tan(DEG_TO_RAD(i));
|
||||
}
|
||||
else if (i > 45 && i <= 135) {
|
||||
x2 = -squareSize * tan(DEG_TO_RAD(i - 90));
|
||||
y2 = squareSize;
|
||||
}
|
||||
else if (i > 135 && i <= 225) {
|
||||
x2 = -squareSize;
|
||||
y2 = -squareSize * tan(DEG_TO_RAD(i-180));
|
||||
}
|
||||
else if (i > 225 && i <= 315) {
|
||||
x2 = squareSize * tan(DEG_TO_RAD(i - 270));
|
||||
y2 = -squareSize;
|
||||
}
|
||||
glVertex2f(x1, y1); /* inner circle */
|
||||
glVertex2f(x2, y2); /* outer square */
|
||||
}
|
||||
glEnd();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draw block with hole through middle.
|
||||
* Hole is centered on Z axis.
|
||||
* Bottom of block is at z=0, top of block is at z = blockHeight.
|
||||
* index is in [0, count - 1] to determine which block faces are drawn.
|
||||
*/
|
||||
static void
|
||||
DrawBlockWithHole(float blockSize, float blockHeight, float holeRadius,
|
||||
int index, int count)
|
||||
{
|
||||
const int slices = 30, stacks = 4;
|
||||
const float x = blockSize;
|
||||
const float y = blockSize;
|
||||
const float z0 = 0;
|
||||
const float z1 = blockHeight;
|
||||
|
||||
assert(index < count);
|
||||
assert(Q);
|
||||
gluQuadricOrientation(Q, GLU_INSIDE);
|
||||
|
||||
glBegin(GL_QUADS);
|
||||
/* +X face */
|
||||
glNormal3f(1, 0, 0);
|
||||
glVertex3f( x, -y, z0);
|
||||
glVertex3f( x, y, z0);
|
||||
glVertex3f( x, y, z1);
|
||||
glVertex3f( x, -y, z1);
|
||||
/* -X face */
|
||||
glNormal3f(-1, 0, 0);
|
||||
glVertex3f(-x, -y, z1);
|
||||
glVertex3f(-x, y, z1);
|
||||
glVertex3f(-x, y, z0);
|
||||
glVertex3f(-x, -y, z0);
|
||||
if (index == 0) {
|
||||
/* +Y face */
|
||||
glNormal3f(0, 1, 0);
|
||||
glVertex3f(-x, y, z1);
|
||||
glVertex3f( x, y, z1);
|
||||
glVertex3f( x, y, z0);
|
||||
glVertex3f(-x, y, z0);
|
||||
}
|
||||
if (index == count - 1) {
|
||||
/* -Y face */
|
||||
glNormal3f(0, -1, 0);
|
||||
glVertex3f(-x, -y, z0);
|
||||
glVertex3f( x, -y, z0);
|
||||
glVertex3f( x, -y, z1);
|
||||
glVertex3f(-x, -y, z1);
|
||||
}
|
||||
glEnd();
|
||||
|
||||
/* cylinder / hole */
|
||||
gluCylinder(Q, holeRadius, holeRadius, blockHeight, slices, stacks);
|
||||
|
||||
/* face at z0 */
|
||||
glPushMatrix();
|
||||
glRotatef(180, 1, 0, 0);
|
||||
SquareWithHole(blockSize, holeRadius);
|
||||
glPopMatrix();
|
||||
|
||||
/* face at z1 */
|
||||
glTranslatef(0, 0, z1);
|
||||
SquareWithHole(blockSize, holeRadius);
|
||||
|
||||
gluQuadricOrientation(Q, GLU_OUTSIDE);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draw the engine block.
|
||||
*/
|
||||
static void
|
||||
DrawEngineBlock(const Engine *eng)
|
||||
{
|
||||
const float blockHeight = eng->Throw + 1.5 * eng->PistonHeight;
|
||||
const float cylRadius = 1.01 * eng->PistonRadius;
|
||||
const float blockSize = 0.5 * PistonSpacing(eng);
|
||||
const int pistonsPerCrank = eng->Pistons / eng->Cranks;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < eng->Pistons; i++) {
|
||||
const float z = PistonShaftPosition(eng, i);
|
||||
const int crank = i / pistonsPerCrank;
|
||||
int k;
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(0, 0, z);
|
||||
|
||||
/* additional rotation for kth piston per crank */
|
||||
k = i % pistonsPerCrank;
|
||||
glRotatef(k * -eng->V_Angle, 0, 0, 1);
|
||||
|
||||
/* the block */
|
||||
glRotatef(-90, 1, 0, 0);
|
||||
glTranslatef(0, 0, eng->Throw * 2);
|
||||
DrawBlockWithHole(blockSize, blockHeight, cylRadius,
|
||||
crank, eng->Cranks);
|
||||
glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generate display lists for engine parts.
|
||||
*/
|
||||
@@ -538,6 +698,11 @@ GenerateDisplayLists(Engine *eng)
|
||||
glNewList(eng->PistonList, GL_COMPILE);
|
||||
DrawPiston(eng);
|
||||
glEndList();
|
||||
|
||||
eng->BlockList = glGenLists(1);
|
||||
glNewList(eng->BlockList, GL_COMPILE);
|
||||
DrawEngineBlock(eng);
|
||||
glEndList();
|
||||
}
|
||||
|
||||
|
||||
@@ -553,10 +718,11 @@ FreeDisplayLists(Engine *eng)
|
||||
eng->ConnRodList = 0;
|
||||
glDeleteLists(eng->PistonList, 1);
|
||||
eng->PistonList = 0;
|
||||
glDeleteLists(eng->BlockList, 1);
|
||||
eng->BlockList = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Draw complete engine.
|
||||
* \param eng description of engine to draw
|
||||
@@ -602,10 +768,32 @@ DrawEngine(const Engine *eng, float crankAngle)
|
||||
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, ConnRodColor);
|
||||
glColor4fv(ConnRodColor);
|
||||
DrawPositionedConnectingRod(eng, rot);
|
||||
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
if (Render.ShowBlock) {
|
||||
const GLboolean blend = glIsEnabled(GL_BLEND);
|
||||
|
||||
glDepthMask(GL_FALSE);
|
||||
if (!blend) {
|
||||
glEnable(GL_BLEND);
|
||||
}
|
||||
glEnable(GL_CULL_FACE);
|
||||
|
||||
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, BlockColor);
|
||||
glColor4fv(BlockColor);
|
||||
if (eng->CrankList)
|
||||
glCallList(eng->BlockList);
|
||||
else
|
||||
DrawEngineBlock(eng);
|
||||
|
||||
glDisable(GL_CULL_FACE);
|
||||
glDepthMask(GL_TRUE);
|
||||
if (!blend) {
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
}
|
||||
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
@@ -745,9 +933,9 @@ Draw(void)
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(0, -0.75, 0);
|
||||
DrawEngine(Engines + CurEngine, Theta);
|
||||
if (Render.DrawBox)
|
||||
DrawBox();
|
||||
DrawEngine(Engines + CurEngine, Theta);
|
||||
glPopMatrix();
|
||||
|
||||
glPopMatrix();
|
||||
@@ -899,6 +1087,12 @@ OptDisplayLists(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
OptShowBlock(void)
|
||||
{
|
||||
Render.ShowBlock = !Render.ShowBlock;
|
||||
}
|
||||
|
||||
static void
|
||||
OptShowInfo(void)
|
||||
{
|
||||
@@ -940,8 +1134,9 @@ static const MenuInfo MenuItems[] = {
|
||||
{ "Change Engine", 'e', OptChangeEngine },
|
||||
{ "Rendering Style", 'm', OptRenderMode },
|
||||
{ "Display Lists", 'd', OptDisplayLists },
|
||||
{ "Show Block", 'b', OptShowBlock },
|
||||
{ "Show Info", 'i', OptShowInfo },
|
||||
{ "Show Box", 'b', OptShowBox },
|
||||
{ "Show Box", 'x', OptShowBox },
|
||||
{ "Exit", 27, OptExit },
|
||||
{ NULL, 'r', OptRotate },
|
||||
{ NULL, 0, NULL }
|
||||
@@ -1070,7 +1265,6 @@ Init(void)
|
||||
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);
|
||||
glEnable(GL_NORMALIZE);
|
||||
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ZERO);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
InitViewInfo(&View);
|
||||
|
@@ -30,6 +30,9 @@ static GLhandleARB program;
|
||||
|
||||
static GLint uTime;
|
||||
|
||||
static GLint t0 = 0;
|
||||
static GLint frames = 0;
|
||||
|
||||
static GLfloat u_time = 0.0f;
|
||||
|
||||
static PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB = NULL;
|
||||
@@ -44,15 +47,27 @@ static PFNGLUNIFORM1FARBPROC glUniform1fARB = NULL;
|
||||
|
||||
static void Redisplay (void)
|
||||
{
|
||||
GLint t;
|
||||
|
||||
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
glUniform1fARB (uTime, u_time);
|
||||
glUniform1fARB (uTime, 0.5f * u_time);
|
||||
|
||||
glPushMatrix ();
|
||||
glutSolidSphere (2.0, 20, 10);
|
||||
glPopMatrix ();
|
||||
|
||||
glutSwapBuffers();
|
||||
frames++;
|
||||
|
||||
t = glutGet (GLUT_ELAPSED_TIME);
|
||||
if (t - t0 >= 5000) {
|
||||
GLfloat seconds = (GLfloat) (t - t0) / 1000.0f;
|
||||
GLfloat fps = frames / seconds;
|
||||
printf ("%d frames in %6.3f seconds = %6.3f FPS\n", frames, seconds, fps);
|
||||
t0 = t;
|
||||
frames = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void Idle (void)
|
||||
@@ -88,20 +103,20 @@ static void Key (unsigned char key, int x, int y)
|
||||
|
||||
static void Init (void)
|
||||
{
|
||||
static const char *fragShaderText =
|
||||
"uniform float time;\n"
|
||||
"void main () {\n"
|
||||
" gl_FragColor = gl_Color * vec4 ((0.5 + 0.5 * vec3 (noise1 (\n"
|
||||
" vec4 (4.0 * gl_TexCoord[0].xyz, 0.5 * time)))), 1.0);\n"
|
||||
"}\n"
|
||||
;
|
||||
static const char *vertShaderText =
|
||||
"void main () {\n"
|
||||
" gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n"
|
||||
" gl_TexCoord[0] = gl_Vertex;\n"
|
||||
" gl_FrontColor = gl_Color;\n"
|
||||
"}\n"
|
||||
;
|
||||
static const char *fragShaderText =
|
||||
"uniform float time;\n"
|
||||
"varying vec3 position;\n"
|
||||
"void main () {\n"
|
||||
" gl_FragColor = vec4 (vec3 (0.5 + 0.5 * noise1 (vec4 (position, time))), 1.0);\n"
|
||||
"}\n"
|
||||
;
|
||||
static const char *vertShaderText =
|
||||
"varying vec3 position;\n"
|
||||
"void main () {\n"
|
||||
" gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n"
|
||||
" position = 4.0 * gl_Vertex.xyz;\n"
|
||||
"}\n"
|
||||
;
|
||||
|
||||
if (!glutExtensionSupported ("GL_ARB_fragment_shader"))
|
||||
{
|
||||
|
407
progs/demos/streaming_rect.c
Normal file
407
progs/demos/streaming_rect.c
Normal file
@@ -0,0 +1,407 @@
|
||||
|
||||
/*
|
||||
* GL_ARB_multitexture demo
|
||||
*
|
||||
* Command line options:
|
||||
* -info print GL implementation information
|
||||
*
|
||||
*
|
||||
* Brian Paul November 1998 This program is in the public domain.
|
||||
* Modified on 12 Feb 2002 for > 2 texture units.
|
||||
*/
|
||||
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
#include "readtex.h"
|
||||
|
||||
enum {
|
||||
WHOLERECT,
|
||||
RENDER,
|
||||
SWAPBUF,
|
||||
|
||||
UPLOAD_CONVENTIONAL,
|
||||
UPLOAD_PBO_NAIVE,
|
||||
UPLOAD_PBO_PINGPONG,
|
||||
UPLOAD_PBO_WITH_RESET,
|
||||
UPLOAD_NOOP,
|
||||
|
||||
QUIT
|
||||
};
|
||||
|
||||
static GLint upload_style = UPLOAD_CONVENTIONAL;
|
||||
static GLboolean whole_rect = 1;
|
||||
static GLboolean do_render = 1;
|
||||
static GLboolean do_swapbuffers = 1;
|
||||
|
||||
|
||||
static GLuint col = 0x0;
|
||||
static GLfloat Xrot = 20.0, Yrot = 30.0;
|
||||
|
||||
static GLuint Width = 1024;
|
||||
static GLuint Height = 512;
|
||||
|
||||
#define NR_PBO 2
|
||||
static GLuint texObj, DrawPBO[NR_PBO];
|
||||
|
||||
|
||||
static void Idle( void )
|
||||
{
|
||||
col++;
|
||||
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
static int min( int a, int b ) { return a < b ? a : b; }
|
||||
|
||||
static void DrawObject()
|
||||
{
|
||||
GLint size = Width * Height * 4;
|
||||
static char *static_image = NULL;
|
||||
static int current = 0;
|
||||
|
||||
switch (upload_style) {
|
||||
case UPLOAD_PBO_NAIVE:
|
||||
/* Continually upload from the one pbo without any attempt to
|
||||
* decouple from hardware trying to access the same data:
|
||||
*/
|
||||
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, DrawPBO[0]);
|
||||
|
||||
{
|
||||
char *image = glMapBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, GL_WRITE_ONLY_ARB);
|
||||
memset(image, col&0xff, size);
|
||||
glUnmapBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT);
|
||||
}
|
||||
|
||||
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, Width, Height, 0,
|
||||
GL_BGRA, GL_UNSIGNED_BYTE, NULL);
|
||||
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, 0);
|
||||
break;
|
||||
|
||||
case UPLOAD_PBO_PINGPONG:
|
||||
/* Cycle through the available upload buffers to avoid waiting
|
||||
* on buffers currently enqueued on the hardware. Avoids
|
||||
* waiting on buffer contents that may still be referenced by
|
||||
* hardware.
|
||||
*/
|
||||
current = (current + 1) % NR_PBO;
|
||||
|
||||
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, DrawPBO[current]);
|
||||
|
||||
{
|
||||
char *image = glMapBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, GL_WRITE_ONLY_ARB);
|
||||
memset(image, col&0xff, size);
|
||||
glUnmapBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT);
|
||||
}
|
||||
|
||||
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, Width, Height, 0,
|
||||
GL_BGRA, GL_UNSIGNED_BYTE, NULL);
|
||||
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, 0);
|
||||
break;
|
||||
|
||||
|
||||
case UPLOAD_PBO_WITH_RESET:
|
||||
/* Alternate approach, uses BufferDataARB(NULL) to explicitly
|
||||
* release the old image contents from the pbo prior to upload.
|
||||
* Similar effect to double buffering pbos as above, but a
|
||||
* little more subtle as the implications of the NULL data are
|
||||
* not entirely clear. I don't know if all drivers will take
|
||||
* full advantage of the optimization or not.
|
||||
*/
|
||||
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, DrawPBO[0]);
|
||||
|
||||
/* XXX: This is extremely important - semantically makes the buffer
|
||||
* contents undefined, but in practice means that the driver can
|
||||
* release the old copy of the texture and allocate a new one
|
||||
* without waiting for outstanding rendering to complete.
|
||||
*/
|
||||
glBufferDataARB(GL_PIXEL_UNPACK_BUFFER_EXT, size, NULL, GL_STREAM_DRAW_ARB);
|
||||
|
||||
{
|
||||
char *image = glMapBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, GL_WRITE_ONLY_ARB);
|
||||
memset(image, col&0xff, size);
|
||||
glUnmapBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT);
|
||||
}
|
||||
|
||||
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, Width, Height, 0,
|
||||
GL_BGRA, GL_UNSIGNED_BYTE, NULL);
|
||||
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, 0);
|
||||
break;
|
||||
|
||||
|
||||
case UPLOAD_CONVENTIONAL:
|
||||
if (static_image == NULL)
|
||||
static_image = malloc(size);
|
||||
|
||||
memset(static_image, col&0xff, size);
|
||||
|
||||
/* BGRA should be the fast path for regular uploads as well.
|
||||
*/
|
||||
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, Width, Height, 0,
|
||||
GL_BGRA, GL_UNSIGNED_BYTE, static_image);
|
||||
break;
|
||||
|
||||
case UPLOAD_NOOP:
|
||||
break;
|
||||
}
|
||||
|
||||
if (do_render)
|
||||
{
|
||||
int x,y,w,h;
|
||||
|
||||
if (whole_rect) {
|
||||
x = y = 0;
|
||||
w = Width;
|
||||
h = Height;
|
||||
}
|
||||
else {
|
||||
x = y = 0;
|
||||
w = min(10, Width);
|
||||
h = min(10, Height);
|
||||
}
|
||||
|
||||
glBegin(GL_QUADS);
|
||||
|
||||
glTexCoord2f( x, y);
|
||||
glVertex2f( x, y );
|
||||
|
||||
glTexCoord2f( x, y + h);
|
||||
glVertex2f( x, y + h);
|
||||
|
||||
glTexCoord2f( x + w, y + h);
|
||||
glVertex2f( x + w, y + h );
|
||||
|
||||
glTexCoord2f( x + w, y);
|
||||
glVertex2f( x + w, y );
|
||||
|
||||
glEnd();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void Display( void )
|
||||
{
|
||||
static GLint T0 = 0;
|
||||
static GLint Frames = 0;
|
||||
GLint t;
|
||||
|
||||
glClear( GL_COLOR_BUFFER_BIT );
|
||||
|
||||
glPushMatrix();
|
||||
DrawObject();
|
||||
glPopMatrix();
|
||||
|
||||
if (do_swapbuffers)
|
||||
glutSwapBuffers();
|
||||
else
|
||||
glFlush();
|
||||
|
||||
Frames++;
|
||||
|
||||
t = glutGet(GLUT_ELAPSED_TIME);
|
||||
if (t - T0 >= 1000) {
|
||||
GLfloat seconds = (t - T0) / 1000.0;
|
||||
|
||||
GLfloat fps = Frames / seconds;
|
||||
printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps);
|
||||
|
||||
T0 = t;
|
||||
Frames = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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, 10.0, 100.0 ); */
|
||||
gluOrtho2D( 0, width, height, 0 );
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
/* glTranslatef(0.375, 0.375, 0); */
|
||||
}
|
||||
|
||||
|
||||
static void ModeMenu(int entry)
|
||||
{
|
||||
switch (entry) {
|
||||
case WHOLERECT:
|
||||
whole_rect = !whole_rect;
|
||||
break;
|
||||
case RENDER:
|
||||
do_render = !do_render;
|
||||
break;
|
||||
case SWAPBUF:
|
||||
do_swapbuffers = !do_swapbuffers;
|
||||
break;
|
||||
|
||||
case UPLOAD_CONVENTIONAL:
|
||||
case UPLOAD_PBO_NAIVE:
|
||||
case UPLOAD_PBO_PINGPONG:
|
||||
case UPLOAD_PBO_WITH_RESET:
|
||||
case UPLOAD_NOOP:
|
||||
upload_style = entry;
|
||||
break;
|
||||
|
||||
case QUIT:
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void Key( unsigned char key, int x, int y )
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void SpecialKey( int key, int x, int y )
|
||||
{
|
||||
float step = 3.0;
|
||||
(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 Init( int argc, char *argv[] )
|
||||
{
|
||||
const char *exten = (const char *) glGetString(GL_EXTENSIONS);
|
||||
GLint size;
|
||||
|
||||
|
||||
if (!strstr(exten, "GL_ARB_multitexture")) {
|
||||
printf("Sorry, GL_ARB_multitexture not supported by this renderer.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &size);
|
||||
printf("%d x %d max texture size\n", size, size);
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
|
||||
/* allocate two texture objects */
|
||||
glGenTextures(1, &texObj);
|
||||
|
||||
/* setup the texture objects */
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, texObj);
|
||||
|
||||
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
|
||||
glGenBuffersARB(NR_PBO, DrawPBO);
|
||||
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < NR_PBO; i++) {
|
||||
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, DrawPBO[i]);
|
||||
glBufferDataARB(GL_PIXEL_UNPACK_BUFFER_EXT, Width * Height * 4, NULL, GL_STREAM_DRAW_ARB);
|
||||
}
|
||||
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, 0);
|
||||
}
|
||||
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||
|
||||
glEnable(GL_TEXTURE_RECTANGLE_ARB);
|
||||
|
||||
glShadeModel(GL_SMOOTH);
|
||||
glClearColor(0.3, 0.3, 0.4, 1.0);
|
||||
|
||||
if (argc > 1 && strcmp(argv[1], "-info")==0) {
|
||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
|
||||
printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
|
||||
printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
GLint i;
|
||||
|
||||
glutInit( &argc, argv );
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "-w") == 0) {
|
||||
Width = atoi(argv[i+1]);
|
||||
if (Width <= 0) {
|
||||
printf("Error, bad width\n");
|
||||
exit(1);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
else if (strcmp(argv[i], "-h") == 0) {
|
||||
Height = atoi(argv[i+1]);
|
||||
if (Height <= 0) {
|
||||
printf("Error, bad height\n");
|
||||
exit(1);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
glutInitWindowSize( Width, Height );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
|
||||
glutCreateWindow(argv[0] );
|
||||
|
||||
Init( argc, argv );
|
||||
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutSpecialFunc( SpecialKey );
|
||||
glutDisplayFunc( Display );
|
||||
glutIdleFunc( Idle );
|
||||
|
||||
glutCreateMenu(ModeMenu);
|
||||
glutAddMenuEntry("Wholerect", WHOLERECT);
|
||||
glutAddMenuEntry("Render", RENDER);
|
||||
glutAddMenuEntry("Swapbuf", SWAPBUF);
|
||||
|
||||
glutAddMenuEntry("Upload style CONVENTIONAL", UPLOAD_CONVENTIONAL);
|
||||
glutAddMenuEntry("Upload style PBO_NAIVE", UPLOAD_PBO_NAIVE);
|
||||
glutAddMenuEntry("Upload style PBO_PINGPONG", UPLOAD_PBO_PINGPONG);
|
||||
glutAddMenuEntry("Upload style PBO_WITH_RESET", UPLOAD_PBO_WITH_RESET);
|
||||
glutAddMenuEntry("Upload style NOOP", UPLOAD_NOOP);
|
||||
|
||||
glutAddMenuEntry("Quit", QUIT);
|
||||
glutAttachMenu(GLUT_RIGHT_BUTTON);
|
||||
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
@@ -38,8 +38,8 @@
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
static GLsizei MaxSize = 1024;
|
||||
static GLsizei TexWidth = 256, TexHeight = 256, TexBorder = 0;
|
||||
static GLsizei MaxSize = 2048;
|
||||
static GLsizei TexWidth = 1024, TexHeight = 1024, TexBorder = 0;
|
||||
static GLboolean ScaleAndBias = GL_FALSE;
|
||||
static GLboolean SubImage = GL_FALSE;
|
||||
static GLdouble DownloadRate = 0.0; /* texels/sec */
|
||||
@@ -47,6 +47,32 @@ static GLdouble DownloadRate = 0.0; /* texels/sec */
|
||||
static GLuint Mode = 0;
|
||||
|
||||
|
||||
/* Try and avoid L2 cache effects by cycling through a small number of
|
||||
* textures.
|
||||
*
|
||||
* At the initial size of 1024x1024x4 == 4mbyte, say 8 textures will
|
||||
* keep us out of most caches at 32mb total.
|
||||
*
|
||||
* This turns into a fairly interesting question of what exactly you
|
||||
* expect to be in cache in normal usage, and what you think should be
|
||||
* outside. There's no rules for this, no reason to favour one usage
|
||||
* over another except what the application you care about happens to
|
||||
* resemble most closely.
|
||||
*
|
||||
* - Should the client texture image be in L2 cache? Has it just been
|
||||
* generated or read from disk?
|
||||
* - Does the application really use >1 texture, or is it constantly
|
||||
* updating one image in-place?
|
||||
*
|
||||
* Different answers will favour different texture upload mechanisms.
|
||||
* To upload an image that is purely outside of cache, a DMA-based
|
||||
* upload will probably win, whereas for small, in-cache textures,
|
||||
* copying looks good.
|
||||
*/
|
||||
#define NR_TEXOBJ 4
|
||||
static GLuint TexObj[NR_TEXOBJ];
|
||||
|
||||
|
||||
struct FormatRec {
|
||||
GLenum Format;
|
||||
GLenum Type;
|
||||
@@ -116,25 +142,57 @@ TypeStr(GLenum type)
|
||||
}
|
||||
}
|
||||
|
||||
/* On x86, there is a performance cliff for memcpy to texture memory
|
||||
* for sources below 64 byte alignment. We do our best with this in
|
||||
* the driver, but it is better if the images are correctly aligned to
|
||||
* start with:
|
||||
*/
|
||||
#define ALIGN (1<<12)
|
||||
|
||||
static unsigned align(unsigned value, unsigned a)
|
||||
{
|
||||
return (value + a - 1) & ~(a-1);
|
||||
}
|
||||
|
||||
static int MIN2(int a, int b)
|
||||
{
|
||||
return a < b ? a : b;
|
||||
}
|
||||
|
||||
static void
|
||||
MeasureDownloadRate(void)
|
||||
{
|
||||
const int w = TexWidth + 2 * TexBorder;
|
||||
const int h = TexHeight + 2 * TexBorder;
|
||||
const int bytes = w * h * BytesPerTexel(Format);
|
||||
const int image_bytes = align(w * h * BytesPerTexel(Format), ALIGN);
|
||||
const int bytes = image_bytes * NR_TEXOBJ;
|
||||
GLubyte *orig_texImage, *orig_getImage;
|
||||
GLubyte *texImage, *getImage;
|
||||
GLdouble t0, t1, time;
|
||||
int count;
|
||||
int i;
|
||||
int offset = 0;
|
||||
GLdouble total = 0; /* ints will tend to overflow */
|
||||
|
||||
texImage = (GLubyte *) malloc(bytes);
|
||||
getImage = (GLubyte *) malloc(bytes);
|
||||
if (!texImage || !getImage) {
|
||||
printf("allocating %d bytes for %d %dx%d images\n",
|
||||
bytes, NR_TEXOBJ, w, h);
|
||||
|
||||
orig_texImage = (GLubyte *) malloc(bytes + ALIGN);
|
||||
orig_getImage = (GLubyte *) malloc(image_bytes + ALIGN);
|
||||
if (!orig_texImage || !orig_getImage) {
|
||||
DownloadRate = 0.0;
|
||||
return;
|
||||
}
|
||||
|
||||
printf("alloc %p %p\n", orig_texImage, orig_getImage);
|
||||
|
||||
texImage = (GLubyte *)align((unsigned)orig_texImage, ALIGN);
|
||||
getImage = (GLubyte *)align((unsigned)orig_getImage, ALIGN);
|
||||
|
||||
for (i = 1; !(((unsigned)texImage) & i); i<<=1)
|
||||
;
|
||||
printf("texture image alignment: %d bytes (%p)\n", i, texImage);
|
||||
|
||||
for (i = 0; i < bytes; i++) {
|
||||
texImage[i] = i & 0xff;
|
||||
}
|
||||
@@ -166,16 +224,50 @@ MeasureDownloadRate(void)
|
||||
count = 0;
|
||||
t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
|
||||
do {
|
||||
int img = count%NR_TEXOBJ;
|
||||
GLubyte *img_ptr = texImage + img * image_bytes;
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, TexObj[img]);
|
||||
|
||||
if (SubImage && count > 0) {
|
||||
glTexSubImage2D(GL_TEXTURE_2D, 0, -TexBorder, -TexBorder, w, h,
|
||||
/* Only update a portion of the image each iteration. This
|
||||
* is presumably why you'd want to use texsubimage, otherwise
|
||||
* you may as well just call teximage again.
|
||||
*
|
||||
* A bigger question is whether to use a pointer that moves
|
||||
* with each call, ie does the incoming data come from L2
|
||||
* cache under normal circumstances, or is it pulled from
|
||||
* uncached memory?
|
||||
*
|
||||
* There's a good argument to say L2 cache, ie you'd expect
|
||||
* the data to have been recently generated. It's possible
|
||||
* that it could have come from a file read, which may or may
|
||||
* not have gone through the cpu.
|
||||
*/
|
||||
glTexSubImage2D(GL_TEXTURE_2D, 0,
|
||||
-TexBorder,
|
||||
-TexBorder + offset * h/8,
|
||||
w,
|
||||
h/8,
|
||||
FormatTable[Format].Format,
|
||||
FormatTable[Format].Type, texImage);
|
||||
FormatTable[Format].Type,
|
||||
#if 1
|
||||
texImage /* likely in L2$ */
|
||||
#else
|
||||
img_ptr + offset * bytes/8 /* unlikely in L2$ */
|
||||
#endif
|
||||
);
|
||||
offset += 1;
|
||||
offset %= 8;
|
||||
total += w * h / 8;
|
||||
}
|
||||
else {
|
||||
glTexImage2D(GL_TEXTURE_2D, 0,
|
||||
FormatTable[Format].IntFormat, w, h, TexBorder,
|
||||
FormatTable[Format].Format,
|
||||
FormatTable[Format].Type, texImage);
|
||||
FormatTable[Format].Type,
|
||||
img_ptr);
|
||||
total += w*h;
|
||||
}
|
||||
|
||||
/* draw a tiny polygon to force texture into texram */
|
||||
@@ -192,25 +284,12 @@ MeasureDownloadRate(void)
|
||||
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
||||
printf("w*h=%d count=%d time=%f\n", w*h, count, time);
|
||||
DownloadRate = w * h * count / time;
|
||||
printf("total texels=%f time=%f\n", total, time);
|
||||
DownloadRate = total / time;
|
||||
|
||||
#if 0
|
||||
if (!ScaleAndBias) {
|
||||
/* verify texture readback */
|
||||
glGetTexImage(GL_TEXTURE_2D, 0,
|
||||
FormatTable[Format].Format,
|
||||
FormatTable[Format].Type, getImage);
|
||||
for (i = 0; i < w * h; i++) {
|
||||
if (texImage[i] != getImage[i]) {
|
||||
printf("[%d] %d != %d\n", i, texImage[i], getImage[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
free(texImage);
|
||||
free(getImage);
|
||||
free(orig_texImage);
|
||||
free(orig_getImage);
|
||||
|
||||
{
|
||||
GLint err = glGetError();
|
||||
|
@@ -22,6 +22,7 @@
|
||||
* DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
@@ -280,11 +281,15 @@ static void Init( void )
|
||||
exit(1);
|
||||
}
|
||||
|
||||
bind_vertex_array = glutGetProcAddress( "glBindVertexArrayAPPLE" );
|
||||
gen_vertex_arrays = glutGetProcAddress( "glGenVertexArraysAPPLE" );
|
||||
delete_vertex_arrays = glutGetProcAddress( "glDeleteVertexArraysAPPLE" );
|
||||
is_vertex_array = glutGetProcAddress( "glIsVertexArrayAPPLE" );
|
||||
bind_vertex_array = (PFNGLBINDVERTEXARRAYAPPLEPROC) glutGetProcAddress( "glBindVertexArrayAPPLE" );
|
||||
gen_vertex_arrays = (PFNGLGENVERTEXARRAYSAPPLEPROC) glutGetProcAddress( "glGenVertexArraysAPPLE" );
|
||||
delete_vertex_arrays = (PFNGLDELETEVERTEXARRAYSAPPLEPROC) glutGetProcAddress( "glDeleteVertexArraysAPPLE" );
|
||||
is_vertex_array = (PFNGLISVERTEXARRAYAPPLEPROC) glutGetProcAddress( "glIsVertexArrayAPPLE" );
|
||||
|
||||
assert(bind_vertex_array);
|
||||
assert(gen_vertex_arrays);
|
||||
assert(delete_vertex_arrays);
|
||||
assert(is_vertex_array);
|
||||
|
||||
glEnable( GL_DEPTH_TEST );
|
||||
|
||||
|
@@ -6,7 +6,7 @@ include $(TOP)/configs/current
|
||||
|
||||
INCDIR = $(TOP)/include -I$(TOP)/progs
|
||||
|
||||
LIB_DEP = $(LIB_DIR)/$(GL_LIB_NAME) $(LIB_DIR)/$(GLU_LIB_NAME)
|
||||
LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME)
|
||||
|
||||
CFLAGS += $(shell pkg-config --cflags directfb)
|
||||
APP_LIB_DEPS += $(shell pkg-config --libs directfb)
|
||||
|
@@ -24,36 +24,36 @@ PROGRAMS = \
|
||||
default: $(PROGRAMS)
|
||||
|
||||
|
||||
demo1: demo1.o $(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) demo1.o -L$(LIB_DIR) -lEGL $(LIBDRM_LIB) -o $@
|
||||
demo1: demo1.o $(TOP)/$(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) demo1.o -L$(TOP)/$(LIB_DIR) -lEGL $(LIBDRM_LIB) -o $@
|
||||
|
||||
demo1.o: demo1.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) -I$(TOP)/include demo1.c
|
||||
|
||||
|
||||
demo2: demo2.o $(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) demo2.o -L$(LIB_DIR) -lEGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
|
||||
demo2: demo2.o $(TOP)/$(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) demo2.o -L$(TOP)/$(LIB_DIR) -lEGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
|
||||
|
||||
demo2.o: demo2.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) -I$(TOP)/include demo2.c
|
||||
|
||||
|
||||
demo3: demo3.o $(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) demo3.o -L$(LIB_DIR) -lEGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
|
||||
demo3: demo3.o $(TOP)/$(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) demo3.o -L$(TOP)/$(LIB_DIR) -lEGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
|
||||
|
||||
demo3.o: demo3.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) -I$(TOP)/include demo3.c
|
||||
|
||||
|
||||
eglinfo: eglinfo.o $(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) eglinfo.o -L$(LIB_DIR) -lEGL $(LIBDRM_LIB) -o $@
|
||||
eglinfo: eglinfo.o $(TOP)/$(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) eglinfo.o -L$(TOP)/$(LIB_DIR) -lEGL $(LIBDRM_LIB) -o $@
|
||||
|
||||
eglinfo.o: eglinfo.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) -I$(TOP)/include eglinfo.c
|
||||
|
||||
|
||||
eglgears: eglgears.o $(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) eglgears.o -L$(LIB_DIR) -lEGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
|
||||
eglgears: eglgears.o $(TOP)/$(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) eglgears.o -L$(TOP)/$(LIB_DIR) -lEGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
|
||||
|
||||
eglgears.o: eglgears.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) -I$(TOP)/include eglgears.c
|
||||
|
@@ -5,13 +5,13 @@ include $(TOP)/configs/current
|
||||
|
||||
INCDIR = $(TOP)/include
|
||||
|
||||
OSMESA_LIBS = -L$(LIB_DIR) -lOSMesa $(APP_LIB_DEPS)
|
||||
OSMESA_LIBS = -L$(TOP)/$(LIB_DIR) -lOSMesa $(APP_LIB_DEPS)
|
||||
|
||||
OSMESA16_LIBS = -L$(LIB_DIR) -lglut -lOSMesa16 -lGLU -lGL $(APP_LIB_DEPS)
|
||||
OSMESA16_LIBS = -L$(TOP)/$(LIB_DIR) -lglut -lOSMesa16 -lGLU -lGL $(APP_LIB_DEPS)
|
||||
|
||||
OSMESA32_LIBS = -L$(LIB_DIR) -lglut -lOSMesa32 -lGLU -lGL $(APP_LIB_DEPS)
|
||||
OSMESA32_LIBS = -L$(TOP)/$(LIB_DIR) -lglut -lOSMesa32 -lGLU -lGL $(APP_LIB_DEPS)
|
||||
|
||||
LIB_DEP = $(LIB_DIR)/$(GL_LIB_NAME) $(LIB_DIR)/$(GLU_LIB_NAME) $(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
|
||||
PROGS = \
|
||||
osdemo \
|
||||
|
@@ -5,7 +5,7 @@ include $(TOP)/configs/current
|
||||
|
||||
INCDIR = $(TOP)/include
|
||||
|
||||
LIB_DEP = $(LIB_DIR)/$(GL_LIB_NAME) $(LIB_DIR)/$(GLU_LIB_NAME) $(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
|
||||
PROGS = aaindex aapoly aargb accanti accpersp alpha alpha3D anti \
|
||||
bezcurve bezmesh checker clip colormat cube depthcue dof \
|
||||
|
@@ -5,7 +5,7 @@ include $(TOP)/configs/current
|
||||
|
||||
INCDIR = $(TOP)/include
|
||||
|
||||
LIB_DEP = $(LIB_DIR)/$(GL_LIB_NAME) $(LIB_DIR)/$(GLU_LIB_NAME) $(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
|
||||
PROGS = accum bitmap1 bitmap2 blendeq blendxor copy cursor depth eval fog \
|
||||
font line logo nurb olympic overlay point prim quad select \
|
||||
|
@@ -6,7 +6,7 @@ include $(TOP)/configs/current
|
||||
|
||||
INCDIR = $(TOP)/include
|
||||
|
||||
LIB_DEP = $(LIB_DIR)/$(GL_LIB_NAME)
|
||||
LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME)
|
||||
|
||||
#
|
||||
# targets
|
||||
@@ -41,27 +41,15 @@ vstest: vstest.o framework.o $(LIB_DEP)
|
||||
# objects
|
||||
#
|
||||
|
||||
framework.o: framework.c
|
||||
framework.o: framework.c framework.h
|
||||
$(CC) -c -I$(INCDIR) framework.c -o framework.o
|
||||
|
||||
cltest.o: cltest.c
|
||||
cltest.o: cltest.c framework.h
|
||||
$(CC) -c -I$(INCDIR) cltest.c -o cltest.o
|
||||
|
||||
sotest.o: sotest.c
|
||||
sotest.o: sotest.c framework.h
|
||||
$(CC) -c -I$(INCDIR) sotest.c -o sotest.o
|
||||
|
||||
vstest.o: vstest.c
|
||||
vstest.o: vstest.c framework.h
|
||||
$(CC) -c -I$(INCDIR) vstest.c -o vstest.o
|
||||
|
||||
#
|
||||
# sources
|
||||
#
|
||||
|
||||
framework.c: framework.h
|
||||
|
||||
cltest.c: framework.h
|
||||
|
||||
sotest.c: framework.h
|
||||
|
||||
vstest.c: framework.h
|
||||
|
||||
|
184
progs/tests/arbnpot-mipmap.c
Normal file
184
progs/tests/arbnpot-mipmap.c
Normal file
@@ -0,0 +1,184 @@
|
||||
|
||||
/* Copyright (c) Mark J. Kilgard, 1994. */
|
||||
|
||||
/*
|
||||
* (c) Copyright 1993, Silicon Graphics, Inc.
|
||||
* ALL RIGHTS RESERVED
|
||||
* Permission to use, copy, modify, and distribute this software for
|
||||
* any purpose and without fee is hereby granted, provided that the above
|
||||
* copyright notice appear in all copies and that both the copyright notice
|
||||
* and this permission notice appear in supporting documentation, and that
|
||||
* the name of Silicon Graphics, Inc. not be used in advertising
|
||||
* or publicity pertaining to distribution of the software without specific,
|
||||
* written prior permission.
|
||||
*
|
||||
* THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
|
||||
* AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
|
||||
* INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
||||
* GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
|
||||
* SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
|
||||
* KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
|
||||
* LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
|
||||
* THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
|
||||
* POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* US Government Users Restricted Rights
|
||||
* Use, duplication, or disclosure by the Government is subject to
|
||||
* restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
|
||||
* (c)(1)(ii) of the Rights in Technical Data and Computer Software
|
||||
* clause at DFARS 252.227-7013 and/or in similar or successor
|
||||
* clauses in the FAR or the DOD or NASA FAR Supplement.
|
||||
* Unpublished-- rights reserved under the copyright laws of the
|
||||
* United States. Contractor/manufacturer is Silicon Graphics,
|
||||
* Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
|
||||
*
|
||||
* OpenGL(TM) is a trademark of Silicon Graphics, Inc.
|
||||
*/
|
||||
/* mipmap.c
|
||||
* This program demonstrates using mipmaps for texture maps.
|
||||
* To overtly show the effect of mipmaps, each mipmap reduction
|
||||
* level has a solidly colored, contrasting texture image.
|
||||
* Thus, the quadrilateral which is drawn is drawn with several
|
||||
* different colors.
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
GLubyte mipmapImage32[40][46][3];
|
||||
GLubyte mipmapImage16[20][23][3];
|
||||
GLubyte mipmapImage8[10][11][3];
|
||||
GLubyte mipmapImage4[5][5][3];
|
||||
GLubyte mipmapImage2[2][2][3];
|
||||
GLubyte mipmapImage1[1][1][3];
|
||||
|
||||
static void makeImages(void)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
for (i = 0; i < 40; i++) {
|
||||
for (j = 0; j < 46; j++) {
|
||||
mipmapImage32[i][j][0] = 255;
|
||||
mipmapImage32[i][j][1] = 255;
|
||||
mipmapImage32[i][j][2] = 0;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 20; i++) {
|
||||
for (j = 0; j < 23; j++) {
|
||||
mipmapImage16[i][j][0] = 255;
|
||||
mipmapImage16[i][j][1] = 0;
|
||||
mipmapImage16[i][j][2] = 255;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 10; i++) {
|
||||
for (j = 0; j < 11; j++) {
|
||||
mipmapImage8[i][j][0] = 255;
|
||||
mipmapImage8[i][j][1] = 0;
|
||||
mipmapImage8[i][j][2] = 0;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 5; i++) {
|
||||
for (j = 0; j < 5; j++) {
|
||||
mipmapImage4[i][j][0] = 0;
|
||||
mipmapImage4[i][j][1] = 255;
|
||||
mipmapImage4[i][j][2] = 0;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < 2; i++) {
|
||||
for (j = 0; j < 2; j++) {
|
||||
mipmapImage2[i][j][0] = 0;
|
||||
mipmapImage2[i][j][1] = 0;
|
||||
mipmapImage2[i][j][2] = 255;
|
||||
}
|
||||
}
|
||||
mipmapImage1[0][0][0] = 255;
|
||||
mipmapImage1[0][0][1] = 255;
|
||||
mipmapImage1[0][0][2] = 255;
|
||||
}
|
||||
|
||||
static void myinit(void)
|
||||
{
|
||||
if (!glutExtensionSupported("GL_ARB_texture_non_power_of_two")) {
|
||||
printf("Sorry, this program requires GL_ARB_texture_non_power_of_two\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glDepthFunc(GL_LESS);
|
||||
glShadeModel(GL_FLAT);
|
||||
|
||||
glTranslatef(0.0, 0.0, -3.6);
|
||||
makeImages();
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, 3, 40, 46, 0,
|
||||
GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage32[0][0][0]);
|
||||
glTexImage2D(GL_TEXTURE_2D, 1, 3, 20, 23, 0,
|
||||
GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage16[0][0][0]);
|
||||
glTexImage2D(GL_TEXTURE_2D, 2, 3, 10, 11, 0,
|
||||
GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage8[0][0][0]);
|
||||
glTexImage2D(GL_TEXTURE_2D, 3, 3, 5, 5, 0,
|
||||
GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage4[0][0][0]);
|
||||
glTexImage2D(GL_TEXTURE_2D, 4, 3, 2, 2, 0,
|
||||
GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage2[0][0][0]);
|
||||
glTexImage2D(GL_TEXTURE_2D, 5, 3, 1, 1, 0,
|
||||
GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage1[0][0][0]);
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
|
||||
GL_NEAREST_MIPMAP_NEAREST);
|
||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
}
|
||||
|
||||
static void display(void)
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
glBegin(GL_QUADS);
|
||||
glTexCoord2f(0.0, 0.0); glVertex3f(-2.0, -1.0, 0.0);
|
||||
glTexCoord2f(0.0, 8.0); glVertex3f(-2.0, 1.0, 0.0);
|
||||
glTexCoord2f(8.0, 8.0); glVertex3f(2000.0, 1.0, -6000.0);
|
||||
glTexCoord2f(8.0, 0.0); glVertex3f(2000.0, -1.0, -6000.0);
|
||||
glEnd();
|
||||
glFlush();
|
||||
}
|
||||
|
||||
static void myReshape(int w, int h)
|
||||
{
|
||||
glViewport(0, 0, w, h);
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
gluPerspective(60.0, 1.0*(GLfloat)w/(GLfloat)h, 1.0, 30000.0);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
}
|
||||
|
||||
static void
|
||||
key(unsigned char k, int x, int y)
|
||||
{
|
||||
switch (k) {
|
||||
case 27: /* Escape */
|
||||
exit(0);
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
glutInit(&argc, argv);
|
||||
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
|
||||
glutInitWindowSize (500, 500);
|
||||
glutCreateWindow (argv[0]);
|
||||
myinit();
|
||||
glutReshapeFunc (myReshape);
|
||||
glutDisplayFunc(display);
|
||||
glutKeyboardFunc(key);
|
||||
glutMainLoop();
|
||||
return 0; /* ANSI C requires main to return int. */
|
||||
}
|
@@ -38,7 +38,9 @@ SOURCES = \
|
||||
quad-offset-unfilled.c \
|
||||
quad-unfilled.c \
|
||||
quad-tex-2d.c \
|
||||
quad-tex-pbo.c \
|
||||
quad-tex-3d.c \
|
||||
quad-tex-dep.c \
|
||||
quad.c \
|
||||
quads.c \
|
||||
quadstrip.c \
|
||||
|
245
progs/trivial/quad-tex-dep.c
Normal file
245
progs/trivial/quad-tex-dep.c
Normal file
@@ -0,0 +1,245 @@
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
|
||||
GLenum doubleBuffer;
|
||||
|
||||
/* Demonstrate an equivalent to paletted texturing using fragment
|
||||
* programs and dependent texturing. This requires at least one
|
||||
* texture unit to be reserved for the palette lookup.
|
||||
*/
|
||||
|
||||
static void Init( void )
|
||||
{
|
||||
static const char *modulate2D =
|
||||
"!!ARBfp1.0\n"
|
||||
"TEMP index; \n"
|
||||
"TEX index, fragment.texcoord[0], texture[0], 2D; \n"
|
||||
"TEX result.color, index, texture[1], 1D; \n"
|
||||
"END"
|
||||
;
|
||||
GLuint modulateProg;
|
||||
GLuint Texture;
|
||||
|
||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
||||
exit(1);
|
||||
}
|
||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
|
||||
/* Setup the fragment program */
|
||||
glGenProgramsARB(1, &modulateProg);
|
||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
||||
|
||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
||||
assert(glIsProgramARB(modulateProg));
|
||||
|
||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
||||
|
||||
|
||||
{
|
||||
#define HEIGHT 8
|
||||
#define WIDTH 32
|
||||
|
||||
#define B 0
|
||||
#define G 1
|
||||
#define R 2
|
||||
#define A 3
|
||||
|
||||
static char texture[HEIGHT * WIDTH + 1] =
|
||||
" "
|
||||
" MMM EEEE SSS AAA "
|
||||
" M M M E S S A A "
|
||||
" M M M EEEE SS A A "
|
||||
" M M M E SS AAAAA "
|
||||
" M M E S S A A "
|
||||
" M M EEEE SSS A A ";
|
||||
|
||||
GLubyte table[256][4];
|
||||
|
||||
|
||||
|
||||
/* load the color table for each texel-index */
|
||||
memset(table, 0xff, 256*4);
|
||||
table[' '][B] = 255;
|
||||
table[' '][G] = 255;
|
||||
table[' '][R] = 255;
|
||||
table[' '][A] = 64;
|
||||
table['M'][B] = 0;
|
||||
table['M'][G] = 0;
|
||||
table['M'][R] = 255;
|
||||
table['M'][A] = 255;
|
||||
table['E'][B] = 0;
|
||||
table['E'][G] = 255;
|
||||
table['E'][R] = 0;
|
||||
table['E'][A] = 255;
|
||||
table['S'][B] = 255;
|
||||
table['S'][G] = 0;
|
||||
table['S'][R] = 0;
|
||||
table['S'][A] = 255;
|
||||
table['A'][B] = 0;
|
||||
table['A'][G] = 255;
|
||||
table['A'][R] = 255;
|
||||
table['A'][A] = 255;
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
|
||||
|
||||
/* Load indexed texture as a 2D I8 texture */
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glGenTextures(1, &Texture);
|
||||
glBindTexture(GL_TEXTURE_2D, Texture);
|
||||
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
|
||||
glTexImage2D(GL_TEXTURE_2D, /* target */
|
||||
0, /* level */
|
||||
GL_INTENSITY, /* internal format */
|
||||
WIDTH, HEIGHT, /* width, height */
|
||||
0, /* border */
|
||||
GL_LUMINANCE, /* texture format */
|
||||
GL_UNSIGNED_BYTE, /* texture type */
|
||||
texture); /* the texture */
|
||||
|
||||
|
||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
||||
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
|
||||
/* Load "pallete" as a 1D BGRA8888 texture */
|
||||
glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glGenTextures(1, &Texture);
|
||||
glBindTexture(GL_TEXTURE_1D, Texture);
|
||||
|
||||
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
|
||||
glTexImage1D(GL_TEXTURE_1D, /* target */
|
||||
0, /* level */
|
||||
GL_RGBA, /* internal format */
|
||||
256, /* width */
|
||||
0, /* border */
|
||||
GL_BGRA, /* texture format */
|
||||
GL_UNSIGNED_BYTE, /* texture type */
|
||||
table); /* the texture */
|
||||
|
||||
glEnable(GL_TEXTURE_1D);
|
||||
|
||||
/* glEnable(GL_BLEND); */
|
||||
/* glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); */
|
||||
#undef HEIGHT
|
||||
#undef WIDTH
|
||||
}
|
||||
|
||||
|
||||
glClearColor(.3, .3, .3, 0);
|
||||
}
|
||||
|
||||
static void Reshape(int width, int height)
|
||||
{
|
||||
|
||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
|
||||
static void Key(unsigned char key, int x, int y)
|
||||
{
|
||||
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(1);
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
static void Draw(void)
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
glBegin(GL_QUADS);
|
||||
glTexCoord2f(1,1);
|
||||
glVertex3f( 0.9, -0.9, -30.0);
|
||||
glTexCoord2f(1,0);
|
||||
glVertex3f( 0.9, 0.9, -30.0);
|
||||
glTexCoord2f(0,0);
|
||||
glVertex3f(-0.9, 0.9, -30.0);
|
||||
glTexCoord2f(0,1);
|
||||
glVertex3f(-0.9, -0.9, -30.0);
|
||||
glEnd();
|
||||
|
||||
glFlush();
|
||||
|
||||
if (doubleBuffer) {
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
static GLenum Args(int argc, char **argv)
|
||||
{
|
||||
GLint i;
|
||||
|
||||
doubleBuffer = GL_FALSE;
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "-sb") == 0) {
|
||||
doubleBuffer = GL_FALSE;
|
||||
} else if (strcmp(argv[i], "-db") == 0) {
|
||||
doubleBuffer = GL_TRUE;
|
||||
} else {
|
||||
fprintf(stderr, "%s (Bad option).\n", argv[i]);
|
||||
return GL_FALSE;
|
||||
}
|
||||
}
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
GLenum type;
|
||||
|
||||
glutInit(&argc, argv);
|
||||
|
||||
if (Args(argc, argv) == GL_FALSE) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
||||
|
||||
type = GLUT_RGB;
|
||||
type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
|
||||
glutInitDisplayMode(type);
|
||||
|
||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
Init();
|
||||
|
||||
glutReshapeFunc(Reshape);
|
||||
glutKeyboardFunc(Key);
|
||||
glutDisplayFunc(Draw);
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
181
progs/trivial/quad-tex-pbo.c
Normal file
181
progs/trivial/quad-tex-pbo.c
Normal file
@@ -0,0 +1,181 @@
|
||||
/*
|
||||
* Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the name of
|
||||
* Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
|
||||
* ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
#define CI_OFFSET_1 16
|
||||
#define CI_OFFSET_2 32
|
||||
|
||||
GLenum doubleBuffer;
|
||||
|
||||
static GLuint DrawPBO;
|
||||
|
||||
static void Init(void)
|
||||
{
|
||||
fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
|
||||
fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
|
||||
|
||||
glClearColor(0.0, 0.0, 1.0, 0.0);
|
||||
|
||||
#define SIZE 16
|
||||
{
|
||||
GLubyte tex2d[SIZE][SIZE][4];
|
||||
GLint s, t;
|
||||
|
||||
for (s = 0; s < SIZE; s++) {
|
||||
for (t = 0; t < SIZE; t++) {
|
||||
/* bgra:
|
||||
*/
|
||||
tex2d[t][s][0] = 0x30;
|
||||
tex2d[t][s][1] = t*255/(SIZE-1);
|
||||
tex2d[t][s][2] = s*255/(SIZE-1);
|
||||
tex2d[t][s][3] = 0xff;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* put image into DrawPBO */
|
||||
glGenBuffersARB(1, &DrawPBO);
|
||||
glBindBufferARB(GL_PIXEL_PACK_BUFFER_EXT, DrawPBO);
|
||||
glBufferDataARB(GL_PIXEL_PACK_BUFFER_EXT,
|
||||
SIZE * SIZE * 4, tex2d, GL_STATIC_DRAW);
|
||||
glBindBufferARB(GL_PIXEL_PACK_BUFFER_EXT, 0);
|
||||
|
||||
|
||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_REPEAT);
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, DrawPBO);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SIZE, SIZE, 0,
|
||||
GL_BGRA, GL_UNSIGNED_BYTE, NULL);
|
||||
glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_EXT, 0);
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void Reshape(int width, int height)
|
||||
{
|
||||
|
||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
|
||||
static void Key(unsigned char key, int x, int y)
|
||||
{
|
||||
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(1);
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
static void Draw(void)
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
glBegin(GL_QUADS);
|
||||
glTexCoord2f(1,0);
|
||||
glVertex3f( 0.9, -0.9, -30.0);
|
||||
glTexCoord2f(1,1);
|
||||
glVertex3f( 0.9, 0.9, -30.0);
|
||||
glTexCoord2f(0,1);
|
||||
glVertex3f(-0.9, 0.9, -30.0);
|
||||
glTexCoord2f(0,0);
|
||||
glVertex3f(-0.9, -0.9, -30.0);
|
||||
glEnd();
|
||||
|
||||
glFlush();
|
||||
|
||||
if (doubleBuffer) {
|
||||
glutSwapBuffers();
|
||||
}
|
||||
}
|
||||
|
||||
static GLenum Args(int argc, char **argv)
|
||||
{
|
||||
GLint i;
|
||||
|
||||
doubleBuffer = GL_FALSE;
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "-sb") == 0) {
|
||||
doubleBuffer = GL_FALSE;
|
||||
} else if (strcmp(argv[i], "-db") == 0) {
|
||||
doubleBuffer = GL_TRUE;
|
||||
} else {
|
||||
fprintf(stderr, "%s (Bad option).\n", argv[i]);
|
||||
return GL_FALSE;
|
||||
}
|
||||
}
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
GLenum type;
|
||||
|
||||
glutInit(&argc, argv);
|
||||
|
||||
if (Args(argc, argv) == GL_FALSE) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
||||
|
||||
type = GLUT_RGB;
|
||||
type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
|
||||
glutInitDisplayMode(type);
|
||||
|
||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
Init();
|
||||
|
||||
glutReshapeFunc(Reshape);
|
||||
glutKeyboardFunc(Key);
|
||||
glutDisplayFunc(Draw);
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
@@ -6,7 +6,7 @@ include $(TOP)/configs/current
|
||||
|
||||
INCDIR = $(TOP)/include
|
||||
|
||||
LIB_DEP = $(LIB_DIR)/$(GL_LIB_NAME) $(LIB_DIR)/$(GLU_LIB_NAME)
|
||||
LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME)
|
||||
|
||||
PROGS = glthreads \
|
||||
glxdemo \
|
||||
|
@@ -7,7 +7,7 @@ include $(TOP)/configs/current
|
||||
SUBDIRS = $(SRC_DIRS)
|
||||
|
||||
|
||||
default: message $(LIB_DIR) subdirs
|
||||
default: message $(TOP)/$(LIB_DIR) subdirs
|
||||
|
||||
|
||||
message:
|
||||
@@ -28,8 +28,8 @@ install:
|
||||
fi \
|
||||
done
|
||||
|
||||
$(LIB_DIR):
|
||||
-mkdir $(LIB_DIR)
|
||||
$(TOP)/$(LIB_DIR):
|
||||
-mkdir $(TOP)/$(LIB_DIR)
|
||||
|
||||
|
||||
clean:
|
||||
|
@@ -17,12 +17,12 @@ OBJECTS = $(SOURCES:.c=.o)
|
||||
|
||||
|
||||
|
||||
default: $(LIB_DIR)/demodriver.so
|
||||
default: $(TOP)/$(LIB_DIR)/demodriver.so
|
||||
|
||||
|
||||
$(LIB_DIR)/demodriver.so: $(OBJECTS)
|
||||
$(TOP)/$(LIB_DIR)/demodriver.so: $(OBJECTS)
|
||||
$(TOP)/bin/mklib -o demodriver.so -noprefix \
|
||||
-install $(LIB_DIR) $(OBJECTS)
|
||||
-install $(TOP)/$(LIB_DIR) $(OBJECTS)
|
||||
|
||||
|
||||
|
||||
|
@@ -39,11 +39,11 @@ default: depend library Makefile
|
||||
|
||||
|
||||
# EGLdri Library
|
||||
library: $(LIB_DIR)/libEGLdri.so
|
||||
library: $(TOP)/$(LIB_DIR)/libEGLdri.so
|
||||
|
||||
$(LIB_DIR)/libEGLdri.so: $(OBJECTS)
|
||||
$(TOP)/$(LIB_DIR)/libEGLdri.so: $(OBJECTS)
|
||||
$(TOP)/bin/mklib -o EGLdri -major 1 -minor 0 \
|
||||
-install $(LIB_DIR) -ldl $(OBJECTS)
|
||||
-install $(TOP)/$(LIB_DIR) -ldl $(OBJECTS)
|
||||
|
||||
|
||||
clean:
|
||||
|
@@ -43,11 +43,11 @@ default: depend library
|
||||
|
||||
|
||||
# EGL Library
|
||||
library: $(LIB_DIR)/libEGL.so
|
||||
library: $(TOP)/$(LIB_DIR)/libEGL.so
|
||||
|
||||
$(LIB_DIR)/libEGL.so: $(OBJECTS)
|
||||
$(TOP)/$(LIB_DIR)/libEGL.so: $(OBJECTS)
|
||||
$(TOP)/bin/mklib -o EGL -major 1 -minor 0 \
|
||||
-install $(LIB_DIR) -ldl $(OBJECTS)
|
||||
-install $(TOP)/$(LIB_DIR) -ldl $(OBJECTS)
|
||||
|
||||
|
||||
|
||||
|
@@ -14,8 +14,8 @@ default: $(TOP)/configs/current
|
||||
done
|
||||
|
||||
install:
|
||||
$(INSTALL) -d $(INSTALL_DIR)/lib
|
||||
$(COPY_LIBS) $(LIB_DIR)/libGLU.* $(INSTALL_DIR)/lib
|
||||
$(INSTALL) -d $(INSTALL_DIR)/$(LIB_DIR)
|
||||
$(COPY_LIBS) $(TOP)/$(LIB_DIR)/libGLU.* $(INSTALL_DIR)/$(LIB_DIR)
|
||||
|
||||
clean:
|
||||
@for dir in $(SUBDIRS) ; do \
|
||||
|
@@ -37,17 +37,17 @@ default:
|
||||
echo "$(GLU_LIB_NAME) not build under BeOS, but integrated into ${GL_LIB_NAME}." ; \
|
||||
exit 0 ; \
|
||||
else \
|
||||
$(MAKE) "${LIB_DIR}/${GLU_LIB_NAME}" ; \
|
||||
$(MAKE) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME) ; \
|
||||
fi
|
||||
|
||||
$(LIB_DIR):
|
||||
-mkdir $(LIB_DIR)
|
||||
$(TOP)/$(LIB_DIR):
|
||||
-mkdir $(TOP)/$(LIB_DIR)
|
||||
|
||||
# Make the library:
|
||||
$(LIB_DIR)/$(GLU_LIB_NAME): $(OBJECTS)
|
||||
$(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME): $(OBJECTS)
|
||||
@ $(TOP)/bin/mklib -o $(GLU_LIB) -linker '$(CC)' \
|
||||
-major $(GLU_MAJOR) -minor $(GLU_MINOR) -patch $(GLU_TINY) \
|
||||
$(MKLIB_OPTIONS) -install $(LIB_DIR) \
|
||||
$(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \
|
||||
$(GLU_LIB_DEPS) $(OBJECTS)
|
||||
|
||||
clean:
|
||||
|
@@ -128,17 +128,17 @@ default:
|
||||
echo "$(GLU_LIB_NAME) not build under BeOS, but integrated into ${GL_LIB_NAME}." ; \
|
||||
exit 0 ; \
|
||||
else \
|
||||
$(MAKE) "${LIB_DIR}/${GLU_LIB_NAME}" ; \
|
||||
$(MAKE) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME) ; \
|
||||
fi
|
||||
|
||||
$(LIB_DIR):
|
||||
-mkdir $(LIB_DIR)
|
||||
$(TOP)/$(LIB_DIR):
|
||||
-mkdir $(TOP)/$(LIB_DIR)
|
||||
|
||||
# Make the library:
|
||||
$(LIB_DIR)/$(GLU_LIB_NAME): $(OBJECTS)
|
||||
$(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME): $(OBJECTS)
|
||||
$(TOP)/bin/mklib -o $(GLU_LIB) -linker '$(CXX)' \
|
||||
-major $(GLU_MAJOR) -minor $(GLU_MINOR) -patch $(GLU_TINY) \
|
||||
-cplusplus $(MKLIB_OPTIONS) -install $(LIB_DIR) \
|
||||
-cplusplus $(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \
|
||||
$(GLU_LIB_DEPS) $(OBJECTS)
|
||||
|
||||
|
||||
|
@@ -75,16 +75,16 @@ INCLUDES = \
|
||||
|
||||
# ---- TARGETS
|
||||
|
||||
default: $(LIB_DIR) $(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
default: $(TOP)/$(LIB_DIR) $(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
|
||||
# Create the lib directory if missing
|
||||
$(LIB_DIR):
|
||||
mkdir $(LIB_DIR)
|
||||
$(TOP)/$(LIB_DIR):
|
||||
mkdir $(TOP)/$(LIB_DIR)
|
||||
|
||||
# Make the library
|
||||
$(LIB_DIR)/$(GLUT_LIB_NAME): depend $(OBJECTS)
|
||||
$(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME): depend $(OBJECTS)
|
||||
@$(TOP)/bin/mklib -o $(GLUT_LIB) -major $(GLUT_MAJOR) -minor $(GLUT_MINOR) -patch $(GLUT_TINY) \
|
||||
-install $(LIB_DIR) $(MKLIB_OPTIONS) $(GLUT_LIB_DEPS) \
|
||||
-install $(TOP)/$(LIB_DIR) $(MKLIB_OPTIONS) $(GLUT_LIB_DEPS) \
|
||||
$(OBJECTS)
|
||||
|
||||
clean:
|
||||
|
@@ -56,14 +56,14 @@ OBJECTS = $(SOURCES:.c=.o)
|
||||
|
||||
##### TARGETS #####
|
||||
|
||||
default: depend $(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
default: depend $(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||
|
||||
|
||||
# Make the library
|
||||
$(LIB_DIR)/$(GLUT_LIB_NAME): depend $(OBJECTS)
|
||||
$(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME): depend $(OBJECTS)
|
||||
$(TOP)/bin/mklib -o $(GLUT_LIB) -linker '$(CC)' \
|
||||
-major $(GLUT_MAJOR) -minor $(GLUT_MINOR) -patch $(GLUT_TINY) \
|
||||
$(GLUT_LIB_DEPS) -install $(LIB_DIR) \
|
||||
$(GLUT_LIB_DEPS) -install $(TOP)/$(LIB_DIR) \
|
||||
$(MKLIB_OPTIONS) $(OBJECTS)
|
||||
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user