diff --git a/Makefile b/Makefile index bb94540..75f30fe 100644 --- a/Makefile +++ b/Makefile @@ -21,8 +21,10 @@ include config/version SHELL = /bin/sh -SYSTEM ?= $(shell config/config.guess | cut -d - -f 3 | sed -e 's/[0-9\.]//g;') -SYSTEM.SUPPORTED = $(shell test -f config/Makefile.$(SYSTEM) && echo 1) +ifndef SYSTEM +SYSTEM := $(shell config/config.guess | cut -d - -f 3 | sed -e 's/[0-9\.]//g;') +endif +SYSTEM.SUPPORTED := $(shell test -f config/Makefile.$(SYSTEM) && echo 1) ifeq ($(SYSTEM.SUPPORTED), 1) include config/Makefile.$(SYSTEM) @@ -62,9 +64,10 @@ OPT = $(CFLAGS.RELEASE) endif ifndef V -LOG_CC = @echo " [CC] $@"; -LOG_LD = @echo " [LD] $@"; -LOG_AR = @echo " [AR] $@"; +LOG_CXX = @echo " [CXX] $@"; +LOG_CC = @echo " [CC] $@"; +LOG_LD = @echo " [LD] $@"; +LOG_AR = @echo " [AR] $@"; LOG_STRIP = @echo " [STRIP] $@"; endif @@ -72,7 +75,13 @@ INCLUDE = -Iinclude override CFLAGS := $(OPT) $(CFLAGS) $(WARN) $(INCLUDE) $(CFLAGS.EXTRA) -# Build GLU and GLUT except for NaCL and Mac +# +# Default target: all +# + +all: regal.lib glew.lib regal.bin + +# GLU and GLUT for platforms other than NaCL and Mac ifneq ($(filter nacl%,$(SYSTEM)),) ifneq ($(filter darwin%,$(SYSTEM)),) @@ -80,9 +89,9 @@ all: glu.lib glut.lib endif endif -all: regal.lib glew.lib regal.bin - -# REGAL shared and static libraries +# +# Regenerate Regal sources +# export: scripts/Export.py --api gl 4.2 --api wgl 4.0 --api glx 4.0 --api cgl 1.4 --api egl 1.0 --outdir . @@ -251,15 +260,15 @@ ifneq ($(filter darwin%,$(SYSTEM)),) LIB.LDFLAGS += -Wl,-reexport-lGLU -L/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries endif -regal.lib: zlib.lib libpng.lib lib/$(SYSTEM)/$(LIB.STATIC) +regal.lib: lib/$(SYSTEM)/$(LIB.STATIC) ifeq ($(filter nacl%,$(SYSTEM)),) regal.lib: lib/$(SYSTEM)/$(LIB.SHARED) endif -lib/$(SYSTEM)/$(LIB.STATIC): $(LIB.OBJS) +lib/$(SYSTEM)/$(LIB.STATIC): lib/$(SYSTEM)/$(LIBPNG.STATIC) lib/$(SYSTEM)/$(ZLIB.STATIC) $(LIB.OBJS) @mkdir -p $(dir $@) - $(LOG_AR)$(CCACHE) $(AR) cr $@ $^ + $(LOG_AR)$(CCACHE) $(AR) cr $@ $(LIB.OBJS) ifneq ($(STRIP),) $(LOG_STRIP)$(STRIP) -x $@ endif @@ -279,11 +288,11 @@ endif tmp/$(SYSTEM)/regal/static/%.o: src/regal/%.cpp $(LIB.DEPS) @mkdir -p $(dir $@) - $(LOG_CC)$(CCACHE) $(CC) $(LIB.CFLAGS) $(CFLAGS) $(CFLAGS.SO) $(LIB.INCLUDE) -o $@ -c $< + $(LOG_CXX)$(CCACHE) $(CC) $(LIB.CFLAGS) $(CFLAGS) $(CFLAGS.SO) $(LIB.INCLUDE) -o $@ -c $< tmp/$(SYSTEM)/regal/shared/%.o: src/regal/%.cpp $(LIB.DEPS) @mkdir -p $(dir $@) - $(LOG_CC)$(CCACHE) $(CC) $(LIB.CFLAGS) $(CFLAGS) $(PICFLAG) $(CFLAGS.SO) $(LIB.INCLUDE) -o $@ -c $< + $(LOG_CXX)$(CCACHE) $(CC) $(LIB.CFLAGS) $(CFLAGS) $(PICFLAG) $(CFLAGS.SO) $(LIB.INCLUDE) -o $@ -c $< tmp/$(SYSTEM)/regal/static/%.o: src/mongoose/%.c $(LIB.DEPS) @mkdir -p $(dir $@) @@ -375,15 +384,15 @@ tmp/$(SYSTEM)/glu/shared/%.o: src/glu/libutil/%.c tmp/$(SYSTEM)/glu/shared/%.o: src/glu/libnurbs/interface/%.cc @mkdir -p $(dir $@) - $(LOG_CC)$(CCACHE) $(CC) $(PICFLAG) $(GLU.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + $(LOG_CXX)$(CCACHE) $(CC) $(PICFLAG) $(GLU.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< tmp/$(SYSTEM)/glu/shared/%.o: src/glu/libnurbs/internals/%.cc @mkdir -p $(dir $@) - $(LOG_CC)$(CCACHE) $(CC) $(PICFLAG) $(GLU.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + $(LOG_CXX)$(CCACHE) $(CC) $(PICFLAG) $(GLU.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< tmp/$(SYSTEM)/glu/shared/%.o: src/glu/libnurbs/nurbtess/%.cc @mkdir -p $(dir $@) - $(LOG_CC)$(CCACHE) $(CC) $(PICFLAG) $(GLU.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + $(LOG_CXX)$(CCACHE) $(CC) $(PICFLAG) $(GLU.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< lib/$(SYSTEM)/$(GLU.SHARED): $(GLU.OBJS) lib/$(SYSTEM)/$(LIB.SHARED) @mkdir -p $(dir $@) @@ -484,11 +493,11 @@ DREAMTORUS.LIBS += -lm -pthread tmp/$(SYSTEM)/dreamtorus/static/%.o: examples/dreamtorus/src/%.cpp @mkdir -p $(dir $@) - $(LOG_CC)$(CCACHE) $(CC) $(DREAMTORUS.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + $(LOG_CXX)$(CCACHE) $(CC) $(DREAMTORUS.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< tmp/$(SYSTEM)/dreamtorus/static/%.o: examples/dreamtorus/glut/code/%.cpp @mkdir -p $(dir $@) - $(LOG_CC)$(CCACHE) $(CC) $(DREAMTORUS.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + $(LOG_CXX)$(CCACHE) $(CC) $(DREAMTORUS.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< bin/$(SYSTEM)/dreamtorus: $(DREAMTORUS.OBJS) lib/$(SYSTEM)/$(LIB.SHARED) @mkdir -p $(dir $@) @@ -581,11 +590,11 @@ GTEST.STATIC := libgtest.a tmp/$(SYSTEM)/gtest/static/gtest-all.o: src/googletest/src/gtest-all.cc @mkdir -p $(dir $@) - $(LOG_CC)$(CCACHE) $(CC) $(GTEST.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + $(LOG_CXX)$(CCACHE) $(CC) $(GTEST.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< tmp/$(SYSTEM)/gtest/static/gmock-all.o: src/googlemock/src/gmock-all.cc @mkdir -p $(dir $@) - $(LOG_CC)$(CCACHE) $(CC) $(GTEST.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + $(LOG_CXX)$(CCACHE) $(CC) $(GTEST.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< lib/$(SYSTEM)/$(GTEST.STATIC): $(GTEST.OBJS) @mkdir -p $(dir $@) @@ -618,7 +627,7 @@ endif tmp/$(SYSTEM)/regal_tests/static/%.o: tests/%.cpp @mkdir -p $(dir $@) - $(LOG_CC)$(CCACHE) $(CC) $(LIB.CFLAGS) $(REGALTEST.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + $(LOG_CXX)$(CCACHE) $(CC) $(LIB.CFLAGS) $(REGALTEST.CFLAGS) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< bin/$(SYSTEM)/regaltest$(BIN_EXTENSION): $(REGALTEST.OBJS) lib/$(SYSTEM)/$(GTEST.STATIC) lib/$(SYSTEM)/$(LIB.STATIC) lib/$(SYSTEM)/$(LIBPNG.STATIC) lib/$(SYSTEM)/$(ZLIB.STATIC) @mkdir -p $(dir $@) diff --git a/build/android/Regal/Androidold.mk b/build/android/Regal/Androidold.mk deleted file mode 100644 index 24d4c21..0000000 --- a/build/android/Regal/Androidold.mk +++ /dev/null @@ -1,24 +0,0 @@ -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := Regal -LOCAL_ARM_MODE := arm -LOCAL_CFLAGS := -DANDROID=1 -Werror - -REGAL_PATH := $(LOCAL_PATH)/../../.. - -# src_files should not include LOCAL_PATH -REGAL_SRC_FILES := $(wildcard $(REGAL_PATH)/src/regal/*.cpp) $(REGAL_PATH)/src/mongoose/mongoose.c -REGAL_SRC_FILES := $(patsubst $(LOCAL_PATH)/%,%,$(REGAL_SRC_FILES)) - -REGAL_C_INCLUDES := $(REGAL_PATH)/include $(REGAL_PATH)/src/regal $(REGAL_PATH)/src/boost $(REGAL_PATH)/src/mongoose - -LOCAL_EXPORT_C_INCLUDES := $(REGAL_PATH)/include - -LOCAL_C_INCLUDES := $(REGAL_C_INCLUDES) -LOCAL_SRC_FILES := $(REGAL_SRC_FILES) - -#$(warning local-path= $(LOCAL_PATH) src= $(LOCAL_SRC_FILES)) - -include $(BUILD_STATIC_LIBRARY) diff --git a/build/android/Regal/Application.mk b/build/android/Regal/Application.mk deleted file mode 100644 index 2ce6b64..0000000 --- a/build/android/Regal/Application.mk +++ /dev/null @@ -1,4 +0,0 @@ - -APP_MODULES := Regal_static Regal_shared -APP_STL := stlport_static - diff --git a/build/android/Regal/Android.mk b/build/android/Regal/jni/Android.mk similarity index 86% rename from build/android/Regal/Android.mk rename to build/android/Regal/jni/Android.mk index 320a5ba..9dbe060 100644 --- a/build/android/Regal/Android.mk +++ b/build/android/Regal/jni/Android.mk @@ -15,17 +15,20 @@ endif regal_cflags := -DANDROID=1 -DREGAL_NO_PNG=1 -Werror -regal_path := $(LOCAL_PATH)/../../.. +regal_path := $(LOCAL_PATH)/../../../.. + +include $(regal_path)/build/regal.inc # src_files should not include LOCAL_PATH -regal_src_files := $(wildcard $(regal_path)/src/regal/*.cpp) $(regal_path)/src/mongoose/mongoose.c $(regal_path)/src/md5/src/md5.c +regal_src_files := $(patsubst %,$(regal_path)/%,$(REGAL.CXX)) +regal_src_files += $(regal_path)/src/mongoose/mongoose.c $(regal_path)/src/md5/src/md5.c regal_src_files := $(patsubst $(LOCAL_PATH)/%,%,$(regal_src_files)) regal_c_includes := $(regal_path)/include $(regal_path)/src/regal $(regal_path)/src/boost $(regal_path)/src/mongoose $(regal_path)/src/md5/include $(regal_path)/src/lookup3 +regal_c_includes := $(patsubst $(LOCAL_PATH)/../%,%,$(regal_c_includes)) regal_export_c_includes := $(regal_path)/include - ifneq ($(REGAL_FORCE_REBUILD),true) $(call ndk_log,Using prebuilt Regal libraries) @@ -37,7 +40,7 @@ LOCAL_EXPORT_C_INCLUDES := $(regal_export_c_includes) include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) -LOCAL_MODULE := Regal_shared +LOCAL_MODULE := Regal LOCAL_SRC_FILES := libs/$(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).so LOCAL_EXPORT_C_INCLUDES := $(regal_export_c_includes) include $(PREBUILT_SHARED_LIBRARY) @@ -57,7 +60,7 @@ LOCAL_ARM_MODE := arm include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) -LOCAL_MODULE := Regal_shared +LOCAL_MODULE := Regal LOCAL_SRC_FILES := $(regal_src_files) LOCAL_CFLAGS := $(regal_cflags) LOCAL_C_INCLUDES := $(regal_c_includes) diff --git a/build/android/Regal/jni/Application.mk b/build/android/Regal/jni/Application.mk new file mode 100644 index 0000000..d13ec44 --- /dev/null +++ b/build/android/Regal/jni/Application.mk @@ -0,0 +1,4 @@ + +APP_MODULES := Regal_static Regal +APP_STL := stlport_static + diff --git a/build/ios/Regal/Regal.xcodeproj/project.pbxproj b/build/ios/Regal/Regal.xcodeproj/project.pbxproj index 5846b02..5988cdb 100644 --- a/build/ios/Regal/Regal.xcodeproj/project.pbxproj +++ b/build/ios/Regal/Regal.xcodeproj/project.pbxproj @@ -64,6 +64,10 @@ 43FC5FA715C461AC00D0177C /* mongoose.c in Sources */ = {isa = PBXBuildFile; fileRef = 43FC5FA615C461AC00D0177C /* mongoose.c */; }; BC020947160D1919003FAB99 /* RegalMarker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC020946160D1919003FAB99 /* RegalMarker.cpp */; }; BC020958160D1C73003FAB99 /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = BC020957160D1C73003FAB99 /* md5.c */; }; + BC3209D416F3A0E600D1A9E0 /* RegalCacheShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC3209D016F3A0E600D1A9E0 /* RegalCacheShader.cpp */; }; + BC3209D516F3A0E600D1A9E0 /* RegalCacheShader.h in Headers */ = {isa = PBXBuildFile; fileRef = BC3209D116F3A0E600D1A9E0 /* RegalCacheShader.h */; }; + BC3209D616F3A0E600D1A9E0 /* RegalCacheTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC3209D216F3A0E600D1A9E0 /* RegalCacheTexture.cpp */; }; + BC3209D716F3A0E600D1A9E0 /* RegalCacheTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = BC3209D316F3A0E600D1A9E0 /* RegalCacheTexture.h */; }; BC640CA416554AA4007DEF69 /* RegalFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC640CA216554AA4007DEF69 /* RegalFrame.cpp */; }; BC640CA516554AA4007DEF69 /* RegalFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = BC640CA316554AA4007DEF69 /* RegalFrame.h */; }; BC6C912A15EE3DC60056E4F7 /* RegalDispatchGlobal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC6C912915EE3DC60056E4F7 /* RegalDispatchGlobal.cpp */; }; @@ -76,8 +80,6 @@ BCBEC6E9167AD66F00B38E16 /* RegalDispatchCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCBEC6E7167AD66F00B38E16 /* RegalDispatchCache.cpp */; }; BCBEC6EA167AD66F00B38E16 /* RegalDispatchCode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCBEC6E8167AD66F00B38E16 /* RegalDispatchCode.cpp */; }; BCBEC6F4167AD69D00B38E16 /* RegalPush.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBEC6EC167AD69D00B38E16 /* RegalPush.h */; }; - BCBEC6F5167AD69D00B38E16 /* RegalShaderCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCBEC6ED167AD69D00B38E16 /* RegalShaderCache.cpp */; }; - BCBEC6F6167AD69D00B38E16 /* RegalShaderCache.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBEC6EE167AD69D00B38E16 /* RegalShaderCache.h */; }; BCBEC6F7167AD69D00B38E16 /* RegalSharedList.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBEC6EF167AD69D00B38E16 /* RegalSharedList.h */; }; BCBEC6F8167AD69D00B38E16 /* RegalSharedMap.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBEC6F0167AD69D00B38E16 /* RegalSharedMap.h */; }; BCBEC6F9167AD69D00B38E16 /* RegalSharedPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBEC6F1167AD69D00B38E16 /* RegalSharedPtr.h */; }; @@ -144,6 +146,10 @@ 43FC5FA615C461AC00D0177C /* mongoose.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mongoose.c; path = ../../../src/mongoose/mongoose.c; sourceTree = ""; }; BC020946160D1919003FAB99 /* RegalMarker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalMarker.cpp; path = ../../../src/regal/RegalMarker.cpp; sourceTree = ""; }; BC020957160D1C73003FAB99 /* md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = md5.c; path = ../../../src/md5/src/md5.c; sourceTree = ""; }; + BC3209D016F3A0E600D1A9E0 /* RegalCacheShader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalCacheShader.cpp; path = ../../../src/regal/RegalCacheShader.cpp; sourceTree = ""; }; + BC3209D116F3A0E600D1A9E0 /* RegalCacheShader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalCacheShader.h; path = ../../../src/regal/RegalCacheShader.h; sourceTree = ""; }; + BC3209D216F3A0E600D1A9E0 /* RegalCacheTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalCacheTexture.cpp; path = ../../../src/regal/RegalCacheTexture.cpp; sourceTree = ""; }; + BC3209D316F3A0E600D1A9E0 /* RegalCacheTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalCacheTexture.h; path = ../../../src/regal/RegalCacheTexture.h; sourceTree = ""; }; BC640CA216554AA4007DEF69 /* RegalFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalFrame.cpp; path = ../../../src/regal/RegalFrame.cpp; sourceTree = ""; }; BC640CA316554AA4007DEF69 /* RegalFrame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalFrame.h; path = ../../../src/regal/RegalFrame.h; sourceTree = ""; }; BC6C912915EE3DC60056E4F7 /* RegalDispatchGlobal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchGlobal.cpp; path = ../../../src/regal/RegalDispatchGlobal.cpp; sourceTree = ""; }; @@ -156,8 +162,6 @@ BCBEC6E7167AD66F00B38E16 /* RegalDispatchCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchCache.cpp; path = ../../../src/regal/RegalDispatchCache.cpp; sourceTree = ""; }; BCBEC6E8167AD66F00B38E16 /* RegalDispatchCode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchCode.cpp; path = ../../../src/regal/RegalDispatchCode.cpp; sourceTree = ""; }; BCBEC6EC167AD69D00B38E16 /* RegalPush.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalPush.h; path = ../../../src/regal/RegalPush.h; sourceTree = ""; }; - BCBEC6ED167AD69D00B38E16 /* RegalShaderCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalShaderCache.cpp; path = ../../../src/regal/RegalShaderCache.cpp; sourceTree = ""; }; - BCBEC6EE167AD69D00B38E16 /* RegalShaderCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalShaderCache.h; path = ../../../src/regal/RegalShaderCache.h; sourceTree = ""; }; BCBEC6EF167AD69D00B38E16 /* RegalSharedList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalSharedList.h; path = ../../../src/regal/RegalSharedList.h; sourceTree = ""; }; BCBEC6F0167AD69D00B38E16 /* RegalSharedMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalSharedMap.h; path = ../../../src/regal/RegalSharedMap.h; sourceTree = ""; }; BCBEC6F1167AD69D00B38E16 /* RegalSharedPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalSharedPtr.h; path = ../../../src/regal/RegalSharedPtr.h; sourceTree = ""; }; @@ -217,6 +221,10 @@ 43FC5F4D15C4619B00D0177C /* RegalBin.h */, BC94B98D16DFDD6D00116D55 /* RegalBreak.cpp */, BC94B98E16DFDD6D00116D55 /* RegalBreak.h */, + BC3209D016F3A0E600D1A9E0 /* RegalCacheShader.cpp */, + BC3209D116F3A0E600D1A9E0 /* RegalCacheShader.h */, + BC3209D216F3A0E600D1A9E0 /* RegalCacheTexture.cpp */, + BC3209D316F3A0E600D1A9E0 /* RegalCacheTexture.h */, 43FC5F4E15C4619B00D0177C /* RegalConfig.cpp */, 43FC5F4F15C4619B00D0177C /* RegalConfig.h */, 43FC5F5015C4619B00D0177C /* RegalContext.cpp */, @@ -267,8 +275,6 @@ 43FC5F7015C4619B00D0177C /* RegalPrecompile.h */, 43FC5F7115C4619B00D0177C /* RegalPrivate.h */, BCBEC6EC167AD69D00B38E16 /* RegalPush.h */, - BCBEC6ED167AD69D00B38E16 /* RegalShaderCache.cpp */, - BCBEC6EE167AD69D00B38E16 /* RegalShaderCache.h */, BCBEC6EF167AD69D00B38E16 /* RegalSharedList.h */, BCBEC6F0167AD69D00B38E16 /* RegalSharedMap.h */, BCBEC6F1167AD69D00B38E16 /* RegalSharedPtr.h */, @@ -339,13 +345,14 @@ 43EFD6FD15EAADAC004080CE /* RegalSystem.h in Headers */, BC640CA516554AA4007DEF69 /* RegalFrame.h in Headers */, BCBEC6F4167AD69D00B38E16 /* RegalPush.h in Headers */, - BCBEC6F6167AD69D00B38E16 /* RegalShaderCache.h in Headers */, BCBEC6F7167AD69D00B38E16 /* RegalSharedList.h in Headers */, BCBEC6F8167AD69D00B38E16 /* RegalSharedMap.h in Headers */, BCBEC6F9167AD69D00B38E16 /* RegalSharedPtr.h in Headers */, BCBEC6FB167AD69D00B38E16 /* RegalSo.h in Headers */, BC94B99016DFDD6D00116D55 /* RegalBreak.h in Headers */, BC94B99416DFDDA000116D55 /* RegalFilt.h in Headers */, + BC3209D516F3A0E600D1A9E0 /* RegalCacheShader.h in Headers */, + BC3209D716F3A0E600D1A9E0 /* RegalCacheTexture.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -432,10 +439,11 @@ BC640CA416554AA4007DEF69 /* RegalFrame.cpp in Sources */, BCBEC6E9167AD66F00B38E16 /* RegalDispatchCache.cpp in Sources */, BCBEC6EA167AD66F00B38E16 /* RegalDispatchCode.cpp in Sources */, - BCBEC6F5167AD69D00B38E16 /* RegalShaderCache.cpp in Sources */, BCBEC6FA167AD69D00B38E16 /* RegalSo.cpp in Sources */, BC94B98F16DFDD6D00116D55 /* RegalBreak.cpp in Sources */, BC94B99316DFDDA000116D55 /* RegalFilt.cpp in Sources */, + BC3209D416F3A0E600D1A9E0 /* RegalCacheShader.cpp in Sources */, + BC3209D616F3A0E600D1A9E0 /* RegalCacheTexture.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/build/mac/Regal/Regal.xcodeproj/project.pbxproj b/build/mac/Regal/Regal.xcodeproj/project.pbxproj index 427db91..460c131 100644 --- a/build/mac/Regal/Regal.xcodeproj/project.pbxproj +++ b/build/mac/Regal/Regal.xcodeproj/project.pbxproj @@ -74,6 +74,10 @@ 43A6C22E15C48D3A0063667E /* mongoose.c in Sources */ = {isa = PBXBuildFile; fileRef = 43A6C22D15C48D3A0063667E /* mongoose.c */; }; BC02094E160D1BA3003FAB99 /* RegalMarker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC02094D160D1BA3003FAB99 /* RegalMarker.cpp */; }; BC020950160D1BD0003FAB99 /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = BC02094F160D1BD0003FAB99 /* md5.c */; }; + BC3209DC16F3A28900D1A9E0 /* RegalCacheShader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC3209D816F3A28900D1A9E0 /* RegalCacheShader.cpp */; }; + BC3209DD16F3A28900D1A9E0 /* RegalCacheShader.h in Headers */ = {isa = PBXBuildFile; fileRef = BC3209D916F3A28900D1A9E0 /* RegalCacheShader.h */; }; + BC3209DE16F3A28900D1A9E0 /* RegalCacheTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC3209DA16F3A28900D1A9E0 /* RegalCacheTexture.cpp */; }; + BC3209DF16F3A28900D1A9E0 /* RegalCacheTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = BC3209DB16F3A28900D1A9E0 /* RegalCacheTexture.h */; }; BC456F1215D55F8E0080B420 /* RegalDispatchMissing.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC456F1015D55F8E0080B420 /* RegalDispatchMissing.cpp */; }; BC456F1315D55F8E0080B420 /* RegalDispatchPpapi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC456F1115D55F8E0080B420 /* RegalDispatchPpapi.cpp */; }; BC640C9C16554A52007DEF69 /* RegalFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC640C9A16554A52007DEF69 /* RegalFrame.cpp */; }; @@ -84,8 +88,6 @@ BC94B99716DFDF1F00116D55 /* RegalFilt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC94B99516DFDF1F00116D55 /* RegalFilt.cpp */; }; BC94B99816DFDF1F00116D55 /* RegalFilt.h in Headers */ = {isa = PBXBuildFile; fileRef = BC94B99616DFDF1F00116D55 /* RegalFilt.h */; }; BCBEC707167AD72700B38E16 /* RegalPush.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBEC6FF167AD72700B38E16 /* RegalPush.h */; }; - BCBEC708167AD72700B38E16 /* RegalShaderCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCBEC700167AD72700B38E16 /* RegalShaderCache.cpp */; }; - BCBEC709167AD72700B38E16 /* RegalShaderCache.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBEC701167AD72700B38E16 /* RegalShaderCache.h */; }; BCBEC70A167AD72700B38E16 /* RegalSharedList.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBEC702167AD72700B38E16 /* RegalSharedList.h */; }; BCBEC70B167AD72700B38E16 /* RegalSharedMap.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBEC703167AD72700B38E16 /* RegalSharedMap.h */; }; BCBEC70C167AD72700B38E16 /* RegalSharedPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBEC704167AD72700B38E16 /* RegalSharedPtr.h */; }; @@ -168,6 +170,10 @@ 43A6C22D15C48D3A0063667E /* mongoose.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mongoose.c; path = ../../../src/mongoose/mongoose.c; sourceTree = ""; }; BC02094D160D1BA3003FAB99 /* RegalMarker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalMarker.cpp; path = ../../../src/regal/RegalMarker.cpp; sourceTree = ""; }; BC02094F160D1BD0003FAB99 /* md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = md5.c; path = ../../../src/md5/src/md5.c; sourceTree = ""; }; + BC3209D816F3A28900D1A9E0 /* RegalCacheShader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalCacheShader.cpp; path = ../../../src/regal/RegalCacheShader.cpp; sourceTree = ""; }; + BC3209D916F3A28900D1A9E0 /* RegalCacheShader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalCacheShader.h; path = ../../../src/regal/RegalCacheShader.h; sourceTree = ""; }; + BC3209DA16F3A28900D1A9E0 /* RegalCacheTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalCacheTexture.cpp; path = ../../../src/regal/RegalCacheTexture.cpp; sourceTree = ""; }; + BC3209DB16F3A28900D1A9E0 /* RegalCacheTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalCacheTexture.h; path = ../../../src/regal/RegalCacheTexture.h; sourceTree = ""; }; BC456F1015D55F8E0080B420 /* RegalDispatchMissing.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchMissing.cpp; path = ../../../src/regal/RegalDispatchMissing.cpp; sourceTree = ""; }; BC456F1115D55F8E0080B420 /* RegalDispatchPpapi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchPpapi.cpp; path = ../../../src/regal/RegalDispatchPpapi.cpp; sourceTree = ""; }; BC640C9A16554A52007DEF69 /* RegalFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalFrame.cpp; path = ../../../src/regal/RegalFrame.cpp; sourceTree = ""; }; @@ -178,8 +184,6 @@ BC94B99516DFDF1F00116D55 /* RegalFilt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalFilt.cpp; path = ../../../src/regal/RegalFilt.cpp; sourceTree = ""; }; BC94B99616DFDF1F00116D55 /* RegalFilt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalFilt.h; path = ../../../src/regal/RegalFilt.h; sourceTree = ""; }; BCBEC6FF167AD72700B38E16 /* RegalPush.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalPush.h; path = ../../../src/regal/RegalPush.h; sourceTree = ""; }; - BCBEC700167AD72700B38E16 /* RegalShaderCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalShaderCache.cpp; path = ../../../src/regal/RegalShaderCache.cpp; sourceTree = ""; }; - BCBEC701167AD72700B38E16 /* RegalShaderCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalShaderCache.h; path = ../../../src/regal/RegalShaderCache.h; sourceTree = ""; }; BCBEC702167AD72700B38E16 /* RegalSharedList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalSharedList.h; path = ../../../src/regal/RegalSharedList.h; sourceTree = ""; }; BCBEC703167AD72700B38E16 /* RegalSharedMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalSharedMap.h; path = ../../../src/regal/RegalSharedMap.h; sourceTree = ""; }; BCBEC704167AD72700B38E16 /* RegalSharedPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalSharedPtr.h; path = ../../../src/regal/RegalSharedPtr.h; sourceTree = ""; }; @@ -230,6 +234,10 @@ 43A6C1D415C48D1F0063667E /* RegalBin.h */, BC94B98916DFDC6200116D55 /* RegalBreak.cpp */, BC94B98A16DFDC6200116D55 /* RegalBreak.h */, + BC3209D816F3A28900D1A9E0 /* RegalCacheShader.cpp */, + BC3209D916F3A28900D1A9E0 /* RegalCacheShader.h */, + BC3209DA16F3A28900D1A9E0 /* RegalCacheTexture.cpp */, + BC3209DB16F3A28900D1A9E0 /* RegalCacheTexture.h */, 43A6C1D515C48D1F0063667E /* RegalConfig.cpp */, 43A6C1D615C48D1F0063667E /* RegalConfig.h */, 43A6C1D715C48D1F0063667E /* RegalContext.cpp */, @@ -292,8 +300,6 @@ 43A6C1F815C48D200063667E /* RegalPrivate.h */, BCBEC6FF167AD72700B38E16 /* RegalPush.h */, 430443F316F1658F0078C0F9 /* RegalScopedPtr.h */, - BCBEC700167AD72700B38E16 /* RegalShaderCache.cpp */, - BCBEC701167AD72700B38E16 /* RegalShaderCache.h */, BCBEC702167AD72700B38E16 /* RegalSharedList.h */, BCBEC703167AD72700B38E16 /* RegalSharedMap.h */, BCBEC704167AD72700B38E16 /* RegalSharedPtr.h */, @@ -370,7 +376,6 @@ BCF889A815E079C20093B7D5 /* RegalDispatcher.h in Headers */, BC640C9D16554A52007DEF69 /* RegalFrame.h in Headers */, BCBEC707167AD72700B38E16 /* RegalPush.h in Headers */, - BCBEC709167AD72700B38E16 /* RegalShaderCache.h in Headers */, BCBEC70A167AD72700B38E16 /* RegalSharedList.h in Headers */, BCBEC70B167AD72700B38E16 /* RegalSharedMap.h in Headers */, BCBEC70C167AD72700B38E16 /* RegalSharedPtr.h in Headers */, @@ -388,6 +393,8 @@ 430443F116F1656A0078C0F9 /* RegalXfer.h in Headers */, 430443F416F1658F0078C0F9 /* RegalMac.h in Headers */, 430443F516F1658F0078C0F9 /* RegalScopedPtr.h in Headers */, + BC3209DD16F3A28900D1A9E0 /* RegalCacheShader.h in Headers */, + BC3209DF16F3A28900D1A9E0 /* RegalCacheTexture.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -471,7 +478,6 @@ BC02094E160D1BA3003FAB99 /* RegalMarker.cpp in Sources */, BC020950160D1BD0003FAB99 /* md5.c in Sources */, BC640C9C16554A52007DEF69 /* RegalFrame.cpp in Sources */, - BCBEC708167AD72700B38E16 /* RegalShaderCache.cpp in Sources */, BCBEC70D167AD72700B38E16 /* RegalSo.cpp in Sources */, BCBEC712167AD74400B38E16 /* RegalDispatchCache.cpp in Sources */, BCBEC713167AD74400B38E16 /* RegalDispatchCode.cpp in Sources */, @@ -482,6 +488,8 @@ BC94B98B16DFDC6200116D55 /* RegalBreak.cpp in Sources */, BC94B99716DFDF1F00116D55 /* RegalFilt.cpp in Sources */, 430443F016F1656A0078C0F9 /* RegalXfer.cpp in Sources */, + BC3209DC16F3A28900D1A9E0 /* RegalCacheShader.cpp in Sources */, + BC3209DE16F3A28900D1A9E0 /* RegalCacheTexture.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/build/regal.inc b/build/regal.inc index bca6bac..6860bb3 100644 --- a/build/regal.inc +++ b/build/regal.inc @@ -10,12 +10,14 @@ REGAL.CXX += src/regal/Regal.cpp REGAL.CXX += src/regal/RegalLog.cpp REGAL.CXX += src/regal/RegalInit.cpp REGAL.CXX += src/regal/RegalBreak.cpp -REGAL.CXX += src/regal/RegalConfig.cpp REGAL.CXX += src/regal/RegalUtil.cpp REGAL.CXX += src/regal/RegalFrame.cpp REGAL.CXX += src/regal/RegalHelper.cpp REGAL.CXX += src/regal/RegalMarker.cpp REGAL.CXX += src/regal/RegalTexC.cpp +REGAL.CXX += src/regal/RegalCacheShader.cpp +REGAL.CXX += src/regal/RegalCacheTexture.cpp +REGAL.CXX += src/regal/RegalConfig.cpp REGAL.CXX += src/regal/RegalContext.cpp REGAL.CXX += src/regal/RegalContextInfo.cpp REGAL.CXX += src/regal/RegalLookup.cpp @@ -35,7 +37,6 @@ REGAL.CXX += src/regal/RegalDispatchStaticEGL.cpp REGAL.CXX += src/regal/RegalDispatchMissing.cpp REGAL.CXX += src/regal/RegalPixelConversions.cpp REGAL.CXX += src/regal/RegalHttp.cpp -REGAL.CXX += src/regal/RegalShaderCache.cpp REGAL.CXX += src/regal/RegalFavicon.cpp REGAL.CXX += src/regal/RegalMac.cpp REGAL.CXX += src/regal/RegalSo.cpp @@ -48,6 +49,8 @@ REGAL.CXX += src/regal/RegalDllMain.cpp REGAL.H += src/regal/RegalBin.h REGAL.H += src/regal/RegalBreak.h +REGAL.H += src/regal/RegalCacheShader.h +REGAL.H += src/regal/RegalCacheTexture.h REGAL.H += src/regal/RegalConfig.h REGAL.H += src/regal/RegalContext.h REGAL.H += src/regal/RegalContextInfo.h @@ -64,7 +67,6 @@ REGAL.H += src/regal/RegalXfer.h REGAL.H += src/regal/RegalFrame.h REGAL.H += src/regal/RegalHelper.h REGAL.H += src/regal/RegalHttp.h -REGAL.H += src/regal/RegalShaderCache.h REGAL.H += src/regal/RegalIff.h REGAL.H += src/regal/RegalInit.h REGAL.H += src/regal/RegalLog.h diff --git a/build/win32/vs2010/Regal/Regal.vcxproj b/build/win32/vs2010/Regal/Regal.vcxproj index 8f0dff8..363bbd3 100755 --- a/build/win32/vs2010/Regal/Regal.vcxproj +++ b/build/win32/vs2010/Regal/Regal.vcxproj @@ -234,6 +234,10 @@ + + + + @@ -294,8 +298,6 @@ - - diff --git a/build/win32/vs2010/Regal/Regallib.vcxproj b/build/win32/vs2010/Regal/Regallib.vcxproj index e0f1af5..3f5b72a 100644 --- a/build/win32/vs2010/Regal/Regallib.vcxproj +++ b/build/win32/vs2010/Regal/Regallib.vcxproj @@ -234,6 +234,10 @@ + + + + @@ -294,8 +298,6 @@ - - diff --git a/build/win32/vs2010/Regal/Regalm.vcxproj b/build/win32/vs2010/Regal/Regalm.vcxproj index d2036cd..9f352cd 100644 --- a/build/win32/vs2010/Regal/Regalm.vcxproj +++ b/build/win32/vs2010/Regal/Regalm.vcxproj @@ -234,6 +234,10 @@ + + + + @@ -294,8 +298,6 @@ - - diff --git a/build/win32/vs2010/Regal/Regalmlib.vcxproj b/build/win32/vs2010/Regal/Regalmlib.vcxproj index bae3074..f7c9341 100644 --- a/build/win32/vs2010/Regal/Regalmlib.vcxproj +++ b/build/win32/vs2010/Regal/Regalmlib.vcxproj @@ -234,6 +234,10 @@ + + + + @@ -294,8 +298,6 @@ - - diff --git a/examples/dreamtorus/android/jni/Android.mk b/examples/dreamtorus/android/jni/Android.mk index 803427e..62c4844 100644 --- a/examples/dreamtorus/android/jni/Android.mk +++ b/examples/dreamtorus/android/jni/Android.mk @@ -34,6 +34,6 @@ LOCAL_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY) -$(call import-add-path, $(LOCAL_PATH)/../../../../build/android) -$(call import-module, Regal) +$(call import-add-path, $(LOCAL_PATH)/../../../../build/android/Regal) +$(call import-module, jni) diff --git a/scripts/EmuCache.py b/scripts/EmuCache.py index ad0a9b2..4b497a3 100644 --- a/scripts/EmuCache.py +++ b/scripts/EmuCache.py @@ -6,14 +6,34 @@ formulaeGlobal = { + # GLSL shader caching + 'glShaderSource' : { 'entries' : [ 'glShaderSource' ], 'suffix' : [ 'if (REGAL_CACHE && REGAL_CACHE_SHADER)\n', '{', - ' ShaderCache::shaderSource(_next->call(&_next->glShaderSource), shader, count, string, length);', + ' Cache::shaderSource(_next->call(&_next->glShaderSource), shader, count, string, length);', + ' return;', + '}' + ] + }, + + # + # Texture caching + # + # At glBindTexture time we can optionally write out the texture data + # as a .png file, for debugging. + + 'glBindTexture' : { + 'entries' : [ 'glBindTexture' ], + 'suffix' : [ + 'if (REGAL_CACHE && REGAL_CACHE_TEXTURE)\n', + '{', + ' Cache::bindTexture(_next->call(&_next->glBindTexture),_next->call(&_next->glGetTexLevelParameteriv),_next->call(&_next->glGetTexImage), target, texture);', ' return;', '}' ] } + } diff --git a/scripts/regal/Regal.py b/scripts/regal/Regal.py index b4c43f1..624a6bd 100755 --- a/scripts/regal/Regal.py +++ b/scripts/regal/Regal.py @@ -593,7 +593,8 @@ REGAL_GLOBAL_BEGIN #include "RegalPrivate.h" #include "RegalDebugInfo.h" #include "RegalContextInfo.h" -#include "RegalShaderCache.h" +#include "RegalCacheShader.h" +#include "RegalCacheTexture.h" #include "RegalScopedPtr.h" #include "RegalFrame.h" #include "RegalMarker.h" diff --git a/src/glu/libnurbs/GNUmakefile b/src/glu/libnurbs/GNUmakefile deleted file mode 100644 index ee47db0..0000000 --- a/src/glu/libnurbs/GNUmakefile +++ /dev/null @@ -1,54 +0,0 @@ -#!gmake -# -# License Applicability. Except to the extent portions of this file are -# made subject to an alternative license as permitted in the SGI Free -# Software License B, Version 1.1 (the "License"), the contents of this -# file are subject only to the provisions of the License. You may not use -# this file except in compliance with the License. You may obtain a copy -# of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -# Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -# -# http://oss.sgi.com/projects/FreeB -# -# Note that, as provided in the License, the Software is distributed on an -# "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -# DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -# CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -# PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -# -# Original Code. The Original Code is: OpenGL Sample Implementation, -# Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -# Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -# Copyright in any portions created by third parties is as indicated -# elsewhere herein. All Rights Reserved. -# -# Additional Notice Provisions: The application programming interfaces -# established by SGI in conjunction with the Original Code are The -# OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -# April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -# 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -# Window System(R) (Version 1.3), released October 19, 1998. This software -# was created using the OpenGL(R) version 1.2.1 Sample Implementation -# published by SGI, but has not been independently verified as being -# compliant with the OpenGL(R) version 1.2.1 Specification. -# -# $Date$ $Revision$ -# $Header: //depot/main/gfx/lib/glu/libnurbs/GNUmakefile#7 $ - -COMMONPREF = standard -include $(ROOT)/usr/include/make/commondefs - -SUBDIRS = \ - internals \ - interface \ - nurbtess \ - $(NULL) - -default $(ALLTARGS): $(_FORCE) - $(SUBDIRS_MAKERULE) - -distoss: - $(MAKE) $(COMMONPREF)$@ - $(SUBDIRS_MAKERULE) - -include $(COMMONRULES) diff --git a/src/glu/libnurbs/Imakefile b/src/glu/libnurbs/Imakefile deleted file mode 100644 index aa5f72d..0000000 --- a/src/glu/libnurbs/Imakefile +++ /dev/null @@ -1,43 +0,0 @@ -XCOMM License Applicability. Except to the extent portions of this file are -XCOMM made subject to an alternative license as permitted in the SGI Free -XCOMM Software License B, Version 1.1 (the "License"), the contents of this -XCOMM file are subject only to the provisions of the License. You may not use -XCOMM this file except in compliance with the License. You may obtain a copy -XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -XCOMM -XCOMM http://oss.sgi.com/projects/FreeB -XCOMM -XCOMM Note that, as provided in the License, the Software is distributed on an -XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -XCOMM -XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, -XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -XCOMM Copyright in any portions created by third parties is as indicated -XCOMM elsewhere herein. All Rights Reserved. -XCOMM -XCOMM Additional Notice Provisions: The application programming interfaces -XCOMM established by SGI in conjunction with the Original Code are The -XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software -XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation -XCOMM published by SGI, but has not been independently verified as being -XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. -XCOMM - -#define IHaveSubdirs -#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' - -SUBDIRS = \ - internals \ - interface \ - nurbtess - -MakeSubdirs($(SUBDIRS)) -DependSubdirs($(SUBDIRS)) diff --git a/src/glu/libnurbs/interface/GNUmakefile b/src/glu/libnurbs/interface/GNUmakefile deleted file mode 100644 index c852870..0000000 --- a/src/glu/libnurbs/interface/GNUmakefile +++ /dev/null @@ -1,75 +0,0 @@ -#!gmake -# -# License Applicability. Except to the extent portions of this file are -# made subject to an alternative license as permitted in the SGI Free -# Software License B, Version 1.1 (the "License"), the contents of this -# file are subject only to the provisions of the License. You may not use -# this file except in compliance with the License. You may obtain a copy -# of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -# Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -# -# http://oss.sgi.com/projects/FreeB -# -# Note that, as provided in the License, the Software is distributed on an -# "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -# DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -# CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -# PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -# -# Original Code. The Original Code is: OpenGL Sample Implementation, -# Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -# Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -# Copyright in any portions created by third parties is as indicated -# elsewhere herein. All Rights Reserved. -# -# Additional Notice Provisions: The application programming interfaces -# established by SGI in conjunction with the Original Code are The -# OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -# April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -# 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -# Window System(R) (Version 1.3), released October 19, 1998. This software -# was created using the OpenGL(R) version 1.2.1 Sample Implementation -# published by SGI, but has not been independently verified as being -# compliant with the OpenGL(R) version 1.2.1 Specification. -# -# $Date$ $Revision$ -# $Header: //depot/main/gfx/lib/glu/libnurbs/interface/GNUmakefile#8 $ - -include $(ROOT)/usr/include/make/commondefs - -TARGET = libinterface.a - -TARGETS = $(TARGET) - -LCXXDEFS = -DNDEBUG -DLIBRARYBUILD -LCXXINCS = -I. -I../../include -I../internals -I../nurbtess - -HFILES = \ - glcurveval.h \ - glrenderer.h \ - glsurfeval.h \ - bezierPatch.h \ - bezierEval.h \ - bezierPatchMesh.h \ - $(NULL) - -CCFILES = \ - glcurveval.cc \ - glinterface.cc \ - glrenderer.cc \ - glsurfeval.cc \ - insurfeval.cc \ - bezierPatch.cc \ - bezierEval.cc \ - bezierPatchMesh.cc \ - incurveeval.cc \ - $(NULL) - -default libs libs_install install: $(TARGET) - -headers headers_install apps: - -$(TARGET): $(OBJECTS) - $(AR) crl $@ $(OBJECTS); - -include $(COMMONRULES) diff --git a/src/glu/libnurbs/interface/Imakefile b/src/glu/libnurbs/interface/Imakefile deleted file mode 100644 index edb8cd8..0000000 --- a/src/glu/libnurbs/interface/Imakefile +++ /dev/null @@ -1,63 +0,0 @@ -XCOMM License Applicability. Except to the extent portions of this file are -XCOMM made subject to an alternative license as permitted in the SGI Free -XCOMM Software License B, Version 1.1 (the "License"), the contents of this -XCOMM file are subject only to the provisions of the License. You may not use -XCOMM this file except in compliance with the License. You may obtain a copy -XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -XCOMM -XCOMM http://oss.sgi.com/projects/FreeB -XCOMM -XCOMM Note that, as provided in the License, the Software is distributed on an -XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -XCOMM -XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, -XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -XCOMM Copyright in any portions created by third parties is as indicated -XCOMM elsewhere herein. All Rights Reserved. -XCOMM -XCOMM Additional Notice Provisions: The application programming interfaces -XCOMM established by SGI in conjunction with the Original Code are The -XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software -XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation -XCOMM published by SGI, but has not been independently verified as being -XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. -XCOMM - -#include - -OBJS = \ - bezierEval.o \ - bezierPatch.o \ - bezierPatchMesh.o \ - glcurveval.o \ - glinterface.o \ - glrenderer.o \ - glsurfeval.o \ - incurveeval.o \ - insurfeval.o - -INCLUDES = \ - -I../internals \ - -I../nurbtess \ - -I../../include \ - -I$(TOP)/include \ - -I$(TOP)/include/GL - -DEFINES = \ - -DLIBRARYBUILD \ - -DNDEBUG - -NormalCplusplusObjectRule() - -NormalLibraryTarget(interface, $(OBJS)) - -DependTarget() -CleanTarget() diff --git a/src/glu/libnurbs/internals/GNUmakefile b/src/glu/libnurbs/internals/GNUmakefile deleted file mode 100644 index 556264a..0000000 --- a/src/glu/libnurbs/internals/GNUmakefile +++ /dev/null @@ -1,160 +0,0 @@ -#!gmake -# -# License Applicability. Except to the extent portions of this file are -# made subject to an alternative license as permitted in the SGI Free -# Software License B, Version 1.1 (the "License"), the contents of this -# file are subject only to the provisions of the License. You may not use -# this file except in compliance with the License. You may obtain a copy -# of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -# Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -# -# http://oss.sgi.com/projects/FreeB -# -# Note that, as provided in the License, the Software is distributed on an -# "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -# DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -# CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -# PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -# -# Original Code. The Original Code is: OpenGL Sample Implementation, -# Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -# Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -# Copyright in any portions created by third parties is as indicated -# elsewhere herein. All Rights Reserved. -# -# Additional Notice Provisions: The application programming interfaces -# established by SGI in conjunction with the Original Code are The -# OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -# April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -# 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -# Window System(R) (Version 1.3), released October 19, 1998. This software -# was created using the OpenGL(R) version 1.2.1 Sample Implementation -# published by SGI, but has not been independently verified as being -# compliant with the OpenGL(R) version 1.2.1 Specification. -# -# $Date$ $Revision$ -# $Header: //depot/main/gfx/lib/glu/libnurbs/internals/GNUmakefile#12 $ - -include $(ROOT)/usr/include/make/commondefs - -TARGET = libinternals.a - -TARGETS = $(TARGET) - -LCXXDEFS = -DNDEBUG -DLIBRARYBUILD -LCXXINCS = -I../nurbtess -I../interface -I../../include - -HFILES = \ - arc.h \ - arcsorter.h \ - arctess.h \ - backend.h \ - basiccrveval.h \ - basicsurfeval.h \ - bezierarc.h \ - bin.h \ - bufpool.h \ - cachingeval.h \ - coveandtiler.h \ - curve.h \ - curvelist.h \ - defines.h \ - displaylist.h \ - displaymode.h \ - flist.h \ - flistsorter.h \ - glimports.h \ - gridline.h \ - gridtrimvertex.h \ - gridvertex.h \ - hull.h \ - jarcloc.h \ - knotvector.h \ - mapdesc.h \ - maplist.h \ - mesher.h \ - monotonizer.h \ - myassert.h \ - mymath.h \ - mysetjmp.h \ - mystdio.h \ - mystdlib.h \ - mystring.h \ - nurbsconsts.h \ - nurbstess.h \ - patch.h \ - patchlist.h \ - pwlarc.h \ - quilt.h \ - reader.h \ - renderhints.h \ - simplemath.h \ - slicer.h \ - sorter.h \ - subdivider.h \ - trimline.h \ - trimregion.h \ - trimvertex.h \ - trimvertpool.h \ - types.h \ - uarray.h \ - varray.h \ - dataTransform.h \ - $(NULL) - -CCFILES = \ - arc.cc \ - arcsorter.cc \ - arctess.cc \ - backend.cc \ - basiccrveval.cc \ - basicsurfeval.cc \ - bin.cc \ - bufpool.cc \ - cachingeval.cc \ - ccw.cc \ - coveandtiler.cc \ - curve.cc \ - curvelist.cc \ - curvesub.cc \ - displaylist.cc \ - flist.cc \ - flistsorter.cc \ - hull.cc \ - intersect.cc \ - knotvector.cc \ - mapdesc.cc \ - mapdescv.cc \ - maplist.cc \ - mesher.cc \ - monotonizer.cc \ - mycode.cc \ - nurbsinterfac.cc \ - nurbstess.cc \ - patch.cc \ - patchlist.cc \ - quilt.cc \ - reader.cc \ - renderhints.cc \ - slicer.cc \ - sorter.cc \ - splitarcs.cc \ - subdivider.cc \ - tobezier.cc \ - trimline.cc \ - trimregion.cc \ - trimvertpool.cc \ - uarray.cc \ - varray.cc \ - dataTransform.cc \ - monoTriangulationBackend.cc \ - $(NULL) - -default libs libs_install install: $(TARGET) - -headers headers_install apps: - -$(TARGET): $(OBJECTS) - $(AR) crl $@ $(OBJECTS); - -include $(COMMONRULES) diff --git a/src/glu/libnurbs/internals/Imakefile b/src/glu/libnurbs/internals/Imakefile deleted file mode 100644 index 9683849..0000000 --- a/src/glu/libnurbs/internals/Imakefile +++ /dev/null @@ -1,98 +0,0 @@ -XCOMM License Applicability. Except to the extent portions of this file are -XCOMM made subject to an alternative license as permitted in the SGI Free -XCOMM Software License B, Version 1.1 (the "License"), the contents of this -XCOMM file are subject only to the provisions of the License. You may not use -XCOMM this file except in compliance with the License. You may obtain a copy -XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -XCOMM -XCOMM http://oss.sgi.com/projects/FreeB -XCOMM -XCOMM Note that, as provided in the License, the Software is distributed on an -XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -XCOMM -XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, -XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -XCOMM Copyright in any portions created by third parties is as indicated -XCOMM elsewhere herein. All Rights Reserved. -XCOMM -XCOMM Additional Notice Provisions: The application programming interfaces -XCOMM established by SGI in conjunction with the Original Code are The -XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software -XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation -XCOMM published by SGI, but has not been independently verified as being -XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. -XCOMM - -#include - -OBJS = \ - arc.o \ - arcsorter.o \ - arctess.o \ - backend.o \ - basiccrveval.o \ - basicsurfeval.o \ - bin.o \ - bufpool.o \ - cachingeval.o \ - ccw.o \ - coveandtiler.o \ - curve.o \ - curvelist.o \ - curvesub.o \ - dataTransform.o \ - displaylist.o \ - flist.o \ - flistsorter.o \ - hull.o \ - intersect.o \ - knotvector.o \ - mapdesc.o \ - mapdescv.o \ - maplist.o \ - mesher.o \ - monoTriangulationBackend.o \ - monotonizer.o \ - mycode.o \ - nurbsinterfac.o \ - nurbstess.o \ - patch.o \ - patchlist.o \ - quilt.o \ - reader.o \ - renderhints.o \ - slicer.o \ - sorter.o \ - splitarcs.o \ - subdivider.o \ - tobezier.o \ - trimline.o \ - trimregion.o \ - trimvertpool.o \ - uarray.o \ - varray.o - -INCLUDES = \ - -I../nurbtess \ - -I../../include \ - -I$(TOP)/include \ - -I$(TOP)/include/GL - -DEFINES = \ - -DLIBRARYBUILD \ - -DNDEBUG - -NormalCplusplusObjectRule() - -NormalLibraryTarget(internals, $(OBJS)) - -DependTarget() -CleanTarget() diff --git a/src/glu/libnurbs/nurbtess/GNUmakefile b/src/glu/libnurbs/nurbtess/GNUmakefile deleted file mode 100644 index e53824a..0000000 --- a/src/glu/libnurbs/nurbtess/GNUmakefile +++ /dev/null @@ -1,99 +0,0 @@ -#!gmake -# -# License Applicability. Except to the extent portions of this file are -# made subject to an alternative license as permitted in the SGI Free -# Software License B, Version 1.1 (the "License"), the contents of this -# file are subject only to the provisions of the License. You may not use -# this file except in compliance with the License. You may obtain a copy -# of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -# Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -# -# http://oss.sgi.com/projects/FreeB -# -# Note that, as provided in the License, the Software is distributed on an -# "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -# DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -# CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -# PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -# -# Original Code. The Original Code is: OpenGL Sample Implementation, -# Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -# Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -# Copyright in any portions created by third parties is as indicated -# elsewhere herein. All Rights Reserved. -# -# Additional Notice Provisions: The application programming interfaces -# established by SGI in conjunction with the Original Code are The -# OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -# April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -# 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -# Window System(R) (Version 1.3), released October 19, 1998. This software -# was created using the OpenGL(R) version 1.2.1 Sample Implementation -# published by SGI, but has not been independently verified as being -# compliant with the OpenGL(R) version 1.2.1 Specification. -# -# $Date$ $Revision$ -# $Header: //depot/main/gfx/lib/glu/libnurbs/nurbtess/GNUmakefile#8 $ - -include $(ROOT)/usr/include/make/commondefs - -TARGET = libnurbtess.a - -TARGETS = $(TARGET) - -LCXXINCS = -I../../include - -HFILES = \ - definitions.h \ - directedLine.h \ - gridWrap.h \ - monoTriangulation.h \ - partitionY.h \ - polyDBG.h \ - polyUtil.h \ - primitiveStream.h \ - quicksort.h \ - rectBlock.h \ - sampleComp.h \ - sampleCompBot.h \ - sampleCompRight.h \ - sampleCompTop.h \ - sampleMonoPoly.h \ - sampledLine.h \ - searchTree.h \ - zlassert.h \ - partitionX.h \ - monoChain.h \ - monoPolyPart.h \ - $(NULL) - -CCFILES = \ - directedLine.cc \ - gridWrap.cc \ - monoTriangulation.cc \ - partitionY.cc \ - polyDBG.cc \ - polyUtil.cc \ - primitiveStream.cc \ - quicksort.cc \ - rectBlock.cc \ - sampleComp.cc \ - sampleCompBot.cc \ - sampleCompRight.cc \ - sampleCompTop.cc \ - sampleMonoPoly.cc \ - sampledLine.cc \ - searchTree.cc \ - partitionX.cc \ - monoChain.cc \ - monoPolyPart.cc \ - $(NULL) - -default libs libs_install install: $(TARGET) - -headers headers_install apps: - -$(TARGET): $(OBJECTS) - $(AR) crl $@ $(OBJECTS); - -include $(COMMONRULES) diff --git a/src/glu/libnurbs/nurbtess/Imakefile b/src/glu/libnurbs/nurbtess/Imakefile deleted file mode 100644 index f3e9820..0000000 --- a/src/glu/libnurbs/nurbtess/Imakefile +++ /dev/null @@ -1,72 +0,0 @@ -XCOMM License Applicability. Except to the extent portions of this file are -XCOMM made subject to an alternative license as permitted in the SGI Free -XCOMM Software License B, Version 1.1 (the "License"), the contents of this -XCOMM file are subject only to the provisions of the License. You may not use -XCOMM this file except in compliance with the License. You may obtain a copy -XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -XCOMM -XCOMM http://oss.sgi.com/projects/FreeB -XCOMM -XCOMM Note that, as provided in the License, the Software is distributed on an -XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -XCOMM -XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, -XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -XCOMM Copyright in any portions created by third parties is as indicated -XCOMM elsewhere herein. All Rights Reserved. -XCOMM -XCOMM Additional Notice Provisions: The application programming interfaces -XCOMM established by SGI in conjunction with the Original Code are The -XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software -XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation -XCOMM published by SGI, but has not been independently verified as being -XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. -XCOMM - -#include - -OBJS = \ - directedLine.o \ - gridWrap.o \ - monoChain.o \ - monoTriangulation.o \ - partitionX.o \ - partitionY.o \ - polyDBG.o \ - polyUtil.o \ - primitiveStream.o \ - quicksort.o \ - rectBlock.o \ - sampleComp.o \ - sampleCompBot.o \ - sampleCompRight.o \ - sampleCompTop.o \ - sampleMonoPoly.o \ - sampledLine.o \ - searchTree.o \ - monoPolyPart.o - -INCLUDES = \ - -I../internals \ - -I../../include \ - -I$(TOP)/include \ - -I$(TOP)/include/GL - -DEFINES = \ - -DLIBRARYBUILD \ - -DNDEBUG - -NormalCplusplusObjectRule() - -NormalLibraryTarget(nurbtess, $(OBJS)) - -DependTarget() -CleanTarget() diff --git a/src/glu/libtess/GNUmakefile b/src/glu/libtess/GNUmakefile deleted file mode 100644 index 0ae859f..0000000 --- a/src/glu/libtess/GNUmakefile +++ /dev/null @@ -1,110 +0,0 @@ -#!gmake -# -# License Applicability. Except to the extent portions of this file are -# made subject to an alternative license as permitted in the SGI Free -# Software License B, Version 1.1 (the "License"), the contents of this -# file are subject only to the provisions of the License. You may not use -# this file except in compliance with the License. You may obtain a copy -# of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -# Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -# -# http://oss.sgi.com/projects/FreeB -# -# Note that, as provided in the License, the Software is distributed on an -# "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -# DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -# CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -# PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -# -# Original Code. The Original Code is: OpenGL Sample Implementation, -# Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -# Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -# Copyright in any portions created by third parties is as indicated -# elsewhere herein. All Rights Reserved. -# -# Additional Notice Provisions: The application programming interfaces -# established by SGI in conjunction with the Original Code are The -# OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -# April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -# 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -# Window System(R) (Version 1.3), released October 19, 1998. This software -# was created using the OpenGL(R) version 1.2.1 Sample Implementation -# published by SGI, but has not been independently verified as being -# compliant with the OpenGL(R) version 1.2.1 Specification. -# -# $Date$ $Revision$ -# $Header: //depot/main/gfx/lib/glu/libtess/GNUmakefile#9 $ - -OBJECT_STYLE = N32 - -include $(ROOT)/usr/include/make/commondefs - -TARGET = libtess.a - -TARGETS = $(TARGET) - -LCINCS = -I../include - -# Compilation flags: -# -# -DNDEBUG is for the production code; it removes all assertion checks -# (note that looks at this symbol). -# -# -DNO_MALLOPT uses regular malloc instead of the mallopt() version. -# ***** Unless you use this flag, you must use "-lmalloc" to link -# ***** your application! -# -# -DMEMORY_DEBUG turns on the M_DEBUG option of mallopt; this can -# increase the running time a LOT. -# -# -DGLU_TESS_API_FLOAT compiles a single-precision version of the library. -# -# -float prevents automatic promotion to double precision; this will produce -# faster code when compiled with -DGLU_TESS_API_FLOAT. -# -# -DNO_BRANCH_CONDITIONS uses & and | instead of && and || on a couple -# of heavily-used tests (VertEq and VertLeq); some compilers can generate -# better code with these (use special instructions to avoid branching). -# -# -DFOR_TRITE_TEST_PROGRAM is *only* for use with the test program called -# "trite". It uses some variables which are defined by the test program, -# so you won't be able to link it with anything else. - -HFILES = \ - dict.h \ - dict-list.h \ - geom.h \ - memalloc.h \ - mesh.h \ - normal.h \ - priorityq-heap.h \ - priorityq-heap.c \ - priorityq-sort.h \ - priorityq.h \ - render.h \ - sweep.h \ - tess.h \ - tessmono.h \ - $(NULL) - -CFILES = \ - dict.c \ - geom.c \ - memalloc.c \ - mesh.c \ - normal.c \ - priorityq.c \ - render.c \ - sweep.c \ - tess.c \ - tessmono.c \ - $(NULL) - -default libs libs_install install: $(TARGET) - -headers headers_install apps: - -$(TARGET): $(OBJECTS) - $(AR) crl $@ $(OBJECTS); - -include $(COMMONRULES) diff --git a/src/glu/libtess/Imakefile b/src/glu/libtess/Imakefile deleted file mode 100644 index 08017ba..0000000 --- a/src/glu/libtess/Imakefile +++ /dev/null @@ -1,58 +0,0 @@ -XCOMM License Applicability. Except to the extent portions of this file are -XCOMM made subject to an alternative license as permitted in the SGI Free -XCOMM Software License B, Version 1.1 (the "License"), the contents of this -XCOMM file are subject only to the provisions of the License. You may not use -XCOMM this file except in compliance with the License. You may obtain a copy -XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -XCOMM -XCOMM http://oss.sgi.com/projects/FreeB -XCOMM -XCOMM Note that, as provided in the License, the Software is distributed on an -XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -XCOMM -XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, -XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -XCOMM Copyright in any portions created by third parties is as indicated -XCOMM elsewhere herein. All Rights Reserved. -XCOMM -XCOMM Additional Notice Provisions: The application programming interfaces -XCOMM established by SGI in conjunction with the Original Code are The -XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software -XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation -XCOMM published by SGI, but has not been independently verified as being -XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. -XCOMM - -#include - -OBJS = \ - dict.o \ - geom.o \ - memalloc.o \ - mesh.o \ - normal.o \ - priorityq.o \ - render.o \ - sweep.o \ - tess.o \ - tessmono.o - -INCLUDES = \ - -I../include \ - -I$(TOP)/include \ - -I$(TOP)/include/GL - -NormalLibraryObjectRule() - -NormalLibraryTarget(tess, $(OBJS)) - -DependTarget() -CleanTarget() diff --git a/src/glu/libutil/GNUmakefile b/src/glu/libutil/GNUmakefile deleted file mode 100644 index d8abbee..0000000 --- a/src/glu/libutil/GNUmakefile +++ /dev/null @@ -1,68 +0,0 @@ -#!gmake -# -# License Applicability. Except to the extent portions of this file are -# made subject to an alternative license as permitted in the SGI Free -# Software License B, Version 1.1 (the "License"), the contents of this -# file are subject only to the provisions of the License. You may not use -# this file except in compliance with the License. You may obtain a copy -# of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -# Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -# -# http://oss.sgi.com/projects/FreeB -# -# Note that, as provided in the License, the Software is distributed on an -# "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -# DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -# CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -# PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -# -# Original Code. The Original Code is: OpenGL Sample Implementation, -# Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -# Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -# Copyright in any portions created by third parties is as indicated -# elsewhere herein. All Rights Reserved. -# -# Additional Notice Provisions: The application programming interfaces -# established by SGI in conjunction with the Original Code are The -# OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -# April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -# 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -# Window System(R) (Version 1.3), released October 19, 1998. This software -# was created using the OpenGL(R) version 1.2.1 Sample Implementation -# published by SGI, but has not been independently verified as being -# compliant with the OpenGL(R) version 1.2.1 Specification. -# -# $Date$ $Revision$ -# $Header: //depot/main/gfx/lib/glu/libutil/GNUmakefile#9 $ - -OBJECT_STYLE = N32 - -include $(ROOT)/usr/include/make/commondefs - -TARGET = libutil.a - -TARGETS = $(TARGET) - -LCINCS = -I../include - -HFILES = \ - gluint.h \ - $(NULL) - -CFILES = \ - error.c \ - glue.c \ - mipmap.c \ - project.c \ - quad.c \ - registry.c \ - $(NULL) - -default libs libs_install install: $(TARGET) - -headers headers_install apps: - -$(TARGET): $(OBJECTS) - $(AR) crl $@ $(OBJECTS); - -include $(COMMONRULES) diff --git a/src/glu/libutil/Imakefile b/src/glu/libutil/Imakefile deleted file mode 100644 index 4a7044e..0000000 --- a/src/glu/libutil/Imakefile +++ /dev/null @@ -1,54 +0,0 @@ -XCOMM License Applicability. Except to the extent portions of this file are -XCOMM made subject to an alternative license as permitted in the SGI Free -XCOMM Software License B, Version 1.1 (the "License"), the contents of this -XCOMM file are subject only to the provisions of the License. You may not use -XCOMM this file except in compliance with the License. You may obtain a copy -XCOMM of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -XCOMM Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -XCOMM -XCOMM http://oss.sgi.com/projects/FreeB -XCOMM -XCOMM Note that, as provided in the License, the Software is distributed on an -XCOMM "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -XCOMM DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -XCOMM CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -XCOMM PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -XCOMM -XCOMM Original Code. The Original Code is: OpenGL Sample Implementation, -XCOMM Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -XCOMM Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -XCOMM Copyright in any portions created by third parties is as indicated -XCOMM elsewhere herein. All Rights Reserved. -XCOMM -XCOMM Additional Notice Provisions: The application programming interfaces -XCOMM established by SGI in conjunction with the Original Code are The -XCOMM OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -XCOMM April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -XCOMM 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -XCOMM Window System(R) (Version 1.3), released October 19, 1998. This software -XCOMM was created using the OpenGL(R) version 1.2.1 Sample Implementation -XCOMM published by SGI, but has not been independently verified as being -XCOMM compliant with the OpenGL(R) version 1.2.1 Specification. -XCOMM - -#include - -OBJS = \ - error.o \ - glue.o \ - mipmap.o \ - project.o \ - quad.o \ - registry.o - -INCLUDES = \ - -I../include \ - -I$(TOP)/include \ - -I$(TOP)/include/GL - -NormalLibraryObjectRule() - -NormalLibraryTarget(util, $(OBJS)) - -DependTarget() -CleanTarget() diff --git a/src/regal/Regal.cpp b/src/regal/Regal.cpp index 4e7ca3f..4bf4717 100644 --- a/src/regal/Regal.cpp +++ b/src/regal/Regal.cpp @@ -55,7 +55,8 @@ REGAL_GLOBAL_BEGIN #include "RegalPrivate.h" #include "RegalDebugInfo.h" #include "RegalContextInfo.h" -#include "RegalShaderCache.h" +#include "RegalCacheShader.h" +#include "RegalCacheTexture.h" #include "RegalScopedPtr.h" #include "RegalFrame.h" #include "RegalMarker.h" @@ -3329,6 +3330,11 @@ extern "C" { if (!_context) return; DispatchTable *_next = &_context->dispatcher.front(); RegalAssert(_next); + if (REGAL_CACHE && REGAL_CACHE_TEXTURE) + { + Cache::bindTexture(_next->call(&_next->glBindTexture),_next->call(&_next->glGetTexLevelParameteriv),_next->call(&_next->glGetTexImage), target, texture); + return; + } _next->call(&_next->glBindTexture)(target, texture); } @@ -5091,7 +5097,7 @@ extern "C" { RegalAssert(_next); if (REGAL_CACHE && REGAL_CACHE_SHADER) { - ShaderCache::shaderSource(_next->call(&_next->glShaderSource), shader, count, string, length); + Cache::shaderSource(_next->call(&_next->glShaderSource), shader, count, string, length); return; } _next->call(&_next->glShaderSource)(shader, count, string, length); diff --git a/src/regal/RegalShaderCache.cpp b/src/regal/RegalCacheShader.cpp similarity index 98% rename from src/regal/RegalShaderCache.cpp rename to src/regal/RegalCacheShader.cpp index c83e56f..df3e86a 100644 --- a/src/regal/RegalShaderCache.cpp +++ b/src/regal/RegalCacheShader.cpp @@ -35,7 +35,7 @@ REGAL_GLOBAL_BEGIN #include "RegalConfig.h" -#include "RegalShaderCache.h" +#include "RegalCacheShader.h" #include @@ -50,7 +50,7 @@ REGAL_GLOBAL_END REGAL_NAMESPACE_BEGIN -namespace ShaderCache { +namespace Cache { void shaderSource(PFNGLSHADERSOURCEPROC proc, GLuint shader, GLsizei count, const GLchar **string, const GLint *length) diff --git a/src/regal/RegalShaderCache.h b/src/regal/RegalCacheShader.h similarity index 95% rename from src/regal/RegalShaderCache.h rename to src/regal/RegalCacheShader.h index f0e8182..2674f2c 100644 --- a/src/regal/RegalShaderCache.h +++ b/src/regal/RegalCacheShader.h @@ -35,8 +35,8 @@ */ -#ifndef __REGAL_SHADER_CACHE_H__ -#define __REGAL_SHADER_CACHE_H__ +#ifndef __REGAL_CACHE_SHADER_H__ +#define __REGAL_CACHE_SHADER_H__ #include "RegalUtil.h" @@ -48,7 +48,7 @@ REGAL_GLOBAL_END REGAL_NAMESPACE_BEGIN -namespace ShaderCache { +namespace Cache { void shaderSource(PFNGLSHADERSOURCEPROC proc, GLuint shader, GLsizei count, const GLchar **string, const GLint *length); diff --git a/src/regal/RegalCacheTexture.cpp b/src/regal/RegalCacheTexture.cpp new file mode 100644 index 0000000..3e50387 --- /dev/null +++ b/src/regal/RegalCacheTexture.cpp @@ -0,0 +1,180 @@ +/* + Copyright (c) 2011-2013 NVIDIA Corporation + Copyright (c) 2011-2013 Cass Everitt + Copyright (c) 2012-2013 Scott Nations + Copyright (c) 2012-2013 Mathias Schott + Copyright (c) 2012-2013 Nigel Stewart + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + + Disk-based .png texture caching + Nigel Stewart + + */ + +#include "pch.h" /* For MS precompiled header support */ + +#include "RegalUtil.h" + +REGAL_GLOBAL_BEGIN + +#include "RegalConfig.h" +#include "RegalToken.h" +#include "RegalCacheTexture.h" +#include "RegalScopedPtr.h" + +#include // 32-bit memory hashing function + +#include +#include + +#if !REGAL_NO_PNG +#include +#include +#endif + +using namespace ::std; +using ::boost::print::print_string; + +REGAL_GLOBAL_END + +REGAL_NAMESPACE_BEGIN + +namespace Cache { + +void +bindTexture(PFNGLBINDTEXTUREPROC bindTextureProc, PFNGLGETTEXLEVELPARAMETERIVPROC getTexLevelProc, PFNGLGETTEXIMAGEPROC getTexImageProc, GLenum target, GLuint texture) +{ + RegalAssert(bindTextureProc); + RegalAssert(getTexLevelProc); + RegalAssert(getTexImageProc); + + bindTextureProc(target,texture); + + if (REGAL_CACHE && REGAL_CACHE_TEXTURE && Config::cache && Config::cacheTexture) + { + // Query the texture dimensions + // TODO: Query the internal format and channels too? + + GLint width = 0; + GLint height = 0; + + getTexLevelProc(target, 0, GL_TEXTURE_WIDTH, &width); + getTexLevelProc(target, 0, GL_TEXTURE_HEIGHT, &height); + + const GLint size = width*height; + const GLint bytes = size*4; + + Internal("Regal::CacheTexture::texture","width=",width," height=",height); + + if (!width || !height) + return; + + // Fetch the RGBA texture data + // TODO: Handle packing alignment... + + scoped_array buffer(new GLbyte [bytes]); + + getTexImageProc(target,0,GL_RGBA,GL_UNSIGNED_BYTE,buffer.get()); + + // Compute 32-bit hash + + uint32_t hash = 0; + hash = Lookup3::hashlittle(buffer.get(), bytes, hash); + + string filename = makePath(Config::cacheDirectory,print_string(boost::print::hex(hash),".png")); + + Info("glBindTexture(",Token::GLenumToString(target),",",texture,") width=",width," height=",height," hash=",boost::print::hex(hash)); + + // Cache it to disk, iff it's not there yet + // export REGAL_CACHE_TEXTURE_WRITE=1 + + if (REGAL_CACHE_TEXTURE_WRITE && Config::cacheTextureWrite && !fileExists(filename.c_str())) + { +#if !REGAL_NO_PNG + static png_color_8 pngSBIT = {8, 8, 8, 0, 8}; + + FILE *fp = fopen(filename.c_str(), "wb"); + if (fp) + { + png_structp pngPtr = png_create_write_struct(PNG_LIBPNG_VER_STRING,NULL,NULL,NULL); + if (pngPtr) + { + png_infop pngInfo = png_create_info_struct(pngPtr); + if (pngInfo) + { + png_init_io(pngPtr, fp); + + // Z_NO_COMPRESSION, Z_BEST_SPEED, Z_BEST_COMPRESSION, + // Z_DEFAULT_COMPRESSION + + png_set_compression_level(pngPtr, Z_BEST_COMPRESSION); + png_set_IHDR(pngPtr, pngInfo, width, height, + 8, PNG_COLOR_TYPE_RGBA, PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); + png_set_pHYs(pngPtr, pngInfo, 72 * 40, 72 * 40, PNG_RESOLUTION_METER); + png_set_sBIT(pngPtr, pngInfo, &pngSBIT); + png_write_info(pngPtr, pngInfo); + for (int y = height; y--; ) + png_write_row(pngPtr, reinterpret_cast(buffer.get() + y * width * 4)); + png_write_end(pngPtr, pngInfo); + } + png_destroy_write_struct(&pngPtr, &pngInfo); + } + fclose(fp); + + Internal("Regal::CacheTexture::texture"," hash=",boost::print::hex(hash)," filename=",filename," written."); + Info("Cached texture written: ",filename); + } + else + { + Warning("Could not write texture to file ",filename,", permissions problem?"); + } +#endif + } + else + { + // Read from disk cache, if reading is enabled + // export REGAL_CACHE_TEXTURE_READ=1 + + if (REGAL_CACHE_TEXTURE_READ && Config::cacheTextureRead) + { +#if !REGAL_NO_PNG + // TODO +#endif + return; + } + else + { + Info("Cached texture not read or written: ",filename); + } + } + } +} + +}; + +REGAL_NAMESPACE_END diff --git a/src/regal/RegalCacheTexture.h b/src/regal/RegalCacheTexture.h new file mode 100644 index 0000000..67d6d87 --- /dev/null +++ b/src/regal/RegalCacheTexture.h @@ -0,0 +1,61 @@ +/* + Copyright (c) 2011-2013 NVIDIA Corporation + Copyright (c) 2011-2013 Cass Everitt + Copyright (c) 2012-2013 Scott Nations + Copyright (c) 2012-2013 Mathias Schott + Copyright (c) 2012-2013 Nigel Stewart + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + + Disk-based .png texture caching + Nigel Stewart + + */ + +#ifndef __REGAL_CACHE_TEXTURE_H__ +#define __REGAL_CACHE_TEXTURE_H__ + +#include "RegalUtil.h" + +REGAL_GLOBAL_BEGIN + +#include + +REGAL_GLOBAL_END + +REGAL_NAMESPACE_BEGIN + +namespace Cache { + + // glBindTexture handler + + void bindTexture(PFNGLBINDTEXTUREPROC bindTextureProc, PFNGLGETTEXLEVELPARAMETERIVPROC getTexLevelProc, PFNGLGETTEXIMAGEPROC getTexImageProc, GLenum target, GLuint texture); + +}; + +REGAL_NAMESPACE_END + +#endif diff --git a/src/regal/RegalConfig.cpp b/src/regal/RegalConfig.cpp index c4e16e7..4102c34 100644 --- a/src/regal/RegalConfig.cpp +++ b/src/regal/RegalConfig.cpp @@ -105,10 +105,13 @@ namespace Config { bool frameSaveStencil = false; bool frameSaveDepth = false; - bool cache = REGAL_CACHE; - bool cacheShader = false; - bool cacheShaderRead = false; - bool cacheShaderWrite = false; + bool cache = REGAL_CACHE; + bool cacheShader = false; + bool cacheShaderRead = false; + bool cacheShaderWrite = false; + bool cacheTexture = false; + bool cacheTextureRead = false; + bool cacheTextureWrite = false; std::string cacheDirectory("./"); void Init() @@ -360,6 +363,8 @@ namespace Config { tmp = GetEnv( "REGAL_CACHE" ); if (tmp) cache = atoi(tmp)!=0; + // GLSL shader caching + #if REGAL_CACHE_SHADER tmp = GetEnv( "REGAL_CACHE_SHADER" ); if (tmp) cacheShader = atoi(tmp)!=0; @@ -375,6 +380,23 @@ namespace Config { if (tmp) cacheShaderRead = atoi(tmp)!=0; #endif + // Teture caching + +#if REGAL_CACHE_TEXTURE + tmp = GetEnv( "REGAL_CACHE_TEXTURE" ); + if (tmp) cacheTexture = atoi(tmp)!=0; +#endif + +#if REGAL_CACHE_TEXTURE_WRITE + tmp = GetEnv( "REGAL_CACHE_TEXTURE_WRITE" ); + if (tmp) cacheTextureWrite = atoi(tmp)!=0; +#endif + +#if REGAL_CACHE_TEXTURE_READ + tmp = GetEnv( "REGAL_CACHE_TEXTURE_READ" ); + if (tmp) cacheTextureRead = atoi(tmp)!=0; +#endif + tmp = GetEnv( "REGAL_CACHE_DIRECTORY" ); if (tmp) cacheDirectory = tmp; #endif @@ -388,76 +410,83 @@ namespace Config { #endif #if REGAL_SYS_ES1 - Info("REGAL_FORCE_ES1_PROFILE ", forceES1Profile ? "enabled" : "disabled"); + Info("REGAL_FORCE_ES1_PROFILE ", forceES1Profile ? "enabled" : "disabled"); #endif #if REGAL_SYS_ES2 - Info("REGAL_FORCE_ES2_PROFILE ", forceES2Profile ? "enabled" : "disabled"); + Info("REGAL_FORCE_ES2_PROFILE ", forceES2Profile ? "enabled" : "disabled"); #endif - Info("REGAL_FORCE_CORE_PROFILE ", forceCoreProfile ? "enabled" : "disabled"); + Info("REGAL_FORCE_CORE_PROFILE ", forceCoreProfile ? "enabled" : "disabled"); #if REGAL_SYS_ES1 - Info("REGAL_SYS_ES1 ", sysES1 ? "enabled" : "disabled"); + Info("REGAL_SYS_ES1 ", sysES1 ? "enabled" : "disabled"); #endif #if REGAL_SYS_ES2 - Info("REGAL_SYS_ES2 ", sysES2 ? "enabled" : "disabled"); + Info("REGAL_SYS_ES2 ", sysES2 ? "enabled" : "disabled"); #endif #if REGAL_SYS_GL - Info("REGAL_SYS_GL ", sysGL ? "enabled" : "disabled"); + Info("REGAL_SYS_GL ", sysGL ? "enabled" : "disabled"); #endif #if REGAL_SYS_GLX - Info("REGAL_SYS_GLX ", sysGLX ? "enabled" : "disabled"); + Info("REGAL_SYS_GLX ", sysGLX ? "enabled" : "disabled"); #endif #if REGAL_SYS_EGL - Info("REGAL_SYS_EGL ", sysEGL ? "enabled" : "disabled"); + Info("REGAL_SYS_EGL ", sysEGL ? "enabled" : "disabled"); #endif - Info("REGAL_FORCE_EMULATION ", forceEmulation ? "enabled" : "disabled"); - Info("REGAL_DEBUG ", enableDebug ? "enabled" : "disabled"); - Info("REGAL_ERROR ", enableError ? "enabled" : "disabled"); - Info("REGAL_CODE ", enableCode ? "enabled" : "disabled"); - Info("REGAL_EMULATION ", enableEmulation ? "enabled" : "disabled"); - Info("REGAL_LOG ", enableLog ? "enabled" : "disabled"); - Info("REGAL_DRIVER ", enableDriver ? "enabled" : "disabled"); + Info("REGAL_FORCE_EMULATION ", forceEmulation ? "enabled" : "disabled"); + Info("REGAL_DEBUG ", enableDebug ? "enabled" : "disabled"); + Info("REGAL_ERROR ", enableError ? "enabled" : "disabled"); + Info("REGAL_CODE ", enableCode ? "enabled" : "disabled"); + Info("REGAL_EMULATION ", enableEmulation ? "enabled" : "disabled"); + Info("REGAL_LOG ", enableLog ? "enabled" : "disabled"); + Info("REGAL_DRIVER ", enableDriver ? "enabled" : "disabled"); - Info("REGAL_EMU_PPA ", enableEmuPpa ? "enabled" : "disabled"); - Info("REGAL_EMU_PPCA ", enableEmuPpca ? "enabled" : "disabled"); - Info("REGAL_EMU_OBJ ", enableEmuObj ? "enabled" : "disabled"); - Info("REGAL_EMU_BIN ", enableEmuBin ? "enabled" : "disabled"); - Info("REGAL_EMU_XFER ", enableEmuXfer ? "enabled" : "disabled"); - Info("REGAL_EMU_DSA ", enableEmuDsa ? "enabled" : "disabled"); - Info("REGAL_EMU_IFF ", enableEmuIff ? "enabled" : "disabled"); - Info("REGAL_EMU_SO ", enableEmuSo ? "enabled" : "disabled"); - Info("REGAL_EMU_VAO ", enableEmuVao ? "enabled" : "disabled"); - Info("REGAL_EMU_FILTER ", enableEmuFilter ? "enabled" : "disabled"); - Info("REGAL_EMU_TEXC ", enableEmuTexC ? "enabled" : "disabled"); + Info("REGAL_EMU_PPA ", enableEmuPpa ? "enabled" : "disabled"); + Info("REGAL_EMU_PPCA ", enableEmuPpca ? "enabled" : "disabled"); + Info("REGAL_EMU_OBJ ", enableEmuObj ? "enabled" : "disabled"); + Info("REGAL_EMU_BIN ", enableEmuBin ? "enabled" : "disabled"); + Info("REGAL_EMU_XFER ", enableEmuXfer ? "enabled" : "disabled"); + Info("REGAL_EMU_DSA ", enableEmuDsa ? "enabled" : "disabled"); + Info("REGAL_EMU_IFF ", enableEmuIff ? "enabled" : "disabled"); + Info("REGAL_EMU_SO ", enableEmuSo ? "enabled" : "disabled"); + Info("REGAL_EMU_VAO ", enableEmuVao ? "enabled" : "disabled"); + Info("REGAL_EMU_FILTER ", enableEmuFilter ? "enabled" : "disabled"); + Info("REGAL_EMU_TEXC ", enableEmuTexC ? "enabled" : "disabled"); - Info("REGAL_FORCE_EMU_PPA ", forceEmuPpa ? "enabled" : "disabled"); - Info("REGAL_FORCE_EMU_PPCA ", forceEmuPpca ? "enabled" : "disabled"); - Info("REGAL_FORCE_EMU_OBJ ", forceEmuObj ? "enabled" : "disabled"); - Info("REGAL_FORCE_EMU_BIN ", forceEmuBin ? "enabled" : "disabled"); - Info("REGAL_FORCE_EMU_XFER ", forceEmuXfer ? "enabled" : "disabled"); - Info("REGAL_FORCE_EMU_DSA ", forceEmuDsa ? "enabled" : "disabled"); - Info("REGAL_FORCE_EMU_IFF ", forceEmuIff ? "enabled" : "disabled"); - Info("REGAL_FORCE_EMU_SO ", forceEmuSo ? "enabled" : "disabled"); - Info("REGAL_FORCE_EMU_VAO ", forceEmuVao ? "enabled" : "disabled"); - Info("REGAL_FORCE_EMU_FILTER ", forceEmuFilter ? "enabled" : "disabled"); - Info("REGAL_FORCE_EMU_TEXC ", forceEmuTexC ? "enabled" : "disabled"); + Info("REGAL_FORCE_EMU_PPA ", forceEmuPpa ? "enabled" : "disabled"); + Info("REGAL_FORCE_EMU_PPCA ", forceEmuPpca ? "enabled" : "disabled"); + Info("REGAL_FORCE_EMU_OBJ ", forceEmuObj ? "enabled" : "disabled"); + Info("REGAL_FORCE_EMU_BIN ", forceEmuBin ? "enabled" : "disabled"); + Info("REGAL_FORCE_EMU_XFER ", forceEmuXfer ? "enabled" : "disabled"); + Info("REGAL_FORCE_EMU_DSA ", forceEmuDsa ? "enabled" : "disabled"); + Info("REGAL_FORCE_EMU_IFF ", forceEmuIff ? "enabled" : "disabled"); + Info("REGAL_FORCE_EMU_SO ", forceEmuSo ? "enabled" : "disabled"); + Info("REGAL_FORCE_EMU_VAO ", forceEmuVao ? "enabled" : "disabled"); + Info("REGAL_FORCE_EMU_FILTER ", forceEmuFilter ? "enabled" : "disabled"); + Info("REGAL_FORCE_EMU_TEXC ", forceEmuTexC ? "enabled" : "disabled"); - Info("REGAL_FRAME_LIMIT ", frameLimit ); + Info("REGAL_FRAME_LIMIT ", frameLimit ); - Info("REGAL_MD5_COLOR ", frameMd5Color ? "enabled" : "disabled"); - Info("REGAL_MD5_STENCIL ", frameMd5Stencil ? "enabled" : "disabled"); - Info("REGAL_MD5_DEPTH ", frameMd5Depth ? "enabled" : "disabled"); + Info("REGAL_MD5_COLOR ", frameMd5Color ? "enabled" : "disabled"); + Info("REGAL_MD5_STENCIL ", frameMd5Stencil ? "enabled" : "disabled"); + Info("REGAL_MD5_DEPTH ", frameMd5Depth ? "enabled" : "disabled"); + + Info("REGAL_SAVE_COLOR ", frameSaveColor ? "enabled" : "disabled"); + Info("REGAL_SAVE_STENCIL ", frameSaveStencil ? "enabled" : "disabled"); + Info("REGAL_SAVE_DEPTH ", frameSaveDepth ? "enabled" : "disabled"); + +#if REGAL_CACHE + Info("REGAL_CACHE ", cache ? "enabled" : "disabled"); + Info("REGAL_CACHE_TEXTURE ", cacheTexture ? "enabled" : "disabled"); + Info("REGAL_CACHE_TEXTURE_WRITE ", cacheTextureWrite ? "enabled" : "disabled"); +#endif - Info("REGAL_SAVE_COLOR ", frameSaveColor ? "enabled" : "disabled"); - Info("REGAL_SAVE_STENCIL ", frameSaveStencil ? "enabled" : "disabled"); - Info("REGAL_SAVE_DEPTH ", frameSaveDepth ? "enabled" : "disabled"); } void @@ -523,11 +552,14 @@ namespace Config { jo.end(); jo.object("cache"); - jo.member("enable", cache); - jo.member("shader", cacheShader); - jo.member("shaderWrite", cacheShaderWrite); - jo.member("shaderRead", cacheShaderRead); - jo.member("directory", cacheDirectory); + jo.member("enable", cache); + jo.member("shader", cacheShader); + jo.member("shaderWrite", cacheShaderWrite); + jo.member("shaderRead", cacheShaderRead); + jo.member("texture", cacheShader); + jo.member("textureWrite", cacheShaderWrite); + jo.member("textureRead", cacheShaderRead); + jo.member("directory", cacheDirectory); jo.end(); jo.end(); diff --git a/src/regal/RegalConfig.h b/src/regal/RegalConfig.h index bdad8e5..6b51368 100644 --- a/src/regal/RegalConfig.h +++ b/src/regal/RegalConfig.h @@ -125,6 +125,9 @@ namespace Config extern bool cacheShader; extern bool cacheShaderRead; extern bool cacheShaderWrite; + extern bool cacheTexture; + extern bool cacheTextureRead; + extern bool cacheTextureWrite; extern std::string cacheDirectory; }; diff --git a/src/regal/RegalDispatchCache.cpp b/src/regal/RegalDispatchCache.cpp index af3b437..dd40862 100644 --- a/src/regal/RegalDispatchCache.cpp +++ b/src/regal/RegalDispatchCache.cpp @@ -45,7 +45,7 @@ REGAL_GLOBAL_BEGIN #include "RegalThread.h" #include "RegalContext.h" #include "RegalDispatcher.h" -#include "RegalShaderCache.h" +#include "RegalCacheShader.h" REGAL_GLOBAL_END @@ -58,7 +58,7 @@ static void REGAL_CALL cache_glShaderSource(GLuint shader, GLsizei count, const DispatchTable *_next = _context->dispatcher.cache._next; RegalAssert(_next); if (Config::cache && Config::cacheShader) - ShaderCache::shaderSource(_next->call(&_next->glShaderSource), shader, count, string, length); + Cache::shaderSource(_next->call(&_next->glShaderSource), shader, count, string, length); else _next->call(&_next->glShaderSource)(shader, count, string, length); } diff --git a/src/regal/RegalLog.cpp b/src/regal/RegalLog.cpp index ba9eefd..29e2181 100644 --- a/src/regal/RegalLog.cpp +++ b/src/regal/RegalLog.cpp @@ -545,12 +545,7 @@ namespace Logging { #if REGAL_LOG if (log && logOutput) { -#if REGAL_SYS_WGL - OutputDebugStringA(m.c_str()); - fprintf(logOutput, "%s", m.c_str()); - fflush(logOutput); -#elif REGAL_SYS_ANDROID - +#if REGAL_SYS_ANDROID #else fprintf(logOutput, "%s", m.c_str()); fflush(logOutput); diff --git a/src/regal/RegalObj.h b/src/regal/RegalObj.h index e767166..7e27cf4 100644 --- a/src/regal/RegalObj.h +++ b/src/regal/RegalObj.h @@ -133,12 +133,12 @@ struct Obj : public RegalEmu RegalContext *sharingWith = ctx.groupInitializedContext(); if (sharingWith) { - bufferNames.app2drv = sharingWith->obj->bufferNames.app2drv; - bufferNames.drv2app = sharingWith->obj->bufferNames.drv2app; - vaoNames.app2drv = sharingWith->obj->vaoNames.app2drv; - vaoNames.drv2app = sharingWith->obj->vaoNames.drv2app; - textureNames.app2drv = sharingWith->obj->textureNames.app2drv; - textureNames.drv2app = sharingWith->obj->textureNames.drv2app; + bufferNames.app2drv = sharingWith->obj->bufferNames.app2drv; + bufferNames.drv2app = sharingWith->obj->bufferNames.drv2app; + vaoNames.app2drv = sharingWith->obj->vaoNames.app2drv; + vaoNames.drv2app = sharingWith->obj->vaoNames.drv2app; + textureNames.app2drv = sharingWith->obj->textureNames.app2drv; + textureNames.drv2app = sharingWith->obj->textureNames.drv2app; } bufferNames.gen = ctx.dispatcher.emulation.glGenBuffers; diff --git a/src/regal/RegalUtil.h b/src/regal/RegalUtil.h index e49bbb1..76a02de 100755 --- a/src/regal/RegalUtil.h +++ b/src/regal/RegalUtil.h @@ -289,18 +289,32 @@ #define REGAL_CACHE_SHADER REGAL_CACHE #endif -// Cache writing supported by default - #ifndef REGAL_CACHE_SHADER_WRITE #define REGAL_CACHE_SHADER_WRITE REGAL_CACHE_SHADER #endif -// Cache reading supported by default - #ifndef REGAL_CACHE_SHADER_READ #define REGAL_CACHE_SHADER_READ REGAL_CACHE_SHADER #endif +// Texture caching supported by default + +#ifndef REGAL_CACHE_TEXTURE +#define REGAL_CACHE_TEXTURE REGAL_CACHE +#endif + +// Cache writing supported by default + +#ifndef REGAL_CACHE_TEXTURE_WRITE +#define REGAL_CACHE_TEXTURE_WRITE REGAL_CACHE_TEXTURE +#endif + +// Cache reading supported by default + +#ifndef REGAL_CACHE_TEXTURE_READ +#define REGAL_CACHE_TEXTURE_READ REGAL_CACHE_TEXTURE +#endif + // #ifndef REGAL_FORCE_CORE_PROFILE