Initial implementation of on-disk texture caching.

Refinements for Android ndk-build.
This commit is contained in:
Nigel Stewart 2013-03-15 17:21:00 -05:00
parent fae5861f65
commit c54aa8b3a2
38 changed files with 490 additions and 1118 deletions

View file

@ -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 $@)

View file

@ -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)

View file

@ -1,4 +0,0 @@
APP_MODULES := Regal_static Regal_shared
APP_STL := stlport_static

View file

@ -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)

View file

@ -0,0 +1,4 @@
APP_MODULES := Regal_static Regal
APP_STL := stlport_static

View file

@ -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 = "<group>"; };
BC020946160D1919003FAB99 /* RegalMarker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalMarker.cpp; path = ../../../src/regal/RegalMarker.cpp; sourceTree = "<group>"; };
BC020957160D1C73003FAB99 /* md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = md5.c; path = ../../../src/md5/src/md5.c; sourceTree = "<group>"; };
BC3209D016F3A0E600D1A9E0 /* RegalCacheShader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalCacheShader.cpp; path = ../../../src/regal/RegalCacheShader.cpp; sourceTree = "<group>"; };
BC3209D116F3A0E600D1A9E0 /* RegalCacheShader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalCacheShader.h; path = ../../../src/regal/RegalCacheShader.h; sourceTree = "<group>"; };
BC3209D216F3A0E600D1A9E0 /* RegalCacheTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalCacheTexture.cpp; path = ../../../src/regal/RegalCacheTexture.cpp; sourceTree = "<group>"; };
BC3209D316F3A0E600D1A9E0 /* RegalCacheTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalCacheTexture.h; path = ../../../src/regal/RegalCacheTexture.h; sourceTree = "<group>"; };
BC640CA216554AA4007DEF69 /* RegalFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalFrame.cpp; path = ../../../src/regal/RegalFrame.cpp; sourceTree = "<group>"; };
BC640CA316554AA4007DEF69 /* RegalFrame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalFrame.h; path = ../../../src/regal/RegalFrame.h; sourceTree = "<group>"; };
BC6C912915EE3DC60056E4F7 /* RegalDispatchGlobal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchGlobal.cpp; path = ../../../src/regal/RegalDispatchGlobal.cpp; sourceTree = "<group>"; };
@ -156,8 +162,6 @@
BCBEC6E7167AD66F00B38E16 /* RegalDispatchCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchCache.cpp; path = ../../../src/regal/RegalDispatchCache.cpp; sourceTree = "<group>"; };
BCBEC6E8167AD66F00B38E16 /* RegalDispatchCode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchCode.cpp; path = ../../../src/regal/RegalDispatchCode.cpp; sourceTree = "<group>"; };
BCBEC6EC167AD69D00B38E16 /* RegalPush.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalPush.h; path = ../../../src/regal/RegalPush.h; sourceTree = "<group>"; };
BCBEC6ED167AD69D00B38E16 /* RegalShaderCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalShaderCache.cpp; path = ../../../src/regal/RegalShaderCache.cpp; sourceTree = "<group>"; };
BCBEC6EE167AD69D00B38E16 /* RegalShaderCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalShaderCache.h; path = ../../../src/regal/RegalShaderCache.h; sourceTree = "<group>"; };
BCBEC6EF167AD69D00B38E16 /* RegalSharedList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalSharedList.h; path = ../../../src/regal/RegalSharedList.h; sourceTree = "<group>"; };
BCBEC6F0167AD69D00B38E16 /* RegalSharedMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalSharedMap.h; path = ../../../src/regal/RegalSharedMap.h; sourceTree = "<group>"; };
BCBEC6F1167AD69D00B38E16 /* RegalSharedPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalSharedPtr.h; path = ../../../src/regal/RegalSharedPtr.h; sourceTree = "<group>"; };
@ -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;
};

View file

@ -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 = "<group>"; };
BC02094D160D1BA3003FAB99 /* RegalMarker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalMarker.cpp; path = ../../../src/regal/RegalMarker.cpp; sourceTree = "<group>"; };
BC02094F160D1BD0003FAB99 /* md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = md5.c; path = ../../../src/md5/src/md5.c; sourceTree = "<group>"; };
BC3209D816F3A28900D1A9E0 /* RegalCacheShader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalCacheShader.cpp; path = ../../../src/regal/RegalCacheShader.cpp; sourceTree = "<group>"; };
BC3209D916F3A28900D1A9E0 /* RegalCacheShader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalCacheShader.h; path = ../../../src/regal/RegalCacheShader.h; sourceTree = "<group>"; };
BC3209DA16F3A28900D1A9E0 /* RegalCacheTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalCacheTexture.cpp; path = ../../../src/regal/RegalCacheTexture.cpp; sourceTree = "<group>"; };
BC3209DB16F3A28900D1A9E0 /* RegalCacheTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalCacheTexture.h; path = ../../../src/regal/RegalCacheTexture.h; sourceTree = "<group>"; };
BC456F1015D55F8E0080B420 /* RegalDispatchMissing.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchMissing.cpp; path = ../../../src/regal/RegalDispatchMissing.cpp; sourceTree = "<group>"; };
BC456F1115D55F8E0080B420 /* RegalDispatchPpapi.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalDispatchPpapi.cpp; path = ../../../src/regal/RegalDispatchPpapi.cpp; sourceTree = "<group>"; };
BC640C9A16554A52007DEF69 /* RegalFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalFrame.cpp; path = ../../../src/regal/RegalFrame.cpp; sourceTree = "<group>"; };
@ -178,8 +184,6 @@
BC94B99516DFDF1F00116D55 /* RegalFilt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalFilt.cpp; path = ../../../src/regal/RegalFilt.cpp; sourceTree = "<group>"; };
BC94B99616DFDF1F00116D55 /* RegalFilt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalFilt.h; path = ../../../src/regal/RegalFilt.h; sourceTree = "<group>"; };
BCBEC6FF167AD72700B38E16 /* RegalPush.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalPush.h; path = ../../../src/regal/RegalPush.h; sourceTree = "<group>"; };
BCBEC700167AD72700B38E16 /* RegalShaderCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RegalShaderCache.cpp; path = ../../../src/regal/RegalShaderCache.cpp; sourceTree = "<group>"; };
BCBEC701167AD72700B38E16 /* RegalShaderCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalShaderCache.h; path = ../../../src/regal/RegalShaderCache.h; sourceTree = "<group>"; };
BCBEC702167AD72700B38E16 /* RegalSharedList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalSharedList.h; path = ../../../src/regal/RegalSharedList.h; sourceTree = "<group>"; };
BCBEC703167AD72700B38E16 /* RegalSharedMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalSharedMap.h; path = ../../../src/regal/RegalSharedMap.h; sourceTree = "<group>"; };
BCBEC704167AD72700B38E16 /* RegalSharedPtr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegalSharedPtr.h; path = ../../../src/regal/RegalSharedPtr.h; sourceTree = "<group>"; };
@ -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;
};

View file

@ -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

View file

@ -234,6 +234,10 @@
<ClInclude Include="..\..\..\..\src\regal\RegalBin.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalBreak.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalBreak.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalCacheShader.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalCacheShader.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalCacheTexture.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalCacheTexture.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalConfig.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalConfig.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalContext.cpp" />
@ -294,8 +298,6 @@
<ClInclude Include="..\..\..\..\src\regal\RegalPrivate.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalPush.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalScopedPtr.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalShaderCache.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalShaderCache.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalSharedList.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalSharedMap.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalSharedPtr.h" />

View file

@ -234,6 +234,10 @@
<ClInclude Include="..\..\..\..\src\regal\RegalBin.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalBreak.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalBreak.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalCacheShader.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalCacheShader.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalCacheTexture.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalCacheTexture.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalConfig.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalConfig.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalContext.cpp" />
@ -294,8 +298,6 @@
<ClInclude Include="..\..\..\..\src\regal\RegalPrivate.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalPush.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalScopedPtr.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalShaderCache.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalShaderCache.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalSharedList.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalSharedMap.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalSharedPtr.h" />

View file

@ -234,6 +234,10 @@
<ClInclude Include="..\..\..\..\src\regal\RegalBin.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalBreak.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalBreak.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalCacheShader.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalCacheShader.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalCacheTexture.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalCacheTexture.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalConfig.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalConfig.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalContext.cpp" />
@ -294,8 +298,6 @@
<ClInclude Include="..\..\..\..\src\regal\RegalPrivate.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalPush.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalScopedPtr.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalShaderCache.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalShaderCache.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalSharedList.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalSharedMap.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalSharedPtr.h" />

View file

@ -234,6 +234,10 @@
<ClInclude Include="..\..\..\..\src\regal\RegalBin.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalBreak.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalBreak.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalCacheShader.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalCacheShader.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalCacheTexture.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalCacheTexture.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalConfig.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalConfig.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalContext.cpp" />
@ -294,8 +298,6 @@
<ClInclude Include="..\..\..\..\src\regal\RegalPrivate.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalPush.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalScopedPtr.h" />
<ClCompile Include="..\..\..\..\src\regal\RegalShaderCache.cpp" />
<ClInclude Include="..\..\..\..\src\regal\RegalShaderCache.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalSharedList.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalSharedMap.h" />
<ClInclude Include="..\..\..\..\src\regal\RegalSharedPtr.h" />

View file

@ -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)

View file

@ -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;',
'}'
]
}
}

View file

@ -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"

View file

@ -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)

View file

@ -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))

View file

@ -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)

View file

@ -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 <Library.tmpl>
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()

View file

@ -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)

View file

@ -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 <Library.tmpl>
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()

View file

@ -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)

View file

@ -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 <Library.tmpl>
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()

View file

@ -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 <assert.h> 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)

View file

@ -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 <Library.tmpl>
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()

View file

@ -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)

View file

@ -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 <Library.tmpl>
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()

View file

@ -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);

View file

@ -35,7 +35,7 @@
REGAL_GLOBAL_BEGIN
#include "RegalConfig.h"
#include "RegalShaderCache.h"
#include "RegalCacheShader.h"
#include <lookup3.h>
@ -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)

View file

@ -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);

View file

@ -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 <lookup3.h> // 32-bit memory hashing function
#include <string>
#include <boost/print/print_string.hpp>
#if !REGAL_NO_PNG
#include <zlib.h>
#include <png.h>
#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<GLbyte> 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<png_byte *>(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

View file

@ -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 <GL/Regal.h>
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

View file

@ -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();

View file

@ -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;
};

View file

@ -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);
}

View file

@ -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);

View file

@ -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;

View file

@ -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