summaryrefslogtreecommitdiff
path: root/imgtest
diff options
context:
space:
mode:
Diffstat (limited to 'imgtest')
-rw-r--r--imgtest/.DS_Storebin0 -> 6148 bytes
-rw-r--r--imgtest/Makefile13
-rw-r--r--imgtest/Project.xcconfig18
-rw-r--r--imgtest/config.make143
-rw-r--r--imgtest/emptyExample.xcodeproj/project.pbxproj465
-rw-r--r--imgtest/emptyExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata7
-rw-r--r--imgtest/emptyExample.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstatebin0 -> 12556 bytes
-rw-r--r--imgtest/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample AppStore.xcscheme91
-rw-r--r--imgtest/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample Debug.xcscheme91
-rw-r--r--imgtest/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample Release.xcscheme91
-rw-r--r--imgtest/emptyExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist14
-rw-r--r--imgtest/openFrameworks-Info.plist22
-rw-r--r--imgtest/src/main.cpp23
-rw-r--r--imgtest/src/ofApp.cpp224
-rw-r--r--imgtest/src/ofApp.h171
15 files changed, 1373 insertions, 0 deletions
diff --git a/imgtest/.DS_Store b/imgtest/.DS_Store
new file mode 100644
index 0000000..095a462
--- /dev/null
+++ b/imgtest/.DS_Store
Binary files differ
diff --git a/imgtest/Makefile b/imgtest/Makefile
new file mode 100644
index 0000000..177e172
--- /dev/null
+++ b/imgtest/Makefile
@@ -0,0 +1,13 @@
+# Attempt to load a config.make file.
+# If none is found, project defaults in config.project.make will be used.
+ifneq ($(wildcard config.make),)
+ include config.make
+endif
+
+# make sure the the OF_ROOT location is defined
+ifndef OF_ROOT
+ OF_ROOT=$(realpath ../../..)
+endif
+
+# call the project makefile!
+include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk
diff --git a/imgtest/Project.xcconfig b/imgtest/Project.xcconfig
new file mode 100644
index 0000000..6b9ae08
--- /dev/null
+++ b/imgtest/Project.xcconfig
@@ -0,0 +1,18 @@
+//THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT.
+//THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED
+OF_PATH = ../../openFrameworks
+
+//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE
+#include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig"
+
+//ICONS - NEW IN 0072
+ICON_NAME_DEBUG = icon-debug.icns
+ICON_NAME_RELEASE = icon.icns
+ICON_FILE_PATH = $(OF_PATH)/libs/openFrameworksCompiled/project/osx/
+
+//IF YOU WANT AN APP TO HAVE A CUSTOM ICON - PUT THEM IN YOUR DATA FOLDER AND CHANGE ICON_FILE_PATH to:
+//ICON_FILE_PATH = bin/data/
+
+OTHER_CFLAGS = $(OF_CORE_CFLAGS)
+OTHER_LDFLAGS = $(OF_CORE_LIBS) $(OF_CORE_FRAMEWORKS)
+HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS)
diff --git a/imgtest/config.make b/imgtest/config.make
new file mode 100644
index 0000000..2ae93e7
--- /dev/null
+++ b/imgtest/config.make
@@ -0,0 +1,143 @@
+################################################################################
+# CONFIGURE PROJECT MAKEFILE (optional)
+# This file is where we make project specific configurations.
+################################################################################
+
+################################################################################
+# OF ROOT
+# The location of your root openFrameworks installation
+OF_ROOT = ../../openFrameworks
+
+################################################################################
+# OF_ROOT = ../../..
+
+################################################################################
+# PROJECT ROOT
+# The location of the project - a starting place for searching for files
+# (default) PROJECT_ROOT = . (this directory)
+#
+################################################################################
+# PROJECT_ROOT = .
+
+################################################################################
+# PROJECT SPECIFIC CHECKS
+# This is a project defined section to create internal makefile flags to
+# conditionally enable or disable the addition of various features within
+# this makefile. For instance, if you want to make changes based on whether
+# GTK is installed, one might test that here and create a variable to check.
+################################################################################
+# None
+
+################################################################################
+# PROJECT EXTERNAL SOURCE PATHS
+# These are fully qualified paths that are not within the PROJECT_ROOT folder.
+# Like source folders in the PROJECT_ROOT, these paths are subject to
+# exlclusion via the PROJECT_EXLCUSIONS list.
+#
+# (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank)
+#
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_EXTERNAL_SOURCE_PATHS =
+
+################################################################################
+# PROJECT EXCLUSIONS
+# These makefiles assume that all folders in your current project directory
+# and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations
+# to look for source code. The any folders or files that match any of the
+# items in the PROJECT_EXCLUSIONS list below will be ignored.
+#
+# Each item in the PROJECT_EXCLUSIONS list will be treated as a complete
+# string unless teh user adds a wildcard (%) operator to match subdirectories.
+# GNU make only allows one wildcard for matching. The second wildcard (%) is
+# treated literally.
+#
+# (default) PROJECT_EXCLUSIONS = (blank)
+#
+# Will automatically exclude the following:
+#
+# $(PROJECT_ROOT)/bin%
+# $(PROJECT_ROOT)/obj%
+# $(PROJECT_ROOT)/%.xcodeproj
+#
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_EXCLUSIONS =
+
+################################################################################
+# PROJECT LINKER FLAGS
+# These flags will be sent to the linker when compiling the executable.
+#
+# (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs
+#
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+
+# Currently, shared libraries that are needed are copied to the
+# $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to
+# add a runtime path to search for those shared libraries, since they aren't
+# incorporated directly into the final executable application binary.
+# TODO: should this be a default setting?
+# PROJECT_LDFLAGS=-Wl,-rpath=./libs
+
+################################################################################
+# PROJECT DEFINES
+# Create a space-delimited list of DEFINES. The list will be converted into
+# CFLAGS with the "-D" flag later in the makefile.
+#
+# (default) PROJECT_DEFINES = (blank)
+#
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_DEFINES =
+
+################################################################################
+# PROJECT CFLAGS
+# This is a list of fully qualified CFLAGS required when compiling for this
+# project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS
+# defined in your platform specific core configuration files. These flags are
+# presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below.
+#
+# (default) PROJECT_CFLAGS = (blank)
+#
+# Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in
+# your platform specific configuration file will be applied by default and
+# further flags here may not be needed.
+#
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_CFLAGS =
+
+################################################################################
+# PROJECT OPTIMIZATION CFLAGS
+# These are lists of CFLAGS that are target-specific. While any flags could
+# be conditionally added, they are usually limited to optimization flags.
+# These flags are added BEFORE the PROJECT_CFLAGS.
+#
+# PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets.
+#
+# (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank)
+#
+# PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets.
+#
+# (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank)
+#
+# Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the
+# PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration
+# file will be applied by default and further optimization flags here may not
+# be needed.
+#
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_OPTIMIZATION_CFLAGS_RELEASE =
+# PROJECT_OPTIMIZATION_CFLAGS_DEBUG =
+
+################################################################################
+# PROJECT COMPILERS
+# Custom compilers can be set for CC and CXX
+# (default) PROJECT_CXX = (blank)
+# (default) PROJECT_CC = (blank)
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_CXX =
+# PROJECT_CC =
diff --git a/imgtest/emptyExample.xcodeproj/project.pbxproj b/imgtest/emptyExample.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..b55d7c4
--- /dev/null
+++ b/imgtest/emptyExample.xcodeproj/project.pbxproj
@@ -0,0 +1,465 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; };
+ E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; };
+ E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = E4B27C1510CBEB8E00536013;
+ remoteInfo = openFrameworks;
+ };
+ E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = E4B27C1410CBEB8E00536013;
+ remoteInfo = openFrameworks;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ E4C2427710CC5ABF004149E2 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; };
+ E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = emptyExampleDebug.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; };
+ E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 4; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; };
+ E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; };
+ E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = "<group>"; };
+ E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; };
+ E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ E4B69B590A3A1756003C02F2 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 6948EE371B920CB800B5AC1A /* local_addons */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = local_addons;
+ sourceTree = "<group>";
+ };
+ BB4B014C10F69532006C3DED /* addons */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = addons;
+ sourceTree = "<group>";
+ };
+ E4328144138ABC890047C5CB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ E4328148138ABC890047C5CB /* openFrameworksDebug.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ E4B69B4A0A3A1720003C02F2 = {
+ isa = PBXGroup;
+ children = (
+ E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */,
+ E4EB6923138AFD0F00A09F29 /* Project.xcconfig */,
+ E4B69E1C0A3A1BDC003C02F2 /* src */,
+ E4EEC9E9138DF44700A80321 /* openFrameworks */,
+ BB4B014C10F69532006C3DED /* addons */,
+ 6948EE371B920CB800B5AC1A /* local_addons */,
+ E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */,
+ );
+ sourceTree = "<group>";
+ };
+ E4B69E1C0A3A1BDC003C02F2 /* src */ = {
+ isa = PBXGroup;
+ children = (
+ E4B69E1D0A3A1BDC003C02F2 /* main.cpp */,
+ E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */,
+ E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */,
+ );
+ path = src;
+ sourceTree = SOURCE_ROOT;
+ };
+ E4EEC9E9138DF44700A80321 /* openFrameworks */ = {
+ isa = PBXGroup;
+ children = (
+ E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */,
+ E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */,
+ );
+ name = openFrameworks;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ E4B69B5A0A3A1756003C02F2 /* emptyExample */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */;
+ buildPhases = (
+ E4B69B580A3A1756003C02F2 /* Sources */,
+ E4B69B590A3A1756003C02F2 /* Frameworks */,
+ E4B6FFFD0C3F9AB9008CF71C /* ShellScript */,
+ E4C2427710CC5ABF004149E2 /* CopyFiles */,
+ 8466F1851C04CA0E00918B1C /* ShellScript */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ E4EEB9AC138B136A00A80321 /* PBXTargetDependency */,
+ );
+ name = emptyExample;
+ productName = myOFApp;
+ productReference = E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ E4B69B4C0A3A1720003C02F2 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0830;
+ };
+ buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "emptyExample" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
+ mainGroup = E4B69B4A0A3A1720003C02F2;
+ productRefGroup = E4B69B4A0A3A1720003C02F2;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = E4328144138ABC890047C5CB /* Products */;
+ ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ E4B69B5A0A3A1756003C02F2 /* emptyExample */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = openFrameworksDebug.a;
+ remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 8466F1851C04CA0E00918B1C /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 12;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "echo \"$GCC_PREPROCESSOR_DEFINITIONS\";\nAPPSTORE=`expr \"$GCC_PREPROCESSOR_DEFINITIONS\" : \".*APPSTORE=\\([0-9]*\\)\"`\nif [ -z \"$APPSTORE\" ] ; then\necho \"Note: Not copying bin/data to App Package or doing App Code signing. Use AppStore target for AppStore distribution\";\nelse\n# Copy bin/data into App/Resources\nrsync -avz --exclude='.DS_Store' \"${SRCROOT}/bin/data/\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/data/\"\n\n# ---- Code Sign App Package ----\n\n# WARNING: You may have to run Clean in Xcode after changing CODE_SIGN_IDENTITY!\n\n# Verify that $CODE_SIGN_IDENTITY is set\nif [ -z \"${CODE_SIGN_IDENTITY}\" ] ; then\necho \"CODE_SIGN_IDENTITY needs to be set for framework code-signing\"\nexit 0\nfi\n\nif [ -z \"${CODE_SIGN_ENTITLEMENTS}\" ] ; then\necho \"CODE_SIGN_ENTITLEMENTS needs to be set for framework code-signing!\"\n\nif [ \"${CONFIGURATION}\" = \"Release\" ] ; then\nexit 1\nelse\n# Code-signing is optional for non-release builds.\nexit 0\nfi\nfi\n\nITEMS=\"\"\n\nFRAMEWORKS_DIR=\"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\necho \"$FRAMEWORKS_DIR\"\nif [ -d \"$FRAMEWORKS_DIR\" ] ; then\nFRAMEWORKS=$(find \"${FRAMEWORKS_DIR}\" -depth -type d -name \"*.framework\" -or -name \"*.dylib\" -or -name \"*.bundle\" | sed -e \"s/\\(.*framework\\)/\\1\\/Versions\\/A\\//\")\nRESULT=$?\nif [[ $RESULT != 0 ]] ; then\nexit 1\nfi\n\nITEMS=\"${FRAMEWORKS}\"\nfi\n\nLOGINITEMS_DIR=\"${TARGET_BUILD_DIR}/${CONTENTS_FOLDER_PATH}/Library/LoginItems/\"\nif [ -d \"$LOGINITEMS_DIR\" ] ; then\nLOGINITEMS=$(find \"${LOGINITEMS_DIR}\" -depth -type d -name \"*.app\")\nRESULT=$?\nif [[ $RESULT != 0 ]] ; then\nexit 1\nfi\n\nITEMS=\"${ITEMS}\"$'\\n'\"${LOGINITEMS}\"\nfi\n\n# Prefer the expanded name, if available.\nCODE_SIGN_IDENTITY_FOR_ITEMS=\"${EXPANDED_CODE_SIGN_IDENTITY_NAME}\"\nif [ \"${CODE_SIGN_IDENTITY_FOR_ITEMS}\" = \"\" ] ; then\n# Fall back to old behavior.\nCODE_SIGN_IDENTITY_FOR_ITEMS=\"${CODE_SIGN_IDENTITY}\"\nfi\n\necho \"Identity:\"\necho \"${CODE_SIGN_IDENTITY_FOR_ITEMS}\"\n\necho \"Entitlements:\"\necho \"${CODE_SIGN_ENTITLEMENTS}\"\n\necho \"Found:\"\necho \"${ITEMS}\"\n\n# Change the Internal Field Separator (IFS) so that spaces in paths will not cause problems below.\nSAVED_IFS=$IFS\nIFS=$(echo -en \"\\n\\b\")\n\n# Loop through all items.\nfor ITEM in $ITEMS;\ndo\necho \"Signing '${ITEM}'\"\ncodesign --force --verbose --sign \"${CODE_SIGN_IDENTITY_FOR_ITEMS}\" --entitlements \"${CODE_SIGN_ENTITLEMENTS}\" \"${ITEM}\"\nRESULT=$?\nif [[ $RESULT != 0 ]] ; then\necho \"Failed to sign '${ITEM}'.\"\nIFS=$SAVED_IFS\nexit 1\nfi\ndone\n\n# Restore $IFS.\nIFS=$SAVED_IFS\n\nfi\n";
+ };
+ E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "mkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n# Copy default icon file into App/Resources\nrsync -aved \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n# Copy libfmod and change install directory for fmod to run\nrsync -aved \"$OF_PATH/libs/fmodex/lib/osx/libfmodex.dylib\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/\";\ninstall_name_tool -change @executable_path/libfmodex.dylib @executable_path/../Frameworks/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";\n\necho \"$GCC_PREPROCESSOR_DEFINITIONS\";\n";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ E4B69B580A3A1756003C02F2 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */,
+ E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = openFrameworks;
+ targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 99FA3DBB1C7456C400CFA0EE /* AppStore */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
+ buildSettings = {
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
+ COPY_PHASE_STRIP = YES;
+ DEAD_CODE_STRIPPING = YES;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_ENABLE_SSE3_EXTENSIONS = YES;
+ GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ "GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = "DISTRIBUTION=1";
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_UNROLL_LOOPS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
+ GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = NO;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VALUE = NO;
+ GCC_WARN_UNUSED_VARIABLE = NO;
+ MACOSX_DEPLOYMENT_TARGET = 10.9;
+ OTHER_CPLUSPLUSFLAGS = (
+ "-D__MACOSX_CORE__",
+ "-mtune=native",
+ );
+ SDKROOT = macosx;
+ };
+ name = AppStore;
+ };
+ 99FA3DBC1C7456C400CFA0EE /* AppStore */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
+ buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = YES;
+ FRAMEWORK_SEARCH_PATHS = "$(inherited)";
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_MODEL_TUNING = NONE;
+ "GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = "APPSTORE=1";
+ ICON = "$(ICON_NAME_RELEASE)";
+ ICON_FILE = "$(ICON_FILE_PATH)$(ICON)";
+ INFOPLIST_FILE = "openFrameworks-Info.plist";
+ INSTALL_PATH = /Applications;
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
+ PRODUCT_BUNDLE_IDENTIFIER = cc.openFrameworks.ofapp;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ baseConfigurationReference = E4EB6923138AFD0F00A09F29;
+ };
+ name = AppStore;
+ };
+ E4B69B4E0A3A1720003C02F2 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
+ buildSettings = {
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
+ COPY_PHASE_STRIP = NO;
+ DEAD_CODE_STRIPPING = YES;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_ENABLE_SSE3_EXTENSIONS = YES;
+ GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
+ GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = NO;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VALUE = NO;
+ GCC_WARN_UNUSED_VARIABLE = NO;
+ MACOSX_DEPLOYMENT_TARGET = 10.9;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_CPLUSPLUSFLAGS = (
+ "-D__MACOSX_CORE__",
+ "-mtune=native",
+ );
+ SDKROOT = macosx;
+ };
+ name = Debug;
+ };
+ E4B69B4F0A3A1720003C02F2 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
+ buildSettings = {
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
+ COPY_PHASE_STRIP = YES;
+ DEAD_CODE_STRIPPING = YES;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_ENABLE_SSE3_EXTENSIONS = YES;
+ GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_UNROLL_LOOPS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES;
+ GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = NO;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VALUE = NO;
+ GCC_WARN_UNUSED_VARIABLE = NO;
+ MACOSX_DEPLOYMENT_TARGET = 10.9;
+ OTHER_CPLUSPLUSFLAGS = (
+ "-D__MACOSX_CORE__",
+ "-mtune=native",
+ );
+ SDKROOT = macosx;
+ };
+ name = Release;
+ };
+ E4B69B600A3A1757003C02F2 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
+ buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = "$(inherited)";
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_MODEL_TUNING = NONE;
+ ICON = "$(ICON_NAME_DEBUG)";
+ ICON_FILE = "$(ICON_FILE_PATH)$(ICON)";
+ INFOPLIST_FILE = "openFrameworks-Info.plist";
+ INSTALL_PATH = /Applications;
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
+ PRODUCT_BUNDLE_IDENTIFIER = cc.openFrameworks.ofapp;
+ PRODUCT_NAME = "$(TARGET_NAME)Debug";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ E4B69B610A3A1757003C02F2 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
+ buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = YES;
+ FRAMEWORK_SEARCH_PATHS = "$(inherited)";
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_MODEL_TUNING = NONE;
+ ICON = "$(ICON_NAME_RELEASE)";
+ ICON_FILE = "$(ICON_FILE_PATH)$(ICON)";
+ INFOPLIST_FILE = "openFrameworks-Info.plist";
+ INSTALL_PATH = /Applications;
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
+ PRODUCT_BUNDLE_IDENTIFIER = cc.openFrameworks.ofapp;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ baseConfigurationReference = E4EB6923138AFD0F00A09F29;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "emptyExample" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ E4B69B4E0A3A1720003C02F2 /* Debug */,
+ E4B69B4F0A3A1720003C02F2 /* Release */,
+ 99FA3DBB1C7456C400CFA0EE /* AppStore */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ E4B69B600A3A1757003C02F2 /* Debug */,
+ E4B69B610A3A1757003C02F2 /* Release */,
+ 99FA3DBC1C7456C400CFA0EE /* AppStore */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */;
+}
diff --git a/imgtest/emptyExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/imgtest/emptyExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..919434a
--- /dev/null
+++ b/imgtest/emptyExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:">
+ </FileRef>
+</Workspace>
diff --git a/imgtest/emptyExample.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate b/imgtest/emptyExample.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 0000000..71727d7
--- /dev/null
+++ b/imgtest/emptyExample.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/imgtest/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample AppStore.xcscheme b/imgtest/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample AppStore.xcscheme
new file mode 100644
index 0000000..172f6c4
--- /dev/null
+++ b/imgtest/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample AppStore.xcscheme
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0830"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+ BuildableName = "emptyExample.app"
+ BlueprintName = "emptyExample"
+ ReferencedContainer = "container:emptyExample.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ buildConfiguration = "Release"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES">
+ <Testables>
+ </Testables>
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+ BuildableName = "emptyExample.app"
+ BlueprintName = "emptyExample"
+ ReferencedContainer = "container:emptyExample.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </TestAction>
+ <LaunchAction
+ buildConfiguration = "AppStore"
+ selectedDebuggerIdentifier = ""
+ selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ debugServiceExtension = "internal"
+ allowLocationSimulation = "YES">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+ BuildableName = "emptyExample.app"
+ BlueprintName = "emptyExample"
+ ReferencedContainer = "container:emptyExample.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ buildConfiguration = "Release"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ debugDocumentVersioning = "YES">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+ BuildableName = "emptyExample.app"
+ BlueprintName = "emptyExample"
+ ReferencedContainer = "container:emptyExample.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Release">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/imgtest/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample Debug.xcscheme b/imgtest/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample Debug.xcscheme
new file mode 100644
index 0000000..a6784ed
--- /dev/null
+++ b/imgtest/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample Debug.xcscheme
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0830"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+ BuildableName = "emptyExample.app"
+ BlueprintName = "emptyExample"
+ ReferencedContainer = "container:emptyExample.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES">
+ <Testables>
+ </Testables>
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+ BuildableName = "emptyExample.app"
+ BlueprintName = "emptyExample"
+ ReferencedContainer = "container:emptyExample.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </TestAction>
+ <LaunchAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ debugServiceExtension = "internal"
+ allowLocationSimulation = "YES">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+ BuildableName = "emptyExample.app"
+ BlueprintName = "emptyExample"
+ ReferencedContainer = "container:emptyExample.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ buildConfiguration = "Debug"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ debugDocumentVersioning = "YES">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+ BuildableName = "emptyExample.app"
+ BlueprintName = "emptyExample"
+ ReferencedContainer = "container:emptyExample.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Debug"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/imgtest/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample Release.xcscheme b/imgtest/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample Release.xcscheme
new file mode 100644
index 0000000..3227778
--- /dev/null
+++ b/imgtest/emptyExample.xcodeproj/xcshareddata/xcschemes/emptyExample Release.xcscheme
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0830"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+ BuildableName = "emptyExample.app"
+ BlueprintName = "emptyExample"
+ ReferencedContainer = "container:emptyExample.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ buildConfiguration = "Release"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES">
+ <Testables>
+ </Testables>
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+ BuildableName = "emptyExample.app"
+ BlueprintName = "emptyExample"
+ ReferencedContainer = "container:emptyExample.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </TestAction>
+ <LaunchAction
+ buildConfiguration = "Release"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ debugServiceExtension = "internal"
+ allowLocationSimulation = "YES">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+ BuildableName = "emptyExample.app"
+ BlueprintName = "emptyExample"
+ ReferencedContainer = "container:emptyExample.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ buildConfiguration = "Release"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ debugDocumentVersioning = "YES">
+ <BuildableProductRunnable
+ runnableDebuggingMode = "0">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "E4B69B5A0A3A1756003C02F2"
+ BuildableName = "emptyExample.app"
+ BlueprintName = "emptyExample"
+ ReferencedContainer = "container:emptyExample.xcodeproj">
+ </BuildableReference>
+ </BuildableProductRunnable>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Release">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/imgtest/emptyExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist b/imgtest/emptyExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644
index 0000000..13dfb6e
--- /dev/null
+++ b/imgtest/emptyExample.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>SuppressBuildableAutocreation</key>
+ <dict>
+ <key>E4B69B5A0A3A1756003C02F2</key>
+ <dict>
+ <key>primary</key>
+ <true/>
+ </dict>
+ </dict>
+</dict>
+</plist>
diff --git a/imgtest/openFrameworks-Info.plist b/imgtest/openFrameworks-Info.plist
new file mode 100644
index 0000000..757f735
--- /dev/null
+++ b/imgtest/openFrameworks-Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIconFile</key>
+ <string>${ICON}</string>
+ <key>CFBundleIdentifier</key>
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
diff --git a/imgtest/src/main.cpp b/imgtest/src/main.cpp
new file mode 100644
index 0000000..6eb1c47
--- /dev/null
+++ b/imgtest/src/main.cpp
@@ -0,0 +1,23 @@
+#include "ofMain.h"
+#include "ofApp.h"
+
+//========================================================================
+int main(int argc, char *argv[]){
+ ofSetupOpenGL(1024,768,OF_WINDOW); // <-------- setup the GL context
+
+ // this kicks off the running of my app
+ // can be OF_WINDOW or OF_FULLSCREEN
+ // pass in width and height too:
+ ofApp *app = new ofApp();
+
+ app->arguments = vector<string>(argv, argv + argc);
+
+ ofRunApp(app); // start the app
+
+
+ //60 deg camera
+ //30 60 90 triangle 3 4 5
+ //512 * 4/3 = 683
+
+}
+ \ No newline at end of file
diff --git a/imgtest/src/ofApp.cpp b/imgtest/src/ofApp.cpp
new file mode 100644
index 0000000..3f33d8d
--- /dev/null
+++ b/imgtest/src/ofApp.cpp
@@ -0,0 +1,224 @@
+#include "ofApp.h"
+#include "glew.h"
+
+//--------------------------------------------------------------
+void ofApp::setup(){
+
+ std::string filename;
+
+ float speedscale=0.999;
+ float overlapscale=0.3;
+ float transitionscale=0.6;
+
+ if (arguments.size()>1){
+ filename=arguments.at(1);
+ }
+ else filename="jukebox_1.JPG"; //"tile-grid-png-6.png"; // //hubble_Orion_nebula.tif"; //
+
+ float t=ofGetElapsedTimef();
+ if (i1.load(filename)){
+ ofLogNotice() << "Loaded : "<<filename<< " in "<<(ofGetElapsedTimef()-t)<<" seconds.";
+
+ ofLogNotice() << i1.getWidth() << " x " << i1.getHeight();
+
+ //i1 is 2272 x 1704 or +- 1136 x 852
+ //i2 is 454 x 340 scaled
+ //i1.init(ofPoint(30,-20),0.2,0,speedscale,transitionscale);
+ i1.init(ofPoint(0,0),overlapscale,0,speedscale,transitionscale);
+ }
+ else ofLogNotice() << "Could not load : "<<filename;
+
+ i2.load("jukebox_2.JPG"); //"tile-grid-png-6.png"); //
+ i2.init(ofPoint(-400,250),0.2,0,speedscale,transitionscale);
+ i2.init(ofPoint(0,0),overlapscale,0,speedscale,transitionscale);
+ i1.link=&i2;
+
+ i3.load("jukebox_3.JPG"); //"tile-grid-png-6.png"); //
+ i3.init(ofPoint(500,200),0.2,0,speedscale,transitionscale);
+ //i3.init(ofPoint(0,0),overlapscale,0,speedscale,transitionscale);
+ i2.link=&i3;
+
+ i3.link=&i1;
+
+ viewpoint.resetTransform();
+ viewpoint.setFov(60);
+ viewpoint.setFarClip(10000.0f);
+
+ startTime=ofGetElapsedTimef();
+ timescaling=.01;
+
+ currentImage=&i1;
+ currentImage->start();
+
+ currentFrame=0;
+
+}
+
+//--------------------------------------------------------------
+void ofApp::update(){
+
+ std::stringstream strm;
+ strm << "fps: " << ofGetFrameRate();
+ ofSetWindowTitle(strm.str());
+
+
+ if (currentImage->update()){ //if returns true, switch images
+ currentImage=currentImage->link;
+ currentImage->start();
+ ofLogNotice() << "Switched images";
+ currentFrame=0;
+ //viewpoint.resetTransform(); //or we get a glitch for no apparent reason, or not
+ currentImage->update();
+ }
+
+ //viewpoint misbehaves the first frame it is moved.
+
+}
+
+//--------------------------------------------------------------
+void ofApp::draw(){
+
+ //viewpoint.begin();
+
+ float camera_throw= 0.6667; //the ratio of z distance to x width
+
+
+ glMatrixMode ( GL_MODELVIEW );
+ glLoadIdentity ( );
+ gluLookAt( currentImage->getTransform().x,
+ currentImage->getTransform().y, // i1.linkPos.y+(xform.y*intervalpoint),
+ currentImage->getWidth()*camera_throw*currentImage->getScale() ,
+ currentImage->getTransform().x,
+ currentImage->getTransform().y, // i1.linkPos.y+(xform.y*intervalpoint),
+ 0,
+ 0,1,0);
+
+ //if (currentFrame>0) {
+ ofBackground(0,0,0);
+ currentImage->drawChain();
+ //}
+ //else {
+ //ofSetColor(255,255,255);
+ //ofDrawRectangle(-100,-100,200,200);
+ //currentImage->link->drawChain(); //attempted hack
+ //}
+
+/*
+ printf(">>Draw %i %f complete %f,%f at %f from %f,%f,%f\n",
+ currentFrame,
+ currentImage->transition,
+ currentImage->linkPos.x,
+ currentImage->linkPos.y,
+ currentImage->getScale(),
+ currentImage->getTransform().x,
+ currentImage->getTransform().y,
+ currentImage->getWidth()*camera_throw*currentImage->getScale()
+ );
+*/
+
+
+/*
+ viewpoint.setPosition(currentImage->getTransform().x,
+ currentImage->getTransform().y, // i1.linkPos.y+(xform.y*intervalpoint),
+ currentImage->getWidth()*camera_throw*currentImage->getScale());
+*/
+ //ofCamera DOES NOT WORK, it produces spurious coordinates the first frame it is moved
+
+
+ /*
+
+
+ ofLogNotice() << "Camera at: "<<ofToString(viewpoint.getPosition().x)
+ <<","<<ofToString(viewpoint.getPosition().y)
+ <<","<<ofToString(viewpoint.getPosition().z);
+ */
+
+ //viewpoint.end();
+
+/*
+ if (!(i1.transition<1.0)){
+ ofLogNotice() << "Finished ";
+
+ ofBaseApp::exit();
+ std::exit(EXIT_FAILURE);
+ }
+
+
+ so far so good
+
+ now:
+
+ -rotation
+ -moving seamlessly between segments - exponential zoom
+ -blending movment between segments
+ -interface for authoring
+ -things to do with it
+
+
+
+
+ if (currentFrame<2) {
+ grab.grabScreen(0, 0 , ofGetWidth(), ofGetHeight());
+ char buf[50];
+ sprintf(buf,"zeroimg%04i.png",currentFrame);
+ grab.save(buf);
+ }
+ */
+
+ currentFrame++;
+}
+
+//--------------------------------------------------------------
+void ofApp::keyPressed(int key){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::keyReleased(int key){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseMoved(int x, int y ){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseDragged(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mousePressed(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseReleased(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseEntered(int x, int y){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseExited(int x, int y){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::windowResized(int w, int h){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::gotMessage(ofMessage msg){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::dragEvent(ofDragInfo dragInfo){
+
+}
diff --git a/imgtest/src/ofApp.h b/imgtest/src/ofApp.h
new file mode 100644
index 0000000..bde4958
--- /dev/null
+++ b/imgtest/src/ofApp.h
@@ -0,0 +1,171 @@
+#pragma once
+
+#include "ofMain.h"
+
+#define min(a,b) ((a) < (b) ? (a) : (b))
+#define max(a,b) ((a) > (b) ? (a) : (b))
+
+/*
+try to set up coords manually for a sequence of images and prototype a flythrough
+
+a linked list with
+image
+pointer to next image
+position, scale and rotation of next image
+
+
+*/
+
+class chainImage : public ofImage{
+ //todo: threaded image loader
+
+ public:
+ void init(ofPoint _linkPos,float _linkScale,float _linkRot,float _speed=0.99f,float _fadeIn=1.0f){
+ linkPos=_linkPos;
+ linkScale=_linkScale;
+ linkRot=_linkRot;
+ speed=_speed;
+ fadeIn=_fadeIn;
+ setAnchorPoint(getWidth()/2,getHeight()/2);
+ }
+
+ void start(){
+ transition=0.0f;
+ time=ofGetElapsedTimef();
+ setUseTexture(true);
+ scale=linkScale;
+ }
+
+ bool update(){
+ //transition+=(ofGetElapsedTimef()-time)*speed;
+
+ //hard to make the algorithm framerate invariant
+ //if it's exponenential
+
+
+ scale*=speed;
+
+ transition=-(scale-linkScale)/(linkScale-(linkScale*link->linkScale));
+
+ //time=ofGetElapsedTimef();
+ if (scale>linkScale*link->linkScale) return false;
+ else {
+ transition = 1.0f;
+ return true;
+ }
+ }
+ ofVec3f getTransform(){
+ //move from linkPos to link->linkPos
+ /*
+ ofVec3f _scaledTarget = link->linkPos * linkScale;
+ return linkPos + ( _scaledTarget * transition );
+ */
+
+ /*
+ ofPoint o;
+ o = linkPos + ( _scaledTarget * transition );
+ o.x=linkPos.x+((link->linkPos.x/scale)-linkPos.x)*link->linkScale*transition);
+ o.y=linkPos.y+((link->linkPos.y-linkPos.y)*link->linkScale*transition);
+ o.z=linkPos.z+((link->linkPos.z-linkPos.z)*link->linkScale*transition);
+ return o;
+ */
+
+ ///*
+ ofVec3f _scaledTarget = link->linkPos * linkScale;
+
+/*
+ ofVec3f _st = _scaledTarget * transition;
+
+ printf(">>scaledTarget %f,%f,%f %f to %f,%f,%f\n",
+ _scaledTarget.x,
+ _scaledTarget.y,
+ _scaledTarget.z,
+ transition,
+ _st.x,
+ _st.y,
+ _st.z);
+*/
+ return linkPos + ( _scaledTarget * transition );
+ //*/
+ }
+ float getScale(){
+ //rather than each frame scale being an increment of the previous
+ //each frame should be the same ratio from the previous
+ //to get from 0.2 to .04 in 400 frames then 0.2 * (X ^ 400) = 0.04
+ //x = 400 v- 0.2
+ //or, just do it empirically with an exponential factor
+ return scale;
+ //return ofLerp(linkScale,link->linkScale*linkScale,transition);
+ }
+
+
+ void drawChain(){
+
+ glPushMatrix();
+
+ ofDisableAlphaBlending();
+
+ ofSetColor(255,255,255,255);
+
+ draw(0,0,getWidth(),getHeight());
+
+ glTranslatef(linkPos.x,linkPos.y,0);
+
+ glScalef(linkScale,linkScale,linkScale);
+
+ ofEnableAlphaBlending();
+
+ ofSetColor(255,255,255,255*min(1.0,transition/fadeIn));
+
+ link->draw(0,0,link->getWidth(),link->getHeight());
+
+ glPopMatrix();
+ }
+
+ chainImage *link;
+ ofPoint linkPos;
+ float linkScale;
+ float linkRot;
+ float transition;
+ float fadeIn;
+ float speed;
+ float time;
+ float scale;
+
+
+};
+
+class ofApp : public ofBaseApp{
+
+ public:
+ void setup();
+ void update();
+ void draw();
+
+ void keyPressed(int key);
+ void keyReleased(int key);
+ void mouseMoved(int x, int y );
+ void mouseDragged(int x, int y, int button);
+ void mousePressed(int x, int y, int button);
+ void mouseReleased(int x, int y, int button);
+ void mouseEntered(int x, int y);
+ void mouseExited(int x, int y);
+ void windowResized(int w, int h);
+ void dragEvent(ofDragInfo dragInfo);
+ void gotMessage(ofMessage msg);
+
+ chainImage i1,i2,i3;
+
+ chainImage *currentImage;
+
+ ofImage grab;
+
+ vector<string> arguments;
+
+ ofCamera viewpoint;
+
+ float startTime,timescaling;
+
+ int currentFrame;
+
+};