diff --git a/01_twoScreens/Project.xcconfig b/01_twoScreens/Project.xcconfig deleted file mode 100644 index c10b9e5..0000000 --- a/01_twoScreens/Project.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -//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 = ../../.. - -//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE -#include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" - -OTHER_LDFLAGS = $(OF_CORE_LIBS) -HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) diff --git a/02_threeVertical/Project.xcconfig b/02_threeVertical/Project.xcconfig deleted file mode 100644 index c10b9e5..0000000 --- a/02_threeVertical/Project.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -//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 = ../../.. - -//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE -#include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" - -OTHER_LDFLAGS = $(OF_CORE_LIBS) -HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) diff --git a/02_threeVertical/src/testApp.cpp b/02_threeVertical/src/testApp.cpp deleted file mode 100644 index d5d8943..0000000 --- a/02_threeVertical/src/testApp.cpp +++ /dev/null @@ -1,153 +0,0 @@ -#include "testApp.h" - -//-------------------------------------------------------------- -void testApp::setup(){ - ofSetFrameRate(60); - ofSetVerticalSync(true); - - - blender.setup(640, 480, 3, 20, ofxProjectorBlend_Vertical); - blender.setWindowToDisplaySize(); - - radius = 40; - pos.x = ofRandom(radius, blender.getCanvasWidth()-radius); - pos.y = ofRandom(radius, blender.getCanvasHeight()-radius); - vel.set(10, 10); -} - -//-------------------------------------------------------------- -void testApp::update(){ - - pos += vel; - if(pos.x > blender.getCanvasWidth()-radius) { - pos.x = blender.getCanvasWidth()-radius; - vel.x *= -1; - } - if(pos.x < radius) { - pos.x = radius; - vel.x *= -1; - } - if(pos.y > blender.getCanvasHeight()-radius) { - pos.y = blender.getCanvasHeight()-radius; - vel.y *= -1; - } - if(pos.y < radius) { - pos.y = radius; - vel.y *= -1; - } -} - -//-------------------------------------------------------------- -void testApp::draw(){ - blender.begin(); //call blender.begin() to draw onto the blendable canvas - { - //light gray backaground - ofSetColor(100, 100, 100); - ofRect(0, 0, blender.getCanvasWidth(), blender.getCanvasHeight()); - - //thick grid lines for blending - ofSetColor(255, 255, 255); - ofSetLineWidth(3); - - //vertical line - for(int i = 0; i <= blender.getCanvasWidth(); i+=40){ - ofLine(i, 0, i, blender.getCanvasHeight()); - } - - //horizontal lines - for(int j = 0; j <= blender.getCanvasHeight(); j+=40){ - ofLine(0, j, blender.getCanvasWidth(), j); - } - - ofSetColor(255, 0, 0); - ofCircle(pos, radius); - - //instructions - ofSetColor(255, 255, 255); - ofRect(10, 10, 300, 100); - ofSetColor(0, 0, 0); - ofDrawBitmapString("SPACE - toggle show blend\n[g/G] - adjust gamma\n[p/P] - adjust blend power\n[l/L] adjust luminance", 15, 35); - } - blender.end(); //call when you are finished drawing - - - //this draws to the main window - blender.draw(); -} - -//-------------------------------------------------------------- -void testApp::keyPressed(int key){ - -} - -//-------------------------------------------------------------- -void testApp::keyReleased(int key){ - //hit spacebar to toggle the blending strip - if(key == ' '){ - //toggling this variable effects whether the blend strip is shown - blender.showBlend = !blender.showBlend; - } - - // more info here on what these variables do - // http://local.wasp.uwa.edu.au/~pbourke/texture_colour/edgeblend/ - - else if(key == 'g'){ - blender.gamma[0] -= .05; - blender.gamma[1] -= .05; - } - else if(key == 'G'){ - blender.gamma[0] += .05; - blender.gamma[1] += .05; - } - else if(key == 'l'){ - blender.luminance[0] -= .05; - blender.luminance[1] -= .05; - } - else if(key == 'L'){ - blender.luminance[0] += .05; - blender.luminance[1] += .05; - } - else if(key == 'p'){ - blender.blendPower[0] -= .05; - blender.blendPower[1] -= .05; - } - else if(key == 'P'){ - blender.blendPower[0] += .05; - blender.blendPower[1] += .05; - } -} - -//-------------------------------------------------------------- -void testApp::mouseMoved(int x, int y ){ - -} - -//-------------------------------------------------------------- -void testApp::mouseDragged(int x, int y, int button){ - -} - -//-------------------------------------------------------------- -void testApp::mousePressed(int x, int y, int button){ - -} - -//-------------------------------------------------------------- -void testApp::mouseReleased(int x, int y, int button){ - -} - -//-------------------------------------------------------------- -void testApp::windowResized(int w, int h){ - -} - -//-------------------------------------------------------------- -void testApp::gotMessage(ofMessage msg){ - -} - -//-------------------------------------------------------------- -void testApp::dragEvent(ofDragInfo dragInfo){ - -} \ No newline at end of file diff --git a/03_guiControls/Project.xcconfig b/03_guiControls/Project.xcconfig deleted file mode 100644 index c10b9e5..0000000 --- a/03_guiControls/Project.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -//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 = ../../.. - -//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE -#include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" - -OTHER_LDFLAGS = $(OF_CORE_LIBS) -HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) diff --git a/03_guiControls/src/testApp.cpp b/03_guiControls/src/testApp.cpp deleted file mode 100644 index b16f834..0000000 --- a/03_guiControls/src/testApp.cpp +++ /dev/null @@ -1,105 +0,0 @@ -#include "testApp.h" - -//-------------------------------------------------------------- -void testApp::setup(){ - - blender.setup(PROJECTOR_WIDTH, PROJECTOR_HEIGHT, PROJECTOR_COUNT, PIXEL_OVERLAP); - blender.setWindowToDisplaySize(); - - - gui.addToggle("Show Blend", blender.showBlend); - - for (int i=0; i + + + archiveVersion + 1 + classes + + objectVersion + 46 + objects + + 07F7389612578F62A483FB79 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxProjectorBlendShader.h + path + ../../../../addons/ofxProjectorBlend/src/ofxProjectorBlendShader.h + sourceTree + SOURCE_ROOT + + F2C101F7371BB7A4EC9AFB0A + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxProjectorBlend.h + path + ../../../../addons/ofxProjectorBlend/src/ofxProjectorBlend.h + sourceTree + SOURCE_ROOT + + 7959A566A37DB3C7C7FFAF32 + + children + + 741B6C295D666B5A935928CA + F2C101F7371BB7A4EC9AFB0A + 07F7389612578F62A483FB79 + + isa + PBXGroup + name + src + sourceTree + <group> + + 59DA350BBB36A982B18D6D2A + + children + + 7959A566A37DB3C7C7FFAF32 + + isa + PBXGroup + name + ofxProjectorBlend + sourceTree + <group> + + 34211D8DB45A6A5C17097816 + + fileRef + 741B6C295D666B5A935928CA + isa + PBXBuildFile + + 741B6C295D666B5A935928CA + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxProjectorBlend.cpp + path + ../../../../addons/ofxProjectorBlend/src/ofxProjectorBlend.cpp + sourceTree + SOURCE_ROOT + + 6948EE371B920CB800B5AC1A + + children + + isa + PBXGroup + name + local_addons + sourceTree + <group> + + 8466F1851C04CA0E00918B1C + + buildActionMask + 12 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + # ---- Code Sign App Package ---- + +# WARNING: You may have to run Clean in Xcode after changing CODE_SIGN_IDENTITY! + +# Verify that $CODE_SIGN_IDENTITY is set +if [ -z "${CODE_SIGN_IDENTITY}" ] ; then +echo "CODE_SIGN_IDENTITY needs to be set for framework code-signing" +exit 0 +fi + +if [ -z "${CODE_SIGN_ENTITLEMENTS}" ] ; then +echo "CODE_SIGN_ENTITLEMENTS needs to be set for framework code-signing!" + +if [ "${CONFIGURATION}" = "Release" ] ; then +exit 1 +else +# Code-signing is optional for non-release builds. +exit 0 +fi +fi + +ITEMS="" + +FRAMEWORKS_DIR="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +echo "$FRAMEWORKS_DIR" +if [ -d "$FRAMEWORKS_DIR" ] ; then +FRAMEWORKS=$(find "${FRAMEWORKS_DIR}" -depth -type d -name "*.framework" -or -name "*.dylib" -or -name "*.bundle" | sed -e "s/\(.*framework\)/\1\/Versions\/A\//") +RESULT=$? +if [[ $RESULT != 0 ]] ; then +exit 1 +fi + +ITEMS="${FRAMEWORKS}" +fi + +LOGINITEMS_DIR="${TARGET_BUILD_DIR}/${CONTENTS_FOLDER_PATH}/Library/LoginItems/" +if [ -d "$LOGINITEMS_DIR" ] ; then +LOGINITEMS=$(find "${LOGINITEMS_DIR}" -depth -type d -name "*.app") +RESULT=$? +if [[ $RESULT != 0 ]] ; then +exit 1 +fi + +ITEMS="${ITEMS}"$'\n'"${LOGINITEMS}" +fi + +# Prefer the expanded name, if available. +CODE_SIGN_IDENTITY_FOR_ITEMS="${EXPANDED_CODE_SIGN_IDENTITY_NAME}" +if [ "${CODE_SIGN_IDENTITY_FOR_ITEMS}" = "" ] ; then +# Fall back to old behavior. +CODE_SIGN_IDENTITY_FOR_ITEMS="${CODE_SIGN_IDENTITY}" +fi + +echo "Identity:" +echo "${CODE_SIGN_IDENTITY_FOR_ITEMS}" + +echo "Entitlements:" +echo "${CODE_SIGN_ENTITLEMENTS}" + +echo "Found:" +echo "${ITEMS}" + +# Change the Internal Field Separator (IFS) so that spaces in paths will not cause problems below. +SAVED_IFS=$IFS +IFS=$(echo -en "\n\b") + +# Loop through all items. +for ITEM in $ITEMS; +do +echo "Signing '${ITEM}'" +codesign --force --verbose --sign "${CODE_SIGN_IDENTITY_FOR_ITEMS}" --entitlements "${CODE_SIGN_ENTITLEMENTS}" "${ITEM}" +RESULT=$? +if [[ $RESULT != 0 ]] ; then +echo "Failed to sign '${ITEM}'." +IFS=$SAVED_IFS +exit 1 +fi +done + +# Restore $IFS. +IFS=$SAVED_IFS + + + BB4B014C10F69532006C3DED + + children + + 59DA350BBB36A982B18D6D2A + + isa + PBXGroup + name + addons + sourceTree + <group> + + E4328143138ABC890047C5CB + + isa + PBXFileReference + lastKnownFileType + wrapper.pb-project + name + openFrameworksLib.xcodeproj + path + ../../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj + sourceTree + SOURCE_ROOT + + E4328144138ABC890047C5CB + + children + + E4328148138ABC890047C5CB + + isa + PBXGroup + name + Products + sourceTree + <group> + + E4328147138ABC890047C5CB + + containerPortal + E4328143138ABC890047C5CB + isa + PBXContainerItemProxy + proxyType + 2 + remoteGlobalIDString + E4B27C1510CBEB8E00536013 + remoteInfo + openFrameworks + + E4328148138ABC890047C5CB + + fileType + archive.ar + isa + PBXReferenceProxy + path + openFrameworksDebug.a + remoteRef + E4328147138ABC890047C5CB + sourceTree + BUILT_PRODUCTS_DIR + + E4328149138ABC9F0047C5CB + + fileRef + E4328148138ABC890047C5CB + isa + PBXBuildFile + + E4B69B4A0A3A1720003C02F2 + + children + + E4B6FCAD0C3E899E008CF71C + E4EB6923138AFD0F00A09F29 + E4B69E1C0A3A1BDC003C02F2 + E4EEC9E9138DF44700A80321 + BB4B014C10F69532006C3DED + 6948EE371B920CB800B5AC1A + E4B69B5B0A3A1756003C02F2 + + isa + PBXGroup + sourceTree + <group> + + E4B69B4C0A3A1720003C02F2 + + attributes + + LastUpgradeCheck + 0600 + + buildConfigurationList + E4B69B4D0A3A1720003C02F2 + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 + isa + PBXProject + knownRegions + + English + Japanese + French + German + + mainGroup + E4B69B4A0A3A1720003C02F2 + productRefGroup + E4B69B4A0A3A1720003C02F2 + projectDirPath + + projectReferences + + + ProductGroup + E4328144138ABC890047C5CB + ProjectRef + E4328143138ABC890047C5CB + + + projectRoot + + targets + + E4B69B5A0A3A1756003C02F2 + + + E4B69B4D0A3A1720003C02F2 + + buildConfigurations + + E4B69B4E0A3A1720003C02F2 + E4B69B4F0A3A1720003C02F2 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + E4B69B4E0A3A1720003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxProjectorBlend/src + + CONFIGURATION_BUILD_DIR + $(SRCROOT)/bin/ + COPY_PHASE_STRIP + NO + DEAD_CODE_STRIPPING + YES + GCC_AUTO_VECTORIZATION + YES + GCC_ENABLE_SSE3_EXTENSIONS + YES + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS + YES + GCC_INLINES_ARE_PRIVATE_EXTERN + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS + YES + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO + NO + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL + NO + GCC_WARN_UNINITIALIZED_AUTOS + NO + GCC_WARN_UNUSED_VALUE + NO + GCC_WARN_UNUSED_VARIABLE + NO + MACOSX_DEPLOYMENT_TARGET + 10.8 + ONLY_ACTIVE_ARCH + YES + OTHER_CPLUSPLUSFLAGS + + -D__MACOSX_CORE__ + -mtune=native + + SDKROOT + macosx + + isa + XCBuildConfiguration + name + Debug + + E4B69B4F0A3A1720003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxProjectorBlend/src + + CONFIGURATION_BUILD_DIR + $(SRCROOT)/bin/ + COPY_PHASE_STRIP + YES + DEAD_CODE_STRIPPING + YES + GCC_AUTO_VECTORIZATION + YES + GCC_ENABLE_SSE3_EXTENSIONS + YES + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS + YES + GCC_INLINES_ARE_PRIVATE_EXTERN + NO + GCC_OPTIMIZATION_LEVEL + 3 + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_UNROLL_LOOPS + YES + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS + YES + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO + NO + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL + NO + GCC_WARN_UNINITIALIZED_AUTOS + NO + GCC_WARN_UNUSED_VALUE + NO + GCC_WARN_UNUSED_VARIABLE + NO + MACOSX_DEPLOYMENT_TARGET + 10.8 + OTHER_CPLUSPLUSFLAGS + + -D__MACOSX_CORE__ + -mtune=native + + SDKROOT + macosx + + isa + XCBuildConfiguration + name + Release + + E4B69B580A3A1756003C02F2 + + buildActionMask + 2147483647 + files + + E4B69E200A3A1BDC003C02F2 + E4B69E210A3A1BDC003C02F2 + 34211D8DB45A6A5C17097816 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E4B69B590A3A1756003C02F2 + + buildActionMask + 2147483647 + files + + E4328149138ABC9F0047C5CB + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E4B69B5A0A3A1756003C02F2 + + buildConfigurationList + E4B69B5F0A3A1757003C02F2 + buildPhases + + E4B69B580A3A1756003C02F2 + E4B69B590A3A1756003C02F2 + E4B6FFFD0C3F9AB9008CF71C + E4C2427710CC5ABF004149E2 + 8466F1851C04CA0E00918B1C + + buildRules + + dependencies + + E4EEB9AC138B136A00A80321 + + isa + PBXNativeTarget + name + 01_twoScreens + productName + myOFApp + productReference + E4B69B5B0A3A1756003C02F2 + productType + com.apple.product-type.application + + E4B69B5B0A3A1756003C02F2 + + explicitFileType + wrapper.application + includeInIndex + 0 + isa + PBXFileReference + path + 01_twoScreensDebug.app + sourceTree + BUILT_PRODUCTS_DIR + + E4B69B5F0A3A1757003C02F2 + + buildConfigurations + + E4B69B600A3A1757003C02F2 + E4B69B610A3A1757003C02F2 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + E4B69B600A3A1757003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxProjectorBlend/src + + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + NO + FRAMEWORK_SEARCH_PATHS + + $(inherited) + $(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1) + + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 + "$(SRCROOT)/../../../../libs/glut/lib/osx" + 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_NAME + $(TARGET_NAME)Debug + WRAPPER_EXTENSION + app + + isa + XCBuildConfiguration + name + Debug + + E4B69B610A3A1757003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxProjectorBlend/src + + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + YES + FRAMEWORK_SEARCH_PATHS + + $(inherited) + $(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1) + + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 + "$(SRCROOT)/../../../../libs/glut/lib/osx" + 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_NAME + $(TARGET_NAME) + WRAPPER_EXTENSION + app + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + + isa + XCBuildConfiguration + name + Release + + E4B69E1C0A3A1BDC003C02F2 + + children + + E4B69E1D0A3A1BDC003C02F2 + E4B69E1E0A3A1BDC003C02F2 + E4B69E1F0A3A1BDC003C02F2 + + isa + PBXGroup + path + src + sourceTree + SOURCE_ROOT + + E4B69E1D0A3A1BDC003C02F2 + + fileEncoding + 30 + isa + PBXFileReference + lastKnownFileType + sourcecode.cpp.cpp + name + main.cpp + path + src/main.cpp + sourceTree + SOURCE_ROOT + + E4B69E1E0A3A1BDC003C02F2 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofApp.cpp + path + src/ofApp.cpp + sourceTree + SOURCE_ROOT + + E4B69E1F0A3A1BDC003C02F2 + + fileEncoding + 30 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + ofApp.h + path + src/ofApp.h + sourceTree + SOURCE_ROOT + + E4B69E200A3A1BDC003C02F2 + + fileRef + E4B69E1D0A3A1BDC003C02F2 + isa + PBXBuildFile + + E4B69E210A3A1BDC003C02F2 + + fileRef + E4B69E1E0A3A1BDC003C02F2 + isa + PBXBuildFile + + E4B6FCAD0C3E899E008CF71C + + fileEncoding + 30 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + openFrameworks-Info.plist + sourceTree + <group> + + E4B6FFFD0C3F9AB9008CF71C + + buildActionMask + 2147483647 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + mkdir -p "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/" +# Copy default icon file into App/Resources +rsync -aved "$ICON_FILE" "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/" +# Copy bin/data into App/Resources +rsync -avz --exclude='.DS_Store' "${SRCROOT}/bin/data/" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/data/" +# Copy libfmod and change install directory for fmod to run +rsync -aved ../../../../libs/fmodex/lib/osx/libfmodex.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/"; +install_name_tool -change @executable_path/libfmodex.dylib @executable_path/../Frameworks/libfmodex.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME"; +# Copy GLUT framework (must remove for AppStore submissions) +rsync -aved ../../../../libs/glut/lib/osx/GLUT.framework "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/" + + + E4C2427710CC5ABF004149E2 + + buildActionMask + 2147483647 + dstPath + + dstSubfolderSpec + 10 + files + + isa + PBXCopyFilesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E4EB691F138AFCF100A09F29 + + fileEncoding + 4 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + CoreOF.xcconfig + path + ../../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig + sourceTree + SOURCE_ROOT + + E4EB6923138AFD0F00A09F29 + + fileEncoding + 4 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Project.xcconfig + sourceTree + <group> + + E4EEB9AB138B136A00A80321 + + containerPortal + E4328143138ABC890047C5CB + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + E4B27C1410CBEB8E00536013 + remoteInfo + openFrameworks + + E4EEB9AC138B136A00A80321 + + isa + PBXTargetDependency + name + openFrameworks + targetProxy + E4EEB9AB138B136A00A80321 + + E4EEC9E9138DF44700A80321 + + children + + E4EB691F138AFCF100A09F29 + E4328143138ABC890047C5CB + + isa + PBXGroup + name + openFrameworks + sourceTree + <group> + + + rootObject + E4B69B4C0A3A1720003C02F2 + + diff --git a/examples/01_twoScreens/Makefile b/examples/01_twoScreens/Makefile new file mode 100644 index 0000000..3d105d6 --- /dev/null +++ b/examples/01_twoScreens/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/examples/01_twoScreens/Project.xcconfig b/examples/01_twoScreens/Project.xcconfig new file mode 100644 index 0000000..cad0fe6 --- /dev/null +++ b/examples/01_twoScreens/Project.xcconfig @@ -0,0 +1,17 @@ +//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 = ../../../.. + +//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_LDFLAGS = $(OF_CORE_LIBS) $(OF_CORE_FRAMEWORKS) +HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) diff --git a/01_twoScreens/addons.make b/examples/01_twoScreens/addons.make similarity index 100% rename from 01_twoScreens/addons.make rename to examples/01_twoScreens/addons.make diff --git a/01_twoScreens/bin/data/.gitkeep b/examples/01_twoScreens/bin/data/.gitkeep similarity index 100% rename from 01_twoScreens/bin/data/.gitkeep rename to examples/01_twoScreens/bin/data/.gitkeep diff --git a/01_twoScreens/bin/data/SmoothEdgeBlend.frag b/examples/01_twoScreens/bin/data/SmoothEdgeBlend.frag similarity index 100% rename from 01_twoScreens/bin/data/SmoothEdgeBlend.frag rename to examples/01_twoScreens/bin/data/SmoothEdgeBlend.frag diff --git a/01_twoScreens/bin/data/SmoothEdgeBlend.vert b/examples/01_twoScreens/bin/data/SmoothEdgeBlend.vert similarity index 100% rename from 01_twoScreens/bin/data/SmoothEdgeBlend.vert rename to examples/01_twoScreens/bin/data/SmoothEdgeBlend.vert diff --git a/examples/01_twoScreens/config.make b/examples/01_twoScreens/config.make new file mode 100644 index 0000000..7eed358 --- /dev/null +++ b/examples/01_twoScreens/config.make @@ -0,0 +1,141 @@ +################################################################################ +# CONFIGURE PROJECT MAKEFILE (optional) +# This file is where we make project specific configurations. +################################################################################ + +################################################################################ +# OF ROOT +# The location of your root openFrameworks installation +# (default) OF_ROOT = ../../../.. +################################################################################ +# 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. +################################################################################ +# 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/02_threeVertical/openFrameworks-Info.plist b/examples/01_twoScreens/openFrameworks-Info.plist similarity index 70% rename from 02_threeVertical/openFrameworks-Info.plist rename to examples/01_twoScreens/openFrameworks-Info.plist index e5db555..8d64d2b 100644 --- a/02_threeVertical/openFrameworks-Info.plist +++ b/examples/01_twoScreens/openFrameworks-Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - com.yourcompany.openFrameworks + cc.openFrameworks.ofapp CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType @@ -16,5 +16,7 @@ ???? CFBundleVersion 1.0 + CFBundleIconFile + ${ICON} diff --git a/01_twoScreens/src/main.cpp b/examples/01_twoScreens/src/main.cpp similarity index 81% rename from 01_twoScreens/src/main.cpp rename to examples/01_twoScreens/src/main.cpp index 2b66fd1..2363a78 100644 --- a/01_twoScreens/src/main.cpp +++ b/examples/01_twoScreens/src/main.cpp @@ -1,16 +1,16 @@ #include "ofMain.h" -#include "testApp.h" +#include "ofApp.h" #include "ofAppGlutWindow.h" //======================================================================== int main( ){ - ofAppGlutWindow window; + ofAppGlutWindow window; ofSetupOpenGL(&window, 1280, 480, 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: - ofRunApp( new testApp()); + ofRunApp( new ofApp()); } diff --git a/01_twoScreens/src/testApp.cpp b/examples/01_twoScreens/src/ofApp.cpp similarity index 51% rename from 01_twoScreens/src/testApp.cpp rename to examples/01_twoScreens/src/ofApp.cpp index ce08ed0..06a0fba 100644 --- a/01_twoScreens/src/testApp.cpp +++ b/examples/01_twoScreens/src/ofApp.cpp @@ -1,76 +1,76 @@ -#include "testApp.h" +#include "ofApp.h" //-------------------------------------------------------------- -void testApp::setup(){ +void ofApp::setup(){ blender.setup(PROJECTOR_WIDTH, PROJECTOR_HEIGHT, PROJECTOR_COUNT, PIXEL_OVERLAP); blender.gamma[0] = .5; blender.blendPower[0] = 1; blender.luminance[0] = 0; - - cout << "canvas size: " << blender.getCanvasWidth() << " x " << blender.getCanvasHeight() << endl; - cout << "display size: " << blender.getDisplayWidth() << " x " << blender.getDisplayHeight() << endl; - - ofSetWindowShape(blender.getDisplayWidth(), blender.getDisplayHeight()); + + cout << "canvas size: " << blender.getCanvasWidth() << " x " << blender.getCanvasHeight() << endl; + cout << "display size: " << blender.getDisplayWidth() << " x " << blender.getDisplayHeight() << endl; + + ofSetWindowShape(blender.getDisplayWidth(), blender.getDisplayHeight()); } //-------------------------------------------------------------- -void testApp::update(){ +void ofApp::update(){ } //-------------------------------------------------------------- -void testApp::draw() { - +void ofApp::draw() { + blender.begin(); //call blender.begin() to draw onto the blendable canvas - { - //light gray backaground - ofSetColor(100, 100, 100); - ofRect(0, 0, blender.getCanvasWidth(), blender.getCanvasHeight()); - - //thick grid lines for blending - ofSetColor(255, 255, 255); - ofSetLineWidth(3); - - //vertical line - for(int i = 0; i <= blender.getCanvasWidth(); i+=40){ - ofLine(i, 0, i, blender.getCanvasHeight()); - } - - //horizontal lines - for(int j = 0; j <= blender.getCanvasHeight(); j+=40){ - ofLine(0, j, blender.getCanvasWidth(), j); - } - - //instructions - ofSetColor(255, 255, 255); - ofRect(10, 10, 300, 100); - ofSetColor(0, 0, 0); - ofDrawBitmapString("SPACE - toggle show blend\n[g/G] - adjust gamma\n[p/P] - adjust blend power\n[l/L] adjust luminance", 15, 35); + { + //light gray backaground + ofSetColor(100, 100, 100); + ofDrawRectangle(0, 0, blender.getCanvasWidth(), blender.getCanvasHeight()); + + //thick grid lines for blending + ofSetColor(255, 255, 255); + ofSetLineWidth(3); + + //vertical line + for(int i = 0; i <= blender.getCanvasWidth(); i+=40){ + ofDrawLine(i, 0, i, blender.getCanvasHeight()); + } + + //horizontal lines + for(int j = 0; j <= blender.getCanvasHeight(); j+=40){ + ofDrawLine(0, j, blender.getCanvasWidth(), j); + } + + //instructions + ofSetColor(255, 255, 255); + ofDrawRectangle(10, 10, 300, 100); + ofSetColor(0, 0, 0); + ofDrawBitmapString("SPACE - toggle show blend\n[g/G] - adjust gamma\n[p/P] - adjust blend power\n[l/L] adjust luminance", 15, 35); } blender.end(); //call when you are finished drawing - - + + //this draws to the main window blender.draw(); } //-------------------------------------------------------------- -void testApp::keyPressed(int key){ +void ofApp::keyPressed(int key){ } //-------------------------------------------------------------- -void testApp::keyReleased(int key){ - +void ofApp::keyReleased(int key){ + //hit spacebar to toggle the blending strip if(key == ' '){ //toggling this variable effects whether the blend strip is shown blender.showBlend = !blender.showBlend; } - + // more info here on what these variables do // http://local.wasp.uwa.edu.au/~pbourke/texture_colour/edgeblend/ - + else if(key == 'g'){ blender.gamma[0] -= .05; } @@ -92,36 +92,36 @@ void testApp::keyReleased(int key){ } //-------------------------------------------------------------- -void testApp::mouseMoved(int x, int y ){ +void ofApp::mouseMoved(int x, int y ){ } //-------------------------------------------------------------- -void testApp::mouseDragged(int x, int y, int button){ +void ofApp::mouseDragged(int x, int y, int button){ } //-------------------------------------------------------------- -void testApp::mousePressed(int x, int y, int button){ +void ofApp::mousePressed(int x, int y, int button){ } //-------------------------------------------------------------- -void testApp::mouseReleased(int x, int y, int button){ +void ofApp::mouseReleased(int x, int y, int button){ } //-------------------------------------------------------------- -void testApp::windowResized(int w, int h){ +void ofApp::windowResized(int w, int h){ } //-------------------------------------------------------------- -void testApp::gotMessage(ofMessage msg){ +void ofApp::gotMessage(ofMessage msg){ } //-------------------------------------------------------------- -void testApp::dragEvent(ofDragInfo dragInfo){ +void ofApp::dragEvent(ofDragInfo dragInfo){ } \ No newline at end of file diff --git a/01_twoScreens/src/testApp.h b/examples/01_twoScreens/src/ofApp.h similarity index 91% rename from 01_twoScreens/src/testApp.h rename to examples/01_twoScreens/src/ofApp.h index 918e905..0a4add2 100644 --- a/01_twoScreens/src/testApp.h +++ b/examples/01_twoScreens/src/ofApp.h @@ -2,7 +2,7 @@ /** * - * testApp.h + * ofApp.h * * ofxProjectorBlend sample project * @@ -25,7 +25,7 @@ #define PROJECTOR_HEIGHT 480 #define PIXEL_OVERLAP 40 -class testApp : public ofBaseApp{ +class ofApp : public ofBaseApp{ public: void setup(); @@ -41,6 +41,6 @@ class testApp : public ofBaseApp{ void windowResized(int w, int h); void dragEvent(ofDragInfo dragInfo); void gotMessage(ofMessage msg); - - ofxProjectorBlend blender; + + ofxProjectorBlend blender; }; diff --git a/01_twoScreens/twoScreens.cbp b/examples/01_twoScreens/twoScreens.cbp similarity index 98% rename from 01_twoScreens/twoScreens.cbp rename to examples/01_twoScreens/twoScreens.cbp index 1c77c75..61cb342 100644 --- a/01_twoScreens/twoScreens.cbp +++ b/examples/01_twoScreens/twoScreens.cbp @@ -115,10 +115,10 @@ - + - + diff --git a/01_twoScreens/twoScreens.vcxproj b/examples/01_twoScreens/twoScreens.vcxproj similarity index 98% rename from 01_twoScreens/twoScreens.vcxproj rename to examples/01_twoScreens/twoScreens.vcxproj index 7bb9978..2564e13 100644 --- a/01_twoScreens/twoScreens.vcxproj +++ b/examples/01_twoScreens/twoScreens.vcxproj @@ -99,11 +99,11 @@ - + - + diff --git a/01_twoScreens/twoScreens.vcxproj.filters b/examples/01_twoScreens/twoScreens.vcxproj.filters similarity index 94% rename from 01_twoScreens/twoScreens.vcxproj.filters rename to examples/01_twoScreens/twoScreens.vcxproj.filters index b7775e9..458f401 100644 --- a/01_twoScreens/twoScreens.vcxproj.filters +++ b/examples/01_twoScreens/twoScreens.vcxproj.filters @@ -1,7 +1,7 @@ - + src @@ -26,7 +26,7 @@ - + src diff --git a/01_twoScreens/twoScreens.vcxproj.user b/examples/01_twoScreens/twoScreens.vcxproj.user similarity index 100% rename from 01_twoScreens/twoScreens.vcxproj.user rename to examples/01_twoScreens/twoScreens.vcxproj.user diff --git a/01_twoScreens/twoScreens.workspace b/examples/01_twoScreens/twoScreens.workspace similarity index 100% rename from 01_twoScreens/twoScreens.workspace rename to examples/01_twoScreens/twoScreens.workspace diff --git a/01_twoScreens/twoScreens.xcodeproj/project.pbxproj b/examples/01_twoScreens/twoScreens.xcodeproj/project.pbxproj similarity index 97% rename from 01_twoScreens/twoScreens.xcodeproj/project.pbxproj rename to examples/01_twoScreens/twoScreens.xcodeproj/project.pbxproj index d681de8..9472459 100644 --- a/01_twoScreens/twoScreens.xcodeproj/project.pbxproj +++ b/examples/01_twoScreens/twoScreens.xcodeproj/project.pbxproj @@ -20,7 +20,7 @@ E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; - E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; }; + E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; }; E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; @@ -77,8 +77,8 @@ E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; E4B69B5B0A3A1756003C02F2 /* twoScreensDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = twoScreensDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; - E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; }; - E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; }; + E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; }; + E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; }; E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; @@ -208,8 +208,8 @@ isa = PBXGroup; children = ( E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, - E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */, - E4B69E1F0A3A1BDC003C02F2 /* testApp.h */, + E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */, + E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */, ); path = src; sourceTree = SOURCE_ROOT; @@ -308,7 +308,7 @@ buildActionMask = 2147483647; files = ( E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, - E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */, + E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */, 95e7ef0d58b6654ee78aa86474800394 /* ofxProjectorBlend.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/01_twoScreens/twoScreens.xcodeproj/xcshareddata/xcschemes/twoScreens Debug.xcscheme b/examples/01_twoScreens/twoScreens.xcodeproj/xcshareddata/xcschemes/twoScreens Debug.xcscheme similarity index 100% rename from 01_twoScreens/twoScreens.xcodeproj/xcshareddata/xcschemes/twoScreens Debug.xcscheme rename to examples/01_twoScreens/twoScreens.xcodeproj/xcshareddata/xcschemes/twoScreens Debug.xcscheme diff --git a/01_twoScreens/twoScreens.xcodeproj/xcshareddata/xcschemes/twoScreens Release.xcscheme b/examples/01_twoScreens/twoScreens.xcodeproj/xcshareddata/xcschemes/twoScreens Release.xcscheme similarity index 100% rename from 01_twoScreens/twoScreens.xcodeproj/xcshareddata/xcschemes/twoScreens Release.xcscheme rename to examples/01_twoScreens/twoScreens.xcodeproj/xcshareddata/xcschemes/twoScreens Release.xcscheme diff --git a/examples/02_threeVertical/02_threeVertical.xcodeproj/project.pbxproj b/examples/02_threeVertical/02_threeVertical.xcodeproj/project.pbxproj new file mode 100644 index 0000000..78aa26e --- /dev/null +++ b/examples/02_threeVertical/02_threeVertical.xcodeproj/project.pbxproj @@ -0,0 +1,851 @@ + + + + archiveVersion + 1 + classes + + objectVersion + 46 + objects + + 07F7389612578F62A483FB79 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxProjectorBlendShader.h + path + ../../../../addons/ofxProjectorBlend/src/ofxProjectorBlendShader.h + sourceTree + SOURCE_ROOT + + F2C101F7371BB7A4EC9AFB0A + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxProjectorBlend.h + path + ../../../../addons/ofxProjectorBlend/src/ofxProjectorBlend.h + sourceTree + SOURCE_ROOT + + 7959A566A37DB3C7C7FFAF32 + + children + + 741B6C295D666B5A935928CA + F2C101F7371BB7A4EC9AFB0A + 07F7389612578F62A483FB79 + + isa + PBXGroup + name + src + sourceTree + <group> + + 59DA350BBB36A982B18D6D2A + + children + + 7959A566A37DB3C7C7FFAF32 + + isa + PBXGroup + name + ofxProjectorBlend + sourceTree + <group> + + 34211D8DB45A6A5C17097816 + + fileRef + 741B6C295D666B5A935928CA + isa + PBXBuildFile + + 741B6C295D666B5A935928CA + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxProjectorBlend.cpp + path + ../../../../addons/ofxProjectorBlend/src/ofxProjectorBlend.cpp + sourceTree + SOURCE_ROOT + + 6948EE371B920CB800B5AC1A + + children + + isa + PBXGroup + name + local_addons + sourceTree + <group> + + 8466F1851C04CA0E00918B1C + + buildActionMask + 12 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + # ---- Code Sign App Package ---- + +# WARNING: You may have to run Clean in Xcode after changing CODE_SIGN_IDENTITY! + +# Verify that $CODE_SIGN_IDENTITY is set +if [ -z "${CODE_SIGN_IDENTITY}" ] ; then +echo "CODE_SIGN_IDENTITY needs to be set for framework code-signing" +exit 0 +fi + +if [ -z "${CODE_SIGN_ENTITLEMENTS}" ] ; then +echo "CODE_SIGN_ENTITLEMENTS needs to be set for framework code-signing!" + +if [ "${CONFIGURATION}" = "Release" ] ; then +exit 1 +else +# Code-signing is optional for non-release builds. +exit 0 +fi +fi + +ITEMS="" + +FRAMEWORKS_DIR="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +echo "$FRAMEWORKS_DIR" +if [ -d "$FRAMEWORKS_DIR" ] ; then +FRAMEWORKS=$(find "${FRAMEWORKS_DIR}" -depth -type d -name "*.framework" -or -name "*.dylib" -or -name "*.bundle" | sed -e "s/\(.*framework\)/\1\/Versions\/A\//") +RESULT=$? +if [[ $RESULT != 0 ]] ; then +exit 1 +fi + +ITEMS="${FRAMEWORKS}" +fi + +LOGINITEMS_DIR="${TARGET_BUILD_DIR}/${CONTENTS_FOLDER_PATH}/Library/LoginItems/" +if [ -d "$LOGINITEMS_DIR" ] ; then +LOGINITEMS=$(find "${LOGINITEMS_DIR}" -depth -type d -name "*.app") +RESULT=$? +if [[ $RESULT != 0 ]] ; then +exit 1 +fi + +ITEMS="${ITEMS}"$'\n'"${LOGINITEMS}" +fi + +# Prefer the expanded name, if available. +CODE_SIGN_IDENTITY_FOR_ITEMS="${EXPANDED_CODE_SIGN_IDENTITY_NAME}" +if [ "${CODE_SIGN_IDENTITY_FOR_ITEMS}" = "" ] ; then +# Fall back to old behavior. +CODE_SIGN_IDENTITY_FOR_ITEMS="${CODE_SIGN_IDENTITY}" +fi + +echo "Identity:" +echo "${CODE_SIGN_IDENTITY_FOR_ITEMS}" + +echo "Entitlements:" +echo "${CODE_SIGN_ENTITLEMENTS}" + +echo "Found:" +echo "${ITEMS}" + +# Change the Internal Field Separator (IFS) so that spaces in paths will not cause problems below. +SAVED_IFS=$IFS +IFS=$(echo -en "\n\b") + +# Loop through all items. +for ITEM in $ITEMS; +do +echo "Signing '${ITEM}'" +codesign --force --verbose --sign "${CODE_SIGN_IDENTITY_FOR_ITEMS}" --entitlements "${CODE_SIGN_ENTITLEMENTS}" "${ITEM}" +RESULT=$? +if [[ $RESULT != 0 ]] ; then +echo "Failed to sign '${ITEM}'." +IFS=$SAVED_IFS +exit 1 +fi +done + +# Restore $IFS. +IFS=$SAVED_IFS + + + BB4B014C10F69532006C3DED + + children + + 59DA350BBB36A982B18D6D2A + + isa + PBXGroup + name + addons + sourceTree + <group> + + E4328143138ABC890047C5CB + + isa + PBXFileReference + lastKnownFileType + wrapper.pb-project + name + openFrameworksLib.xcodeproj + path + ../../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj + sourceTree + SOURCE_ROOT + + E4328144138ABC890047C5CB + + children + + E4328148138ABC890047C5CB + + isa + PBXGroup + name + Products + sourceTree + <group> + + E4328147138ABC890047C5CB + + containerPortal + E4328143138ABC890047C5CB + isa + PBXContainerItemProxy + proxyType + 2 + remoteGlobalIDString + E4B27C1510CBEB8E00536013 + remoteInfo + openFrameworks + + E4328148138ABC890047C5CB + + fileType + archive.ar + isa + PBXReferenceProxy + path + openFrameworksDebug.a + remoteRef + E4328147138ABC890047C5CB + sourceTree + BUILT_PRODUCTS_DIR + + E4328149138ABC9F0047C5CB + + fileRef + E4328148138ABC890047C5CB + isa + PBXBuildFile + + E4B69B4A0A3A1720003C02F2 + + children + + E4B6FCAD0C3E899E008CF71C + E4EB6923138AFD0F00A09F29 + E4B69E1C0A3A1BDC003C02F2 + E4EEC9E9138DF44700A80321 + BB4B014C10F69532006C3DED + 6948EE371B920CB800B5AC1A + E4B69B5B0A3A1756003C02F2 + + isa + PBXGroup + sourceTree + <group> + + E4B69B4C0A3A1720003C02F2 + + attributes + + LastUpgradeCheck + 0600 + + buildConfigurationList + E4B69B4D0A3A1720003C02F2 + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 + isa + PBXProject + knownRegions + + English + Japanese + French + German + + mainGroup + E4B69B4A0A3A1720003C02F2 + productRefGroup + E4B69B4A0A3A1720003C02F2 + projectDirPath + + projectReferences + + + ProductGroup + E4328144138ABC890047C5CB + ProjectRef + E4328143138ABC890047C5CB + + + projectRoot + + targets + + E4B69B5A0A3A1756003C02F2 + + + E4B69B4D0A3A1720003C02F2 + + buildConfigurations + + E4B69B4E0A3A1720003C02F2 + E4B69B4F0A3A1720003C02F2 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + E4B69B4E0A3A1720003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxProjectorBlend/src + + CONFIGURATION_BUILD_DIR + $(SRCROOT)/bin/ + COPY_PHASE_STRIP + NO + DEAD_CODE_STRIPPING + YES + GCC_AUTO_VECTORIZATION + YES + GCC_ENABLE_SSE3_EXTENSIONS + YES + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS + YES + GCC_INLINES_ARE_PRIVATE_EXTERN + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS + YES + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO + NO + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL + NO + GCC_WARN_UNINITIALIZED_AUTOS + NO + GCC_WARN_UNUSED_VALUE + NO + GCC_WARN_UNUSED_VARIABLE + NO + MACOSX_DEPLOYMENT_TARGET + 10.8 + ONLY_ACTIVE_ARCH + YES + OTHER_CPLUSPLUSFLAGS + + -D__MACOSX_CORE__ + -mtune=native + + SDKROOT + macosx + + isa + XCBuildConfiguration + name + Debug + + E4B69B4F0A3A1720003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxProjectorBlend/src + + CONFIGURATION_BUILD_DIR + $(SRCROOT)/bin/ + COPY_PHASE_STRIP + YES + DEAD_CODE_STRIPPING + YES + GCC_AUTO_VECTORIZATION + YES + GCC_ENABLE_SSE3_EXTENSIONS + YES + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS + YES + GCC_INLINES_ARE_PRIVATE_EXTERN + NO + GCC_OPTIMIZATION_LEVEL + 3 + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_UNROLL_LOOPS + YES + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS + YES + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO + NO + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL + NO + GCC_WARN_UNINITIALIZED_AUTOS + NO + GCC_WARN_UNUSED_VALUE + NO + GCC_WARN_UNUSED_VARIABLE + NO + MACOSX_DEPLOYMENT_TARGET + 10.8 + OTHER_CPLUSPLUSFLAGS + + -D__MACOSX_CORE__ + -mtune=native + + SDKROOT + macosx + + isa + XCBuildConfiguration + name + Release + + E4B69B580A3A1756003C02F2 + + buildActionMask + 2147483647 + files + + E4B69E200A3A1BDC003C02F2 + E4B69E210A3A1BDC003C02F2 + 34211D8DB45A6A5C17097816 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E4B69B590A3A1756003C02F2 + + buildActionMask + 2147483647 + files + + E4328149138ABC9F0047C5CB + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E4B69B5A0A3A1756003C02F2 + + buildConfigurationList + E4B69B5F0A3A1757003C02F2 + buildPhases + + E4B69B580A3A1756003C02F2 + E4B69B590A3A1756003C02F2 + E4B6FFFD0C3F9AB9008CF71C + E4C2427710CC5ABF004149E2 + 8466F1851C04CA0E00918B1C + + buildRules + + dependencies + + E4EEB9AC138B136A00A80321 + + isa + PBXNativeTarget + name + 02_threeVertical + productName + myOFApp + productReference + E4B69B5B0A3A1756003C02F2 + productType + com.apple.product-type.application + + E4B69B5B0A3A1756003C02F2 + + explicitFileType + wrapper.application + includeInIndex + 0 + isa + PBXFileReference + path + 02_threeVerticalDebug.app + sourceTree + BUILT_PRODUCTS_DIR + + E4B69B5F0A3A1757003C02F2 + + buildConfigurations + + E4B69B600A3A1757003C02F2 + E4B69B610A3A1757003C02F2 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + E4B69B600A3A1757003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxProjectorBlend/src + + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + NO + FRAMEWORK_SEARCH_PATHS + + $(inherited) + $(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1) + + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 + "$(SRCROOT)/../../../../libs/glut/lib/osx" + 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_NAME + $(TARGET_NAME)Debug + WRAPPER_EXTENSION + app + + isa + XCBuildConfiguration + name + Debug + + E4B69B610A3A1757003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxProjectorBlend/src + + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + YES + FRAMEWORK_SEARCH_PATHS + + $(inherited) + $(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1) + + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 + "$(SRCROOT)/../../../../libs/glut/lib/osx" + 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_NAME + $(TARGET_NAME) + WRAPPER_EXTENSION + app + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + + isa + XCBuildConfiguration + name + Release + + E4B69E1C0A3A1BDC003C02F2 + + children + + E4B69E1D0A3A1BDC003C02F2 + E4B69E1E0A3A1BDC003C02F2 + E4B69E1F0A3A1BDC003C02F2 + + isa + PBXGroup + path + src + sourceTree + SOURCE_ROOT + + E4B69E1D0A3A1BDC003C02F2 + + fileEncoding + 30 + isa + PBXFileReference + lastKnownFileType + sourcecode.cpp.cpp + name + main.cpp + path + src/main.cpp + sourceTree + SOURCE_ROOT + + E4B69E1E0A3A1BDC003C02F2 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofApp.cpp + path + src/ofApp.cpp + sourceTree + SOURCE_ROOT + + E4B69E1F0A3A1BDC003C02F2 + + fileEncoding + 30 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + ofApp.h + path + src/ofApp.h + sourceTree + SOURCE_ROOT + + E4B69E200A3A1BDC003C02F2 + + fileRef + E4B69E1D0A3A1BDC003C02F2 + isa + PBXBuildFile + + E4B69E210A3A1BDC003C02F2 + + fileRef + E4B69E1E0A3A1BDC003C02F2 + isa + PBXBuildFile + + E4B6FCAD0C3E899E008CF71C + + fileEncoding + 30 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + openFrameworks-Info.plist + sourceTree + <group> + + E4B6FFFD0C3F9AB9008CF71C + + buildActionMask + 2147483647 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + mkdir -p "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/" +# Copy default icon file into App/Resources +rsync -aved "$ICON_FILE" "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/" +# Copy bin/data into App/Resources +rsync -avz --exclude='.DS_Store' "${SRCROOT}/bin/data/" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/data/" +# Copy libfmod and change install directory for fmod to run +rsync -aved ../../../../libs/fmodex/lib/osx/libfmodex.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/"; +install_name_tool -change @executable_path/libfmodex.dylib @executable_path/../Frameworks/libfmodex.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME"; +# Copy GLUT framework (must remove for AppStore submissions) +rsync -aved ../../../../libs/glut/lib/osx/GLUT.framework "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/" + + + E4C2427710CC5ABF004149E2 + + buildActionMask + 2147483647 + dstPath + + dstSubfolderSpec + 10 + files + + isa + PBXCopyFilesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E4EB691F138AFCF100A09F29 + + fileEncoding + 4 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + CoreOF.xcconfig + path + ../../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig + sourceTree + SOURCE_ROOT + + E4EB6923138AFD0F00A09F29 + + fileEncoding + 4 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Project.xcconfig + sourceTree + <group> + + E4EEB9AB138B136A00A80321 + + containerPortal + E4328143138ABC890047C5CB + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + E4B27C1410CBEB8E00536013 + remoteInfo + openFrameworks + + E4EEB9AC138B136A00A80321 + + isa + PBXTargetDependency + name + openFrameworks + targetProxy + E4EEB9AB138B136A00A80321 + + E4EEC9E9138DF44700A80321 + + children + + E4EB691F138AFCF100A09F29 + E4328143138ABC890047C5CB + + isa + PBXGroup + name + openFrameworks + sourceTree + <group> + + + rootObject + E4B69B4C0A3A1720003C02F2 + + diff --git a/examples/02_threeVertical/Makefile b/examples/02_threeVertical/Makefile new file mode 100644 index 0000000..3d105d6 --- /dev/null +++ b/examples/02_threeVertical/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/examples/02_threeVertical/Project.xcconfig b/examples/02_threeVertical/Project.xcconfig new file mode 100644 index 0000000..cad0fe6 --- /dev/null +++ b/examples/02_threeVertical/Project.xcconfig @@ -0,0 +1,17 @@ +//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 = ../../../.. + +//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_LDFLAGS = $(OF_CORE_LIBS) $(OF_CORE_FRAMEWORKS) +HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) diff --git a/02_threeVertical/addons.make b/examples/02_threeVertical/addons.make similarity index 100% rename from 02_threeVertical/addons.make rename to examples/02_threeVertical/addons.make diff --git a/02_threeVertical/bin/data/.gitkeep b/examples/02_threeVertical/bin/data/.gitkeep similarity index 100% rename from 02_threeVertical/bin/data/.gitkeep rename to examples/02_threeVertical/bin/data/.gitkeep diff --git a/examples/02_threeVertical/config.make b/examples/02_threeVertical/config.make new file mode 100644 index 0000000..7eed358 --- /dev/null +++ b/examples/02_threeVertical/config.make @@ -0,0 +1,141 @@ +################################################################################ +# CONFIGURE PROJECT MAKEFILE (optional) +# This file is where we make project specific configurations. +################################################################################ + +################################################################################ +# OF ROOT +# The location of your root openFrameworks installation +# (default) OF_ROOT = ../../../.. +################################################################################ +# 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. +################################################################################ +# 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/01_twoScreens/openFrameworks-Info.plist b/examples/02_threeVertical/openFrameworks-Info.plist similarity index 70% rename from 01_twoScreens/openFrameworks-Info.plist rename to examples/02_threeVertical/openFrameworks-Info.plist index e5db555..8d64d2b 100644 --- a/01_twoScreens/openFrameworks-Info.plist +++ b/examples/02_threeVertical/openFrameworks-Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - com.yourcompany.openFrameworks + cc.openFrameworks.ofapp CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType @@ -16,5 +16,7 @@ ???? CFBundleVersion 1.0 + CFBundleIconFile + ${ICON} diff --git a/04_blendClown/src/main.cpp b/examples/02_threeVertical/src/main.cpp similarity index 81% rename from 04_blendClown/src/main.cpp rename to examples/02_threeVertical/src/main.cpp index 6a32c6a..aca145e 100644 --- a/04_blendClown/src/main.cpp +++ b/examples/02_threeVertical/src/main.cpp @@ -1,16 +1,16 @@ #include "ofMain.h" -#include "testApp.h" +#include "ofApp.h" #include "ofAppGlutWindow.h" //======================================================================== int main( ){ - ofAppGlutWindow window; + ofAppGlutWindow window; ofSetupOpenGL(&window, 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: - ofRunApp( new testApp()); + ofRunApp( new ofApp()); } diff --git a/examples/02_threeVertical/src/ofApp.cpp b/examples/02_threeVertical/src/ofApp.cpp new file mode 100644 index 0000000..04babe9 --- /dev/null +++ b/examples/02_threeVertical/src/ofApp.cpp @@ -0,0 +1,153 @@ +#include "ofApp.h" + +//-------------------------------------------------------------- +void ofApp::setup(){ + ofSetFrameRate(60); + ofSetVerticalSync(true); + + + blender.setup(640, 480, 3, 20, ofxProjectorBlend_Vertical); + blender.setWindowToDisplaySize(); + + radius = 40; + pos.x = ofRandom(radius, blender.getCanvasWidth()-radius); + pos.y = ofRandom(radius, blender.getCanvasHeight()-radius); + vel.set(10, 10); +} + +//-------------------------------------------------------------- +void ofApp::update(){ + + pos += vel; + if(pos.x > blender.getCanvasWidth()-radius) { + pos.x = blender.getCanvasWidth()-radius; + vel.x *= -1; + } + if(pos.x < radius) { + pos.x = radius; + vel.x *= -1; + } + if(pos.y > blender.getCanvasHeight()-radius) { + pos.y = blender.getCanvasHeight()-radius; + vel.y *= -1; + } + if(pos.y < radius) { + pos.y = radius; + vel.y *= -1; + } +} + +//-------------------------------------------------------------- +void ofApp::draw(){ + blender.begin(); //call blender.begin() to draw onto the blendable canvas + { + //light gray backaground + ofSetColor(100, 100, 100); + ofDrawRectangle(0, 0, blender.getCanvasWidth(), blender.getCanvasHeight()); + + //thick grid lines for blending + ofSetColor(255, 255, 255); + ofSetLineWidth(3); + + //vertical line + for(int i = 0; i <= blender.getCanvasWidth(); i+=40){ + ofDrawLine(i, 0, i, blender.getCanvasHeight()); + } + + //horizontal lines + for(int j = 0; j <= blender.getCanvasHeight(); j+=40){ + ofDrawLine(0, j, blender.getCanvasWidth(), j); + } + + ofSetColor(255, 0, 0); + ofDrawCircle(pos, radius); + + //instructions + ofSetColor(255, 255, 255); + ofDrawRectangle(10, 10, 300, 100); + ofSetColor(0, 0, 0); + ofDrawBitmapString("SPACE - toggle show blend\n[g/G] - adjust gamma\n[p/P] - adjust blend power\n[l/L] adjust luminance", 15, 35); + } + blender.end(); //call when you are finished drawing + + + //this draws to the main window + blender.draw(); +} + +//-------------------------------------------------------------- +void ofApp::keyPressed(int key){ + +} + +//-------------------------------------------------------------- +void ofApp::keyReleased(int key){ + //hit spacebar to toggle the blending strip + if(key == ' '){ + //toggling this variable effects whether the blend strip is shown + blender.showBlend = !blender.showBlend; + } + + // more info here on what these variables do + // http://local.wasp.uwa.edu.au/~pbourke/texture_colour/edgeblend/ + + else if(key == 'g'){ + blender.gamma[0] -= .05; + blender.gamma[1] -= .05; + } + else if(key == 'G'){ + blender.gamma[0] += .05; + blender.gamma[1] += .05; + } + else if(key == 'l'){ + blender.luminance[0] -= .05; + blender.luminance[1] -= .05; + } + else if(key == 'L'){ + blender.luminance[0] += .05; + blender.luminance[1] += .05; + } + else if(key == 'p'){ + blender.blendPower[0] -= .05; + blender.blendPower[1] -= .05; + } + else if(key == 'P'){ + blender.blendPower[0] += .05; + blender.blendPower[1] += .05; + } +} + +//-------------------------------------------------------------- +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::windowResized(int w, int h){ + +} + +//-------------------------------------------------------------- +void ofApp::gotMessage(ofMessage msg){ + +} + +//-------------------------------------------------------------- +void ofApp::dragEvent(ofDragInfo dragInfo){ + +} \ No newline at end of file diff --git a/02_threeVertical/src/testApp.h b/examples/02_threeVertical/src/ofApp.h similarity index 79% rename from 02_threeVertical/src/testApp.h rename to examples/02_threeVertical/src/ofApp.h index 3406610..5e7dbd1 100644 --- a/02_threeVertical/src/testApp.h +++ b/examples/02_threeVertical/src/ofApp.h @@ -3,7 +3,7 @@ #include "ofMain.h" #include "ofxProjectorBlend.h" -class testApp : public ofBaseApp{ +class ofApp : public ofBaseApp{ public: void setup(); @@ -19,8 +19,8 @@ class testApp : public ofBaseApp{ void windowResized(int w, int h); void dragEvent(ofDragInfo dragInfo); void gotMessage(ofMessage msg); - - ofxProjectorBlend blender; - ofPoint pos, vel; - float radius; + + ofxProjectorBlend blender; + ofPoint pos, vel; + float radius; }; diff --git a/02_threeVertical/threeVertical.cbp b/examples/02_threeVertical/threeVertical.cbp similarity index 98% rename from 02_threeVertical/threeVertical.cbp rename to examples/02_threeVertical/threeVertical.cbp index 011eab5..aeb82d7 100644 --- a/02_threeVertical/threeVertical.cbp +++ b/examples/02_threeVertical/threeVertical.cbp @@ -115,10 +115,10 @@ - + - + diff --git a/02_threeVertical/threeVertical.sln b/examples/02_threeVertical/threeVertical.sln similarity index 100% rename from 02_threeVertical/threeVertical.sln rename to examples/02_threeVertical/threeVertical.sln diff --git a/02_threeVertical/threeVertical.vcxproj b/examples/02_threeVertical/threeVertical.vcxproj similarity index 98% rename from 02_threeVertical/threeVertical.vcxproj rename to examples/02_threeVertical/threeVertical.vcxproj index 16aae3a..3c1ed65 100644 --- a/02_threeVertical/threeVertical.vcxproj +++ b/examples/02_threeVertical/threeVertical.vcxproj @@ -99,11 +99,11 @@ - + - + diff --git a/02_threeVertical/threeVertical.vcxproj.filters b/examples/02_threeVertical/threeVertical.vcxproj.filters similarity index 94% rename from 02_threeVertical/threeVertical.vcxproj.filters rename to examples/02_threeVertical/threeVertical.vcxproj.filters index b7775e9..458f401 100644 --- a/02_threeVertical/threeVertical.vcxproj.filters +++ b/examples/02_threeVertical/threeVertical.vcxproj.filters @@ -1,7 +1,7 @@ - + src @@ -26,7 +26,7 @@ - + src diff --git a/02_threeVertical/threeVertical.vcxproj.user b/examples/02_threeVertical/threeVertical.vcxproj.user similarity index 100% rename from 02_threeVertical/threeVertical.vcxproj.user rename to examples/02_threeVertical/threeVertical.vcxproj.user diff --git a/02_threeVertical/threeVertical.workspace b/examples/02_threeVertical/threeVertical.workspace similarity index 100% rename from 02_threeVertical/threeVertical.workspace rename to examples/02_threeVertical/threeVertical.workspace diff --git a/02_threeVertical/threeVertical.xcodeproj/project.pbxproj b/examples/02_threeVertical/threeVertical.xcodeproj/project.pbxproj similarity index 97% rename from 02_threeVertical/threeVertical.xcodeproj/project.pbxproj rename to examples/02_threeVertical/threeVertical.xcodeproj/project.pbxproj index 6d21f6f..e5efe8c 100644 --- a/02_threeVertical/threeVertical.xcodeproj/project.pbxproj +++ b/examples/02_threeVertical/threeVertical.xcodeproj/project.pbxproj @@ -20,7 +20,7 @@ E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; - E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; }; + E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; }; E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; @@ -76,8 +76,8 @@ E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; E4B69B5B0A3A1756003C02F2 /* threeVerticalDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = threeVerticalDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; - E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; }; - E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; }; + E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; }; + E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; }; E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; @@ -208,8 +208,8 @@ isa = PBXGroup; children = ( E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, - E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */, - E4B69E1F0A3A1BDC003C02F2 /* testApp.h */, + E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */, + E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */, ); path = src; sourceTree = SOURCE_ROOT; @@ -308,7 +308,7 @@ buildActionMask = 2147483647; files = ( E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, - E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */, + E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */, 95e7ef0d58b6654ee78aa86474800394 /* ofxProjectorBlend.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/02_threeVertical/threeVertical.xcodeproj/xcshareddata/xcschemes/threeVertical Debug.xcscheme b/examples/02_threeVertical/threeVertical.xcodeproj/xcshareddata/xcschemes/threeVertical Debug.xcscheme similarity index 100% rename from 02_threeVertical/threeVertical.xcodeproj/xcshareddata/xcschemes/threeVertical Debug.xcscheme rename to examples/02_threeVertical/threeVertical.xcodeproj/xcshareddata/xcschemes/threeVertical Debug.xcscheme diff --git a/02_threeVertical/threeVertical.xcodeproj/xcshareddata/xcschemes/threeVertical Release.xcscheme b/examples/02_threeVertical/threeVertical.xcodeproj/xcshareddata/xcschemes/threeVertical Release.xcscheme similarity index 100% rename from 02_threeVertical/threeVertical.xcodeproj/xcshareddata/xcschemes/threeVertical Release.xcscheme rename to examples/02_threeVertical/threeVertical.xcodeproj/xcshareddata/xcschemes/threeVertical Release.xcscheme diff --git a/examples/03_guiControls/03_guiControls.xcodeproj/project.pbxproj b/examples/03_guiControls/03_guiControls.xcodeproj/project.pbxproj new file mode 100644 index 0000000..c539cd4 --- /dev/null +++ b/examples/03_guiControls/03_guiControls.xcodeproj/project.pbxproj @@ -0,0 +1,1807 @@ + + + + archiveVersion + 1 + classes + + objectVersion + 46 + objects + + 8AAF2BA4AFCBEC334841B989 + + fileRef + B0FB861B0D843DF212503B18 + isa + PBXBuildFile + + B0FB861B0D843DF212503B18 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + tinyxmlparser.cpp + path + ../../../../addons/ofxXmlSettings/libs/tinyxmlparser.cpp + sourceTree + SOURCE_ROOT + + 28DCB9949680410908EFD4D5 + + fileRef + 8AED12DBC5DC04739E95CD26 + isa + PBXBuildFile + + 8AED12DBC5DC04739E95CD26 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + tinyxmlerror.cpp + path + ../../../../addons/ofxXmlSettings/libs/tinyxmlerror.cpp + sourceTree + SOURCE_ROOT + + 8FBDBA8D2DCA49DC504F1850 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + tinyxml.h + path + ../../../../addons/ofxXmlSettings/libs/tinyxml.h + sourceTree + SOURCE_ROOT + + 6E54289412D2D94F45A05113 + + children + + 126B1BBACED427BD4F54BC45 + 8FBDBA8D2DCA49DC504F1850 + 8AED12DBC5DC04739E95CD26 + B0FB861B0D843DF212503B18 + + isa + PBXGroup + name + libs + sourceTree + <group> + + B8A4986AE3CFD44755D311C7 + + fileRef + 126B1BBACED427BD4F54BC45 + isa + PBXBuildFile + + 126B1BBACED427BD4F54BC45 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + tinyxml.cpp + path + ../../../../addons/ofxXmlSettings/libs/tinyxml.cpp + sourceTree + SOURCE_ROOT + + 6A7153E0F5EFF5622F1EB21F + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxXmlSettings.h + path + ../../../../addons/ofxXmlSettings/src/ofxXmlSettings.h + sourceTree + SOURCE_ROOT + + 6ECEF0D76BC33727823EADFF + + children + + BA80450995764F8FABAB1604 + 6A7153E0F5EFF5622F1EB21F + + isa + PBXGroup + name + src + sourceTree + <group> + + 1F4FB5C423662B96ADFDCC0B + + children + + 6ECEF0D76BC33727823EADFF + 6E54289412D2D94F45A05113 + + isa + PBXGroup + name + ofxXmlSettings + sourceTree + <group> + + 40755491CDDD7249B25A1F2D + + fileRef + BA80450995764F8FABAB1604 + isa + PBXBuildFile + + BA80450995764F8FABAB1604 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxXmlSettings.cpp + path + ../../../../addons/ofxXmlSettings/src/ofxXmlSettings.cpp + sourceTree + SOURCE_ROOT + + DC050E608B186995E2B010E4 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiValueControl.h + path + ../../../../addons/ofxSimpleGuiToo/src/ofxSimpleGuiValueControl.h + sourceTree + SOURCE_ROOT + + EBE754484097857C8FAB6A71 + + fileRef + 062C08C4581208FE016C03F9 + isa + PBXBuildFile + + 062C08C4581208FE016C03F9 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiValueControl.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/ofxSimpleGuiValueControl.cpp + sourceTree + SOURCE_ROOT + + 4DC3B914A0D98BB55508A044 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiToo.h + path + ../../../../addons/ofxSimpleGuiToo/src/ofxSimpleGuiToo.h + sourceTree + SOURCE_ROOT + + 6083BC7EFA07757211291411 + + fileRef + 399FA15F6D71456D3D728D3D + isa + PBXBuildFile + + 399FA15F6D71456D3D728D3D + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiToo.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/ofxSimpleGuiToo.cpp + sourceTree + SOURCE_ROOT + + 61780CADF5FE608F978E102D + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiPage.h + path + ../../../../addons/ofxSimpleGuiToo/src/ofxSimpleGuiPage.h + sourceTree + SOURCE_ROOT + + 3C46D5EB308C02525702C8C8 + + fileRef + 5866CDE679DD17AEA6FFB38F + isa + PBXBuildFile + + 5866CDE679DD17AEA6FFB38F + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiPage.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/ofxSimpleGuiPage.cpp + sourceTree + SOURCE_ROOT + + 2F41A1A9A4A5F6E3B1A61B31 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiIncludes.h + path + ../../../../addons/ofxSimpleGuiToo/src/ofxSimpleGuiIncludes.h + sourceTree + SOURCE_ROOT + + 4EC2E578CB45184C863FF13F + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiControl.h + path + ../../../../addons/ofxSimpleGuiToo/src/ofxSimpleGuiControl.h + sourceTree + SOURCE_ROOT + + F93EA99C106A5F3B732619E6 + + fileRef + 7CB7513FC3A98320ED56C6A8 + isa + PBXBuildFile + + 7CB7513FC3A98320ED56C6A8 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiControl.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/ofxSimpleGuiControl.cpp + sourceTree + SOURCE_ROOT + + 5EB12288F5712E9505F222D5 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiConfig.h + path + ../../../../addons/ofxSimpleGuiToo/src/ofxSimpleGuiConfig.h + sourceTree + SOURCE_ROOT + + 8FE64D2C14BEBA9788D31120 + + fileRef + 51C7AF65411D157C751FFAB9 + isa + PBXBuildFile + + 51C7AF65411D157C751FFAB9 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiConfig.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/ofxSimpleGuiConfig.cpp + sourceTree + SOURCE_ROOT + + 4630109B0A267AF6B133829A + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiToggle.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiToggle.h + sourceTree + SOURCE_ROOT + + D0521634FEE52412D6CD7432 + + fileRef + 55F83AC604A395977050FF57 + isa + PBXBuildFile + + 55F83AC604A395977050FF57 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiToggle.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiToggle.cpp + sourceTree + SOURCE_ROOT + + 633709F5962684A66CADF2EB + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiTitle.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiTitle.h + sourceTree + SOURCE_ROOT + + 1D2DDEDE8D5A1B0DB3034BF5 + + fileRef + C4C065958BE64E59D32E3F0F + isa + PBXBuildFile + + C4C065958BE64E59D32E3F0F + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiTitle.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiTitle.cpp + sourceTree + SOURCE_ROOT + + AC565B741BD89261893703C3 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiSliderInt.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiSliderInt.h + sourceTree + SOURCE_ROOT + + B6CA7DC0F5D589F5B5C144D4 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiSliderFloat.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiSliderFloat.h + sourceTree + SOURCE_ROOT + + BF851714710FC1957EEC1B90 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiSliderBase.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiSliderBase.h + sourceTree + SOURCE_ROOT + + E8C747273795B61BD7CE7360 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiSlider2d.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiSlider2d.h + sourceTree + SOURCE_ROOT + + 0918CFF30E07EBE50EF71853 + + fileRef + 79653B84BFA19B4806E662C1 + isa + PBXBuildFile + + 79653B84BFA19B4806E662C1 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiSlider2d.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiSlider2d.cpp + sourceTree + SOURCE_ROOT + + ECA1CDF257B5C3300092C478 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiQuadWarp.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiQuadWarp.h + sourceTree + SOURCE_ROOT + + A147A50AC78BF55A3C211039 + + fileRef + 6963DA5E7F162043BC01E04A + isa + PBXBuildFile + + 6963DA5E7F162043BC01E04A + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiQuadWarp.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiQuadWarp.cpp + sourceTree + SOURCE_ROOT + + 3083A2BBBAF2BB624A9CA40C + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiMovieSlider.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiMovieSlider.h + sourceTree + SOURCE_ROOT + + AA8310F90D6464E313400238 + + fileRef + 48CCFE640EABD8D8CD2F0555 + isa + PBXBuildFile + + 48CCFE640EABD8D8CD2F0555 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiMovieSlider.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiMovieSlider.cpp + sourceTree + SOURCE_ROOT + + 9F851D50ACE7D48222617E65 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiFPSCounter.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiFPSCounter.h + sourceTree + SOURCE_ROOT + + 04362EEC77DE401B1C8CFE8B + + fileRef + D36292274ED4B9AE2158EA3C + isa + PBXBuildFile + + D36292274ED4B9AE2158EA3C + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiFPSCounter.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiFPSCounter.cpp + sourceTree + SOURCE_ROOT + + F4CE36D613DBA55D9E1425C5 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiContent.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiContent.h + sourceTree + SOURCE_ROOT + + 466588838B7DAEBE9A80D503 + + fileRef + B3FBC3CF96CD5566C31C2DB1 + isa + PBXBuildFile + + B3FBC3CF96CD5566C31C2DB1 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiContent.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiContent.cpp + sourceTree + SOURCE_ROOT + + E9FB9B15127AC7502880A392 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiComboBox.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiComboBox.h + sourceTree + SOURCE_ROOT + + 5FCD8619B50E6F7295A29E27 + + fileRef + 2F8E1B6977612200373B4234 + isa + PBXBuildFile + + 2F8E1B6977612200373B4234 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiComboBox.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiComboBox.cpp + sourceTree + SOURCE_ROOT + + 39915084CED2B34126060391 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiColorPicker.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiColorPicker.h + sourceTree + SOURCE_ROOT + + 7F4118224FD3204590A39920 + + fileRef + 054A4F0B89DA084B19A66415 + isa + PBXBuildFile + + 054A4F0B89DA084B19A66415 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiColorPicker.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiColorPicker.cpp + sourceTree + SOURCE_ROOT + + D7C1937D564C98A365014963 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiButton.h + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiButton.h + sourceTree + SOURCE_ROOT + + 3FFCD8CDE089EA259D68F78C + + children + + 2699E472778A4F69C6B14AF1 + D7C1937D564C98A365014963 + 054A4F0B89DA084B19A66415 + 39915084CED2B34126060391 + 2F8E1B6977612200373B4234 + E9FB9B15127AC7502880A392 + B3FBC3CF96CD5566C31C2DB1 + F4CE36D613DBA55D9E1425C5 + D36292274ED4B9AE2158EA3C + 9F851D50ACE7D48222617E65 + 48CCFE640EABD8D8CD2F0555 + 3083A2BBBAF2BB624A9CA40C + 6963DA5E7F162043BC01E04A + ECA1CDF257B5C3300092C478 + 79653B84BFA19B4806E662C1 + E8C747273795B61BD7CE7360 + BF851714710FC1957EEC1B90 + B6CA7DC0F5D589F5B5C144D4 + AC565B741BD89261893703C3 + C4C065958BE64E59D32E3F0F + 633709F5962684A66CADF2EB + 55F83AC604A395977050FF57 + 4630109B0A267AF6B133829A + + isa + PBXGroup + name + Controls + sourceTree + <group> + + 262847AC80BA7F38F6230B84 + + children + + 3FFCD8CDE089EA259D68F78C + 51C7AF65411D157C751FFAB9 + 5EB12288F5712E9505F222D5 + 7CB7513FC3A98320ED56C6A8 + 4EC2E578CB45184C863FF13F + 2F41A1A9A4A5F6E3B1A61B31 + 5866CDE679DD17AEA6FFB38F + 61780CADF5FE608F978E102D + 399FA15F6D71456D3D728D3D + 4DC3B914A0D98BB55508A044 + 062C08C4581208FE016C03F9 + DC050E608B186995E2B010E4 + + isa + PBXGroup + name + src + sourceTree + <group> + + CFDD139FA301CD9D0914D00F + + children + + 262847AC80BA7F38F6230B84 + + isa + PBXGroup + name + ofxSimpleGuiToo + sourceTree + <group> + + 1E4BE9C41E9BD10D0B5A6BFE + + fileRef + 2699E472778A4F69C6B14AF1 + isa + PBXBuildFile + + 2699E472778A4F69C6B14AF1 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxSimpleGuiButton.cpp + path + ../../../../addons/ofxSimpleGuiToo/src/Controls/ofxSimpleGuiButton.cpp + sourceTree + SOURCE_ROOT + + 07F7389612578F62A483FB79 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxProjectorBlendShader.h + path + ../../../../addons/ofxProjectorBlend/src/ofxProjectorBlendShader.h + sourceTree + SOURCE_ROOT + + F2C101F7371BB7A4EC9AFB0A + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxProjectorBlend.h + path + ../../../../addons/ofxProjectorBlend/src/ofxProjectorBlend.h + sourceTree + SOURCE_ROOT + + 7959A566A37DB3C7C7FFAF32 + + children + + 741B6C295D666B5A935928CA + F2C101F7371BB7A4EC9AFB0A + 07F7389612578F62A483FB79 + + isa + PBXGroup + name + src + sourceTree + <group> + + 59DA350BBB36A982B18D6D2A + + children + + 7959A566A37DB3C7C7FFAF32 + + isa + PBXGroup + name + ofxProjectorBlend + sourceTree + <group> + + 34211D8DB45A6A5C17097816 + + fileRef + 741B6C295D666B5A935928CA + isa + PBXBuildFile + + 741B6C295D666B5A935928CA + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxProjectorBlend.cpp + path + ../../../../addons/ofxProjectorBlend/src/ofxProjectorBlend.cpp + sourceTree + SOURCE_ROOT + + 7BF4D55AE76DEE7E491528E9 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxMSAInteractiveObject.h + path + ../../../../addons/ofxMSAInteractiveObject/src/ofxMSAInteractiveObject.h + sourceTree + SOURCE_ROOT + + 082C54A9DF8AC3F426D5FFF4 + + children + + 0CF41CBF87B876DE0746AB0F + 7BF4D55AE76DEE7E491528E9 + + isa + PBXGroup + name + src + sourceTree + <group> + + 734AC65571ADBB395C126C1A + + children + + 082C54A9DF8AC3F426D5FFF4 + + isa + PBXGroup + name + ofxMSAInteractiveObject + sourceTree + <group> + + 6B19F9C7EFB17DFF653D6901 + + fileRef + 0CF41CBF87B876DE0746AB0F + isa + PBXBuildFile + + 0CF41CBF87B876DE0746AB0F + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxMSAInteractiveObject.cpp + path + ../../../../addons/ofxMSAInteractiveObject/src/ofxMSAInteractiveObject.cpp + sourceTree + SOURCE_ROOT + + 6948EE371B920CB800B5AC1A + + children + + isa + PBXGroup + name + local_addons + sourceTree + <group> + + 8466F1851C04CA0E00918B1C + + buildActionMask + 12 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + # ---- Code Sign App Package ---- + +# WARNING: You may have to run Clean in Xcode after changing CODE_SIGN_IDENTITY! + +# Verify that $CODE_SIGN_IDENTITY is set +if [ -z "${CODE_SIGN_IDENTITY}" ] ; then +echo "CODE_SIGN_IDENTITY needs to be set for framework code-signing" +exit 0 +fi + +if [ -z "${CODE_SIGN_ENTITLEMENTS}" ] ; then +echo "CODE_SIGN_ENTITLEMENTS needs to be set for framework code-signing!" + +if [ "${CONFIGURATION}" = "Release" ] ; then +exit 1 +else +# Code-signing is optional for non-release builds. +exit 0 +fi +fi + +ITEMS="" + +FRAMEWORKS_DIR="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +echo "$FRAMEWORKS_DIR" +if [ -d "$FRAMEWORKS_DIR" ] ; then +FRAMEWORKS=$(find "${FRAMEWORKS_DIR}" -depth -type d -name "*.framework" -or -name "*.dylib" -or -name "*.bundle" | sed -e "s/\(.*framework\)/\1\/Versions\/A\//") +RESULT=$? +if [[ $RESULT != 0 ]] ; then +exit 1 +fi + +ITEMS="${FRAMEWORKS}" +fi + +LOGINITEMS_DIR="${TARGET_BUILD_DIR}/${CONTENTS_FOLDER_PATH}/Library/LoginItems/" +if [ -d "$LOGINITEMS_DIR" ] ; then +LOGINITEMS=$(find "${LOGINITEMS_DIR}" -depth -type d -name "*.app") +RESULT=$? +if [[ $RESULT != 0 ]] ; then +exit 1 +fi + +ITEMS="${ITEMS}"$'\n'"${LOGINITEMS}" +fi + +# Prefer the expanded name, if available. +CODE_SIGN_IDENTITY_FOR_ITEMS="${EXPANDED_CODE_SIGN_IDENTITY_NAME}" +if [ "${CODE_SIGN_IDENTITY_FOR_ITEMS}" = "" ] ; then +# Fall back to old behavior. +CODE_SIGN_IDENTITY_FOR_ITEMS="${CODE_SIGN_IDENTITY}" +fi + +echo "Identity:" +echo "${CODE_SIGN_IDENTITY_FOR_ITEMS}" + +echo "Entitlements:" +echo "${CODE_SIGN_ENTITLEMENTS}" + +echo "Found:" +echo "${ITEMS}" + +# Change the Internal Field Separator (IFS) so that spaces in paths will not cause problems below. +SAVED_IFS=$IFS +IFS=$(echo -en "\n\b") + +# Loop through all items. +for ITEM in $ITEMS; +do +echo "Signing '${ITEM}'" +codesign --force --verbose --sign "${CODE_SIGN_IDENTITY_FOR_ITEMS}" --entitlements "${CODE_SIGN_ENTITLEMENTS}" "${ITEM}" +RESULT=$? +if [[ $RESULT != 0 ]] ; then +echo "Failed to sign '${ITEM}'." +IFS=$SAVED_IFS +exit 1 +fi +done + +# Restore $IFS. +IFS=$SAVED_IFS + + + BB4B014C10F69532006C3DED + + children + + 734AC65571ADBB395C126C1A + 59DA350BBB36A982B18D6D2A + CFDD139FA301CD9D0914D00F + 1F4FB5C423662B96ADFDCC0B + + isa + PBXGroup + name + addons + sourceTree + <group> + + E4328143138ABC890047C5CB + + isa + PBXFileReference + lastKnownFileType + wrapper.pb-project + name + openFrameworksLib.xcodeproj + path + ../../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj + sourceTree + SOURCE_ROOT + + E4328144138ABC890047C5CB + + children + + E4328148138ABC890047C5CB + + isa + PBXGroup + name + Products + sourceTree + <group> + + E4328147138ABC890047C5CB + + containerPortal + E4328143138ABC890047C5CB + isa + PBXContainerItemProxy + proxyType + 2 + remoteGlobalIDString + E4B27C1510CBEB8E00536013 + remoteInfo + openFrameworks + + E4328148138ABC890047C5CB + + fileType + archive.ar + isa + PBXReferenceProxy + path + openFrameworksDebug.a + remoteRef + E4328147138ABC890047C5CB + sourceTree + BUILT_PRODUCTS_DIR + + E4328149138ABC9F0047C5CB + + fileRef + E4328148138ABC890047C5CB + isa + PBXBuildFile + + E4B69B4A0A3A1720003C02F2 + + children + + E4B6FCAD0C3E899E008CF71C + E4EB6923138AFD0F00A09F29 + E4B69E1C0A3A1BDC003C02F2 + E4EEC9E9138DF44700A80321 + BB4B014C10F69532006C3DED + 6948EE371B920CB800B5AC1A + E4B69B5B0A3A1756003C02F2 + + isa + PBXGroup + sourceTree + <group> + + E4B69B4C0A3A1720003C02F2 + + attributes + + LastUpgradeCheck + 0600 + + buildConfigurationList + E4B69B4D0A3A1720003C02F2 + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 + isa + PBXProject + knownRegions + + English + Japanese + French + German + + mainGroup + E4B69B4A0A3A1720003C02F2 + productRefGroup + E4B69B4A0A3A1720003C02F2 + projectDirPath + + projectReferences + + + ProductGroup + E4328144138ABC890047C5CB + ProjectRef + E4328143138ABC890047C5CB + + + projectRoot + + targets + + E4B69B5A0A3A1756003C02F2 + + + E4B69B4D0A3A1720003C02F2 + + buildConfigurations + + E4B69B4E0A3A1720003C02F2 + E4B69B4F0A3A1720003C02F2 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + E4B69B4E0A3A1720003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxMSAInteractiveObject/src + ../../../../addons/ofxProjectorBlend/src + ../../../../addons/ofxSimpleGuiToo/src + ../../../../addons/ofxSimpleGuiToo/src/Controls + ../../../../addons/ofxXmlSettings/libs + ../../../../addons/ofxXmlSettings/src + + CONFIGURATION_BUILD_DIR + $(SRCROOT)/bin/ + COPY_PHASE_STRIP + NO + DEAD_CODE_STRIPPING + YES + GCC_AUTO_VECTORIZATION + YES + GCC_ENABLE_SSE3_EXTENSIONS + YES + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS + YES + GCC_INLINES_ARE_PRIVATE_EXTERN + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS + YES + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO + NO + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL + NO + GCC_WARN_UNINITIALIZED_AUTOS + NO + GCC_WARN_UNUSED_VALUE + NO + GCC_WARN_UNUSED_VARIABLE + NO + MACOSX_DEPLOYMENT_TARGET + 10.8 + ONLY_ACTIVE_ARCH + YES + OTHER_CPLUSPLUSFLAGS + + -D__MACOSX_CORE__ + -mtune=native + + SDKROOT + macosx + + isa + XCBuildConfiguration + name + Debug + + E4B69B4F0A3A1720003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxMSAInteractiveObject/src + ../../../../addons/ofxProjectorBlend/src + ../../../../addons/ofxSimpleGuiToo/src + ../../../../addons/ofxSimpleGuiToo/src/Controls + ../../../../addons/ofxXmlSettings/libs + ../../../../addons/ofxXmlSettings/src + + CONFIGURATION_BUILD_DIR + $(SRCROOT)/bin/ + COPY_PHASE_STRIP + YES + DEAD_CODE_STRIPPING + YES + GCC_AUTO_VECTORIZATION + YES + GCC_ENABLE_SSE3_EXTENSIONS + YES + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS + YES + GCC_INLINES_ARE_PRIVATE_EXTERN + NO + GCC_OPTIMIZATION_LEVEL + 3 + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_UNROLL_LOOPS + YES + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS + YES + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO + NO + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL + NO + GCC_WARN_UNINITIALIZED_AUTOS + NO + GCC_WARN_UNUSED_VALUE + NO + GCC_WARN_UNUSED_VARIABLE + NO + MACOSX_DEPLOYMENT_TARGET + 10.8 + OTHER_CPLUSPLUSFLAGS + + -D__MACOSX_CORE__ + -mtune=native + + SDKROOT + macosx + + isa + XCBuildConfiguration + name + Release + + E4B69B580A3A1756003C02F2 + + buildActionMask + 2147483647 + files + + E4B69E200A3A1BDC003C02F2 + E4B69E210A3A1BDC003C02F2 + 6B19F9C7EFB17DFF653D6901 + 34211D8DB45A6A5C17097816 + 1E4BE9C41E9BD10D0B5A6BFE + 7F4118224FD3204590A39920 + 5FCD8619B50E6F7295A29E27 + 466588838B7DAEBE9A80D503 + 04362EEC77DE401B1C8CFE8B + AA8310F90D6464E313400238 + A147A50AC78BF55A3C211039 + 0918CFF30E07EBE50EF71853 + 1D2DDEDE8D5A1B0DB3034BF5 + D0521634FEE52412D6CD7432 + 8FE64D2C14BEBA9788D31120 + F93EA99C106A5F3B732619E6 + 3C46D5EB308C02525702C8C8 + 6083BC7EFA07757211291411 + EBE754484097857C8FAB6A71 + 40755491CDDD7249B25A1F2D + B8A4986AE3CFD44755D311C7 + 28DCB9949680410908EFD4D5 + 8AAF2BA4AFCBEC334841B989 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E4B69B590A3A1756003C02F2 + + buildActionMask + 2147483647 + files + + E4328149138ABC9F0047C5CB + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E4B69B5A0A3A1756003C02F2 + + buildConfigurationList + E4B69B5F0A3A1757003C02F2 + buildPhases + + E4B69B580A3A1756003C02F2 + E4B69B590A3A1756003C02F2 + E4B6FFFD0C3F9AB9008CF71C + E4C2427710CC5ABF004149E2 + 8466F1851C04CA0E00918B1C + + buildRules + + dependencies + + E4EEB9AC138B136A00A80321 + + isa + PBXNativeTarget + name + 03_guiControls + productName + myOFApp + productReference + E4B69B5B0A3A1756003C02F2 + productType + com.apple.product-type.application + + E4B69B5B0A3A1756003C02F2 + + explicitFileType + wrapper.application + includeInIndex + 0 + isa + PBXFileReference + path + 03_guiControlsDebug.app + sourceTree + BUILT_PRODUCTS_DIR + + E4B69B5F0A3A1757003C02F2 + + buildConfigurations + + E4B69B600A3A1757003C02F2 + E4B69B610A3A1757003C02F2 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + E4B69B600A3A1757003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxMSAInteractiveObject/src + ../../../../addons/ofxProjectorBlend/src + ../../../../addons/ofxSimpleGuiToo/src + ../../../../addons/ofxSimpleGuiToo/src/Controls + ../../../../addons/ofxXmlSettings/libs + ../../../../addons/ofxXmlSettings/src + + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + NO + FRAMEWORK_SEARCH_PATHS + + $(inherited) + $(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1) + + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 + "$(SRCROOT)/../../../../libs/glut/lib/osx" + 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_NAME + $(TARGET_NAME)Debug + WRAPPER_EXTENSION + app + + isa + XCBuildConfiguration + name + Debug + + E4B69B610A3A1757003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxMSAInteractiveObject/src + ../../../../addons/ofxProjectorBlend/src + ../../../../addons/ofxSimpleGuiToo/src + ../../../../addons/ofxSimpleGuiToo/src/Controls + ../../../../addons/ofxXmlSettings/libs + ../../../../addons/ofxXmlSettings/src + + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + YES + FRAMEWORK_SEARCH_PATHS + + $(inherited) + $(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1) + + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 + "$(SRCROOT)/../../../../libs/glut/lib/osx" + 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_NAME + $(TARGET_NAME) + WRAPPER_EXTENSION + app + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + + isa + XCBuildConfiguration + name + Release + + E4B69E1C0A3A1BDC003C02F2 + + children + + E4B69E1D0A3A1BDC003C02F2 + E4B69E1E0A3A1BDC003C02F2 + E4B69E1F0A3A1BDC003C02F2 + + isa + PBXGroup + path + src + sourceTree + SOURCE_ROOT + + E4B69E1D0A3A1BDC003C02F2 + + fileEncoding + 30 + isa + PBXFileReference + lastKnownFileType + sourcecode.cpp.cpp + name + main.cpp + path + src/main.cpp + sourceTree + SOURCE_ROOT + + E4B69E1E0A3A1BDC003C02F2 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofApp.cpp + path + src/ofApp.cpp + sourceTree + SOURCE_ROOT + + E4B69E1F0A3A1BDC003C02F2 + + fileEncoding + 30 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + ofApp.h + path + src/ofApp.h + sourceTree + SOURCE_ROOT + + E4B69E200A3A1BDC003C02F2 + + fileRef + E4B69E1D0A3A1BDC003C02F2 + isa + PBXBuildFile + + E4B69E210A3A1BDC003C02F2 + + fileRef + E4B69E1E0A3A1BDC003C02F2 + isa + PBXBuildFile + + E4B6FCAD0C3E899E008CF71C + + fileEncoding + 30 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + openFrameworks-Info.plist + sourceTree + <group> + + E4B6FFFD0C3F9AB9008CF71C + + buildActionMask + 2147483647 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + mkdir -p "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/" +# Copy default icon file into App/Resources +rsync -aved "$ICON_FILE" "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/" +# Copy bin/data into App/Resources +rsync -avz --exclude='.DS_Store' "${SRCROOT}/bin/data/" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/data/" +# Copy libfmod and change install directory for fmod to run +rsync -aved ../../../../libs/fmodex/lib/osx/libfmodex.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/"; +install_name_tool -change @executable_path/libfmodex.dylib @executable_path/../Frameworks/libfmodex.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME"; +# Copy GLUT framework (must remove for AppStore submissions) +rsync -aved ../../../../libs/glut/lib/osx/GLUT.framework "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/" + + + E4C2427710CC5ABF004149E2 + + buildActionMask + 2147483647 + dstPath + + dstSubfolderSpec + 10 + files + + isa + PBXCopyFilesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E4EB691F138AFCF100A09F29 + + fileEncoding + 4 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + CoreOF.xcconfig + path + ../../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig + sourceTree + SOURCE_ROOT + + E4EB6923138AFD0F00A09F29 + + fileEncoding + 4 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Project.xcconfig + sourceTree + <group> + + E4EEB9AB138B136A00A80321 + + containerPortal + E4328143138ABC890047C5CB + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + E4B27C1410CBEB8E00536013 + remoteInfo + openFrameworks + + E4EEB9AC138B136A00A80321 + + isa + PBXTargetDependency + name + openFrameworks + targetProxy + E4EEB9AB138B136A00A80321 + + E4EEC9E9138DF44700A80321 + + children + + E4EB691F138AFCF100A09F29 + E4328143138ABC890047C5CB + + isa + PBXGroup + name + openFrameworks + sourceTree + <group> + + + rootObject + E4B69B4C0A3A1720003C02F2 + + diff --git a/examples/03_guiControls/Makefile b/examples/03_guiControls/Makefile new file mode 100644 index 0000000..3d105d6 --- /dev/null +++ b/examples/03_guiControls/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/examples/03_guiControls/Project.xcconfig b/examples/03_guiControls/Project.xcconfig new file mode 100644 index 0000000..cad0fe6 --- /dev/null +++ b/examples/03_guiControls/Project.xcconfig @@ -0,0 +1,17 @@ +//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 = ../../../.. + +//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_LDFLAGS = $(OF_CORE_LIBS) $(OF_CORE_FRAMEWORKS) +HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) diff --git a/03_guiControls/addons.make b/examples/03_guiControls/addons.make similarity index 100% rename from 03_guiControls/addons.make rename to examples/03_guiControls/addons.make index f5f73e4..ae80cff 100644 --- a/03_guiControls/addons.make +++ b/examples/03_guiControls/addons.make @@ -1,4 +1,4 @@ -ofxXmlSettings ofxMSAInteractiveObject ofxProjectorBlend ofxSimpleGuiToo +ofxXmlSettings diff --git a/03_guiControls/bin/data/.gitkeep b/examples/03_guiControls/bin/data/.gitkeep similarity index 100% rename from 03_guiControls/bin/data/.gitkeep rename to examples/03_guiControls/bin/data/.gitkeep diff --git a/03_guiControls/bin/data/_settings.xml b/examples/03_guiControls/bin/data/_settings.xml similarity index 100% rename from 03_guiControls/bin/data/_settings.xml rename to examples/03_guiControls/bin/data/_settings.xml diff --git a/examples/03_guiControls/config.make b/examples/03_guiControls/config.make new file mode 100644 index 0000000..7eed358 --- /dev/null +++ b/examples/03_guiControls/config.make @@ -0,0 +1,141 @@ +################################################################################ +# CONFIGURE PROJECT MAKEFILE (optional) +# This file is where we make project specific configurations. +################################################################################ + +################################################################################ +# OF ROOT +# The location of your root openFrameworks installation +# (default) OF_ROOT = ../../../.. +################################################################################ +# 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. +################################################################################ +# 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/03_guiControls/guiControls.cbp b/examples/03_guiControls/guiControls.cbp similarity index 99% rename from 03_guiControls/guiControls.cbp rename to examples/03_guiControls/guiControls.cbp index 448e833..2035c0f 100644 --- a/03_guiControls/guiControls.cbp +++ b/examples/03_guiControls/guiControls.cbp @@ -126,10 +126,10 @@ - + - + diff --git a/03_guiControls/guiControls.sln b/examples/03_guiControls/guiControls.sln similarity index 100% rename from 03_guiControls/guiControls.sln rename to examples/03_guiControls/guiControls.sln diff --git a/03_guiControls/guiControls.vcxproj b/examples/03_guiControls/guiControls.vcxproj similarity index 99% rename from 03_guiControls/guiControls.vcxproj rename to examples/03_guiControls/guiControls.vcxproj index 8dbdca7..ed5efd9 100644 --- a/03_guiControls/guiControls.vcxproj +++ b/examples/03_guiControls/guiControls.vcxproj @@ -99,7 +99,7 @@ - + @@ -123,7 +123,7 @@ - + diff --git a/03_guiControls/guiControls.vcxproj.filters b/examples/03_guiControls/guiControls.vcxproj.filters similarity index 99% rename from 03_guiControls/guiControls.vcxproj.filters rename to examples/03_guiControls/guiControls.vcxproj.filters index 74782da..e33ddb2 100644 --- a/03_guiControls/guiControls.vcxproj.filters +++ b/examples/03_guiControls/guiControls.vcxproj.filters @@ -1,7 +1,7 @@ - + src @@ -110,7 +110,7 @@ - + src diff --git a/03_guiControls/guiControls.vcxproj.user b/examples/03_guiControls/guiControls.vcxproj.user similarity index 100% rename from 03_guiControls/guiControls.vcxproj.user rename to examples/03_guiControls/guiControls.vcxproj.user diff --git a/03_guiControls/guiControls.workspace b/examples/03_guiControls/guiControls.workspace similarity index 100% rename from 03_guiControls/guiControls.workspace rename to examples/03_guiControls/guiControls.workspace diff --git a/03_guiControls/guiControls.xcodeproj/project.pbxproj b/examples/03_guiControls/guiControls.xcodeproj/project.pbxproj similarity index 98% rename from 03_guiControls/guiControls.xcodeproj/project.pbxproj rename to examples/03_guiControls/guiControls.xcodeproj/project.pbxproj index 32099b7..d0014bc 100644 --- a/03_guiControls/guiControls.xcodeproj/project.pbxproj +++ b/examples/03_guiControls/guiControls.xcodeproj/project.pbxproj @@ -35,7 +35,7 @@ E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; - E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; }; + E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; }; E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; @@ -119,8 +119,8 @@ E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; E4B69B5B0A3A1756003C02F2 /* guiControlsDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = guiControlsDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; - E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; }; - E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; }; + E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; }; + E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; }; E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; @@ -368,8 +368,8 @@ isa = PBXGroup; children = ( E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, - E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */, - E4B69E1F0A3A1BDC003C02F2 /* testApp.h */, + E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */, + E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */, ); path = src; sourceTree = SOURCE_ROOT; @@ -476,7 +476,7 @@ buildActionMask = 2147483647; files = ( E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, - E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */, + E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */, 63b57ac5bf4ef088491e0317dbb2ecaa /* ofxXmlSettings.cpp in Sources */, 933a2227713c720ceff80fd967d0a8ee /* tinyxml.cpp in Sources */, 9d44dc88ef9e7991b4a09951e2e4769f /* tinyxmlerror.cpp in Sources */, diff --git a/03_guiControls/guiControls.xcodeproj/xcshareddata/xcschemes/guiControls Debug.xcscheme b/examples/03_guiControls/guiControls.xcodeproj/xcshareddata/xcschemes/guiControls Debug.xcscheme similarity index 100% rename from 03_guiControls/guiControls.xcodeproj/xcshareddata/xcschemes/guiControls Debug.xcscheme rename to examples/03_guiControls/guiControls.xcodeproj/xcshareddata/xcschemes/guiControls Debug.xcscheme diff --git a/03_guiControls/guiControls.xcodeproj/xcshareddata/xcschemes/guiControls Release.xcscheme b/examples/03_guiControls/guiControls.xcodeproj/xcshareddata/xcschemes/guiControls Release.xcscheme similarity index 100% rename from 03_guiControls/guiControls.xcodeproj/xcshareddata/xcschemes/guiControls Release.xcscheme rename to examples/03_guiControls/guiControls.xcodeproj/xcshareddata/xcschemes/guiControls Release.xcscheme diff --git a/03_guiControls/openFrameworks-Info.plist b/examples/03_guiControls/openFrameworks-Info.plist similarity index 70% rename from 03_guiControls/openFrameworks-Info.plist rename to examples/03_guiControls/openFrameworks-Info.plist index e5db555..8d64d2b 100644 --- a/03_guiControls/openFrameworks-Info.plist +++ b/examples/03_guiControls/openFrameworks-Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - com.yourcompany.openFrameworks + cc.openFrameworks.ofapp CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType @@ -16,5 +16,7 @@ ???? CFBundleVersion 1.0 + CFBundleIconFile + ${ICON} diff --git a/03_guiControls/src/main.cpp b/examples/03_guiControls/src/main.cpp similarity index 81% rename from 03_guiControls/src/main.cpp rename to examples/03_guiControls/src/main.cpp index 6a32c6a..aca145e 100644 --- a/03_guiControls/src/main.cpp +++ b/examples/03_guiControls/src/main.cpp @@ -1,16 +1,16 @@ #include "ofMain.h" -#include "testApp.h" +#include "ofApp.h" #include "ofAppGlutWindow.h" //======================================================================== int main( ){ - ofAppGlutWindow window; + ofAppGlutWindow window; ofSetupOpenGL(&window, 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: - ofRunApp( new testApp()); + ofRunApp( new ofApp()); } diff --git a/examples/03_guiControls/src/ofApp.cpp b/examples/03_guiControls/src/ofApp.cpp new file mode 100644 index 0000000..633194b --- /dev/null +++ b/examples/03_guiControls/src/ofApp.cpp @@ -0,0 +1,105 @@ +#include "ofApp.h" + +//-------------------------------------------------------------- +void ofApp::setup(){ + + blender.setup(PROJECTOR_WIDTH, PROJECTOR_HEIGHT, PROJECTOR_COUNT, PIXEL_OVERLAP); + blender.setWindowToDisplaySize(); + + + gui.addToggle("Show Blend", blender.showBlend); + + for (int i=0; i + + + archiveVersion + 1 + classes + + objectVersion + 46 + objects + + 07F7389612578F62A483FB79 + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxProjectorBlendShader.h + path + ../../../../addons/ofxProjectorBlend/src/ofxProjectorBlendShader.h + sourceTree + SOURCE_ROOT + + F2C101F7371BB7A4EC9AFB0A + + explicitFileType + sourcecode.c.h + fileEncoding + 30 + isa + PBXFileReference + name + ofxProjectorBlend.h + path + ../../../../addons/ofxProjectorBlend/src/ofxProjectorBlend.h + sourceTree + SOURCE_ROOT + + 7959A566A37DB3C7C7FFAF32 + + children + + 741B6C295D666B5A935928CA + F2C101F7371BB7A4EC9AFB0A + 07F7389612578F62A483FB79 + + isa + PBXGroup + name + src + sourceTree + <group> + + 59DA350BBB36A982B18D6D2A + + children + + 7959A566A37DB3C7C7FFAF32 + + isa + PBXGroup + name + ofxProjectorBlend + sourceTree + <group> + + 34211D8DB45A6A5C17097816 + + fileRef + 741B6C295D666B5A935928CA + isa + PBXBuildFile + + 741B6C295D666B5A935928CA + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofxProjectorBlend.cpp + path + ../../../../addons/ofxProjectorBlend/src/ofxProjectorBlend.cpp + sourceTree + SOURCE_ROOT + + 6948EE371B920CB800B5AC1A + + children + + isa + PBXGroup + name + local_addons + sourceTree + <group> + + 8466F1851C04CA0E00918B1C + + buildActionMask + 12 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + # ---- Code Sign App Package ---- + +# WARNING: You may have to run Clean in Xcode after changing CODE_SIGN_IDENTITY! + +# Verify that $CODE_SIGN_IDENTITY is set +if [ -z "${CODE_SIGN_IDENTITY}" ] ; then +echo "CODE_SIGN_IDENTITY needs to be set for framework code-signing" +exit 0 +fi + +if [ -z "${CODE_SIGN_ENTITLEMENTS}" ] ; then +echo "CODE_SIGN_ENTITLEMENTS needs to be set for framework code-signing!" + +if [ "${CONFIGURATION}" = "Release" ] ; then +exit 1 +else +# Code-signing is optional for non-release builds. +exit 0 +fi +fi + +ITEMS="" + +FRAMEWORKS_DIR="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +echo "$FRAMEWORKS_DIR" +if [ -d "$FRAMEWORKS_DIR" ] ; then +FRAMEWORKS=$(find "${FRAMEWORKS_DIR}" -depth -type d -name "*.framework" -or -name "*.dylib" -or -name "*.bundle" | sed -e "s/\(.*framework\)/\1\/Versions\/A\//") +RESULT=$? +if [[ $RESULT != 0 ]] ; then +exit 1 +fi + +ITEMS="${FRAMEWORKS}" +fi + +LOGINITEMS_DIR="${TARGET_BUILD_DIR}/${CONTENTS_FOLDER_PATH}/Library/LoginItems/" +if [ -d "$LOGINITEMS_DIR" ] ; then +LOGINITEMS=$(find "${LOGINITEMS_DIR}" -depth -type d -name "*.app") +RESULT=$? +if [[ $RESULT != 0 ]] ; then +exit 1 +fi + +ITEMS="${ITEMS}"$'\n'"${LOGINITEMS}" +fi + +# Prefer the expanded name, if available. +CODE_SIGN_IDENTITY_FOR_ITEMS="${EXPANDED_CODE_SIGN_IDENTITY_NAME}" +if [ "${CODE_SIGN_IDENTITY_FOR_ITEMS}" = "" ] ; then +# Fall back to old behavior. +CODE_SIGN_IDENTITY_FOR_ITEMS="${CODE_SIGN_IDENTITY}" +fi + +echo "Identity:" +echo "${CODE_SIGN_IDENTITY_FOR_ITEMS}" + +echo "Entitlements:" +echo "${CODE_SIGN_ENTITLEMENTS}" + +echo "Found:" +echo "${ITEMS}" + +# Change the Internal Field Separator (IFS) so that spaces in paths will not cause problems below. +SAVED_IFS=$IFS +IFS=$(echo -en "\n\b") + +# Loop through all items. +for ITEM in $ITEMS; +do +echo "Signing '${ITEM}'" +codesign --force --verbose --sign "${CODE_SIGN_IDENTITY_FOR_ITEMS}" --entitlements "${CODE_SIGN_ENTITLEMENTS}" "${ITEM}" +RESULT=$? +if [[ $RESULT != 0 ]] ; then +echo "Failed to sign '${ITEM}'." +IFS=$SAVED_IFS +exit 1 +fi +done + +# Restore $IFS. +IFS=$SAVED_IFS + + + BB4B014C10F69532006C3DED + + children + + 59DA350BBB36A982B18D6D2A + + isa + PBXGroup + name + addons + sourceTree + <group> + + E4328143138ABC890047C5CB + + isa + PBXFileReference + lastKnownFileType + wrapper.pb-project + name + openFrameworksLib.xcodeproj + path + ../../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj + sourceTree + SOURCE_ROOT + + E4328144138ABC890047C5CB + + children + + E4328148138ABC890047C5CB + + isa + PBXGroup + name + Products + sourceTree + <group> + + E4328147138ABC890047C5CB + + containerPortal + E4328143138ABC890047C5CB + isa + PBXContainerItemProxy + proxyType + 2 + remoteGlobalIDString + E4B27C1510CBEB8E00536013 + remoteInfo + openFrameworks + + E4328148138ABC890047C5CB + + fileType + archive.ar + isa + PBXReferenceProxy + path + openFrameworksDebug.a + remoteRef + E4328147138ABC890047C5CB + sourceTree + BUILT_PRODUCTS_DIR + + E4328149138ABC9F0047C5CB + + fileRef + E4328148138ABC890047C5CB + isa + PBXBuildFile + + E4B69B4A0A3A1720003C02F2 + + children + + E4B6FCAD0C3E899E008CF71C + E4EB6923138AFD0F00A09F29 + E4B69E1C0A3A1BDC003C02F2 + E4EEC9E9138DF44700A80321 + BB4B014C10F69532006C3DED + 6948EE371B920CB800B5AC1A + E4B69B5B0A3A1756003C02F2 + + isa + PBXGroup + sourceTree + <group> + + E4B69B4C0A3A1720003C02F2 + + attributes + + LastUpgradeCheck + 0600 + + buildConfigurationList + E4B69B4D0A3A1720003C02F2 + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 + isa + PBXProject + knownRegions + + English + Japanese + French + German + + mainGroup + E4B69B4A0A3A1720003C02F2 + productRefGroup + E4B69B4A0A3A1720003C02F2 + projectDirPath + + projectReferences + + + ProductGroup + E4328144138ABC890047C5CB + ProjectRef + E4328143138ABC890047C5CB + + + projectRoot + + targets + + E4B69B5A0A3A1756003C02F2 + + + E4B69B4D0A3A1720003C02F2 + + buildConfigurations + + E4B69B4E0A3A1720003C02F2 + E4B69B4F0A3A1720003C02F2 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + E4B69B4E0A3A1720003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxProjectorBlend/src + + CONFIGURATION_BUILD_DIR + $(SRCROOT)/bin/ + COPY_PHASE_STRIP + NO + DEAD_CODE_STRIPPING + YES + GCC_AUTO_VECTORIZATION + YES + GCC_ENABLE_SSE3_EXTENSIONS + YES + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS + YES + GCC_INLINES_ARE_PRIVATE_EXTERN + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS + YES + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO + NO + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL + NO + GCC_WARN_UNINITIALIZED_AUTOS + NO + GCC_WARN_UNUSED_VALUE + NO + GCC_WARN_UNUSED_VARIABLE + NO + MACOSX_DEPLOYMENT_TARGET + 10.8 + ONLY_ACTIVE_ARCH + YES + OTHER_CPLUSPLUSFLAGS + + -D__MACOSX_CORE__ + -mtune=native + + SDKROOT + macosx + + isa + XCBuildConfiguration + name + Debug + + E4B69B4F0A3A1720003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxProjectorBlend/src + + CONFIGURATION_BUILD_DIR + $(SRCROOT)/bin/ + COPY_PHASE_STRIP + YES + DEAD_CODE_STRIPPING + YES + GCC_AUTO_VECTORIZATION + YES + GCC_ENABLE_SSE3_EXTENSIONS + YES + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS + YES + GCC_INLINES_ARE_PRIVATE_EXTERN + NO + GCC_OPTIMIZATION_LEVEL + 3 + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_UNROLL_LOOPS + YES + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS + YES + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO + NO + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL + NO + GCC_WARN_UNINITIALIZED_AUTOS + NO + GCC_WARN_UNUSED_VALUE + NO + GCC_WARN_UNUSED_VARIABLE + NO + MACOSX_DEPLOYMENT_TARGET + 10.8 + OTHER_CPLUSPLUSFLAGS + + -D__MACOSX_CORE__ + -mtune=native + + SDKROOT + macosx + + isa + XCBuildConfiguration + name + Release + + E4B69B580A3A1756003C02F2 + + buildActionMask + 2147483647 + files + + E4B69E200A3A1BDC003C02F2 + E4B69E210A3A1BDC003C02F2 + 34211D8DB45A6A5C17097816 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E4B69B590A3A1756003C02F2 + + buildActionMask + 2147483647 + files + + E4328149138ABC9F0047C5CB + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E4B69B5A0A3A1756003C02F2 + + buildConfigurationList + E4B69B5F0A3A1757003C02F2 + buildPhases + + E4B69B580A3A1756003C02F2 + E4B69B590A3A1756003C02F2 + E4B6FFFD0C3F9AB9008CF71C + E4C2427710CC5ABF004149E2 + 8466F1851C04CA0E00918B1C + + buildRules + + dependencies + + E4EEB9AC138B136A00A80321 + + isa + PBXNativeTarget + name + 04_blendClown + productName + myOFApp + productReference + E4B69B5B0A3A1756003C02F2 + productType + com.apple.product-type.application + + E4B69B5B0A3A1756003C02F2 + + explicitFileType + wrapper.application + includeInIndex + 0 + isa + PBXFileReference + path + 04_blendClownDebug.app + sourceTree + BUILT_PRODUCTS_DIR + + E4B69B5F0A3A1757003C02F2 + + buildConfigurations + + E4B69B600A3A1757003C02F2 + E4B69B610A3A1757003C02F2 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + E4B69B600A3A1757003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxProjectorBlend/src + + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + NO + FRAMEWORK_SEARCH_PATHS + + $(inherited) + $(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1) + + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 + "$(SRCROOT)/../../../../libs/glut/lib/osx" + 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_NAME + $(TARGET_NAME)Debug + WRAPPER_EXTENSION + app + + isa + XCBuildConfiguration + name + Debug + + E4B69B610A3A1757003C02F2 + + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + buildSettings + + HEADER_SEARCH_PATHS + + $(OF_CORE_HEADERS) + src + ../../../../addons/ofxProjectorBlend/src + + COMBINE_HIDPI_IMAGES + YES + COPY_PHASE_STRIP + YES + FRAMEWORK_SEARCH_PATHS + + $(inherited) + $(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1) + + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 + "$(SRCROOT)/../../../../libs/glut/lib/osx" + 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_NAME + $(TARGET_NAME) + WRAPPER_EXTENSION + app + baseConfigurationReference + E4EB6923138AFD0F00A09F29 + + isa + XCBuildConfiguration + name + Release + + E4B69E1C0A3A1BDC003C02F2 + + children + + E4B69E1D0A3A1BDC003C02F2 + E4B69E1E0A3A1BDC003C02F2 + E4B69E1F0A3A1BDC003C02F2 + + isa + PBXGroup + path + src + sourceTree + SOURCE_ROOT + + E4B69E1D0A3A1BDC003C02F2 + + fileEncoding + 30 + isa + PBXFileReference + lastKnownFileType + sourcecode.cpp.cpp + name + main.cpp + path + src/main.cpp + sourceTree + SOURCE_ROOT + + E4B69E1E0A3A1BDC003C02F2 + + explicitFileType + sourcecode.cpp.cpp + fileEncoding + 30 + isa + PBXFileReference + name + ofApp.cpp + path + src/ofApp.cpp + sourceTree + SOURCE_ROOT + + E4B69E1F0A3A1BDC003C02F2 + + fileEncoding + 30 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + name + ofApp.h + path + src/ofApp.h + sourceTree + SOURCE_ROOT + + E4B69E200A3A1BDC003C02F2 + + fileRef + E4B69E1D0A3A1BDC003C02F2 + isa + PBXBuildFile + + E4B69E210A3A1BDC003C02F2 + + fileRef + E4B69E1E0A3A1BDC003C02F2 + isa + PBXBuildFile + + E4B6FCAD0C3E899E008CF71C + + fileEncoding + 30 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + openFrameworks-Info.plist + sourceTree + <group> + + E4B6FFFD0C3F9AB9008CF71C + + buildActionMask + 2147483647 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + mkdir -p "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/" +# Copy default icon file into App/Resources +rsync -aved "$ICON_FILE" "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/" +# Copy bin/data into App/Resources +rsync -avz --exclude='.DS_Store' "${SRCROOT}/bin/data/" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/data/" +# Copy libfmod and change install directory for fmod to run +rsync -aved ../../../../libs/fmodex/lib/osx/libfmodex.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/"; +install_name_tool -change @executable_path/libfmodex.dylib @executable_path/../Frameworks/libfmodex.dylib "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME"; +# Copy GLUT framework (must remove for AppStore submissions) +rsync -aved ../../../../libs/glut/lib/osx/GLUT.framework "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/" + + + E4C2427710CC5ABF004149E2 + + buildActionMask + 2147483647 + dstPath + + dstSubfolderSpec + 10 + files + + isa + PBXCopyFilesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E4EB691F138AFCF100A09F29 + + fileEncoding + 4 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + CoreOF.xcconfig + path + ../../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig + sourceTree + SOURCE_ROOT + + E4EB6923138AFD0F00A09F29 + + fileEncoding + 4 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Project.xcconfig + sourceTree + <group> + + E4EEB9AB138B136A00A80321 + + containerPortal + E4328143138ABC890047C5CB + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + E4B27C1410CBEB8E00536013 + remoteInfo + openFrameworks + + E4EEB9AC138B136A00A80321 + + isa + PBXTargetDependency + name + openFrameworks + targetProxy + E4EEB9AB138B136A00A80321 + + E4EEC9E9138DF44700A80321 + + children + + E4EB691F138AFCF100A09F29 + E4328143138ABC890047C5CB + + isa + PBXGroup + name + openFrameworks + sourceTree + <group> + + + rootObject + E4B69B4C0A3A1720003C02F2 + + diff --git a/examples/04_blendClown/Makefile b/examples/04_blendClown/Makefile new file mode 100644 index 0000000..3d105d6 --- /dev/null +++ b/examples/04_blendClown/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/examples/04_blendClown/Project.xcconfig b/examples/04_blendClown/Project.xcconfig new file mode 100644 index 0000000..cad0fe6 --- /dev/null +++ b/examples/04_blendClown/Project.xcconfig @@ -0,0 +1,17 @@ +//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 = ../../../.. + +//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_LDFLAGS = $(OF_CORE_LIBS) $(OF_CORE_FRAMEWORKS) +HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) diff --git a/04_blendClown/addons.make b/examples/04_blendClown/addons.make similarity index 100% rename from 04_blendClown/addons.make rename to examples/04_blendClown/addons.make diff --git a/04_blendClown/bin/data/.gitkeep b/examples/04_blendClown/bin/data/.gitkeep similarity index 100% rename from 04_blendClown/bin/data/.gitkeep rename to examples/04_blendClown/bin/data/.gitkeep diff --git a/04_blendClown/bin/data/blendClown.png b/examples/04_blendClown/bin/data/blendClown.png similarity index 100% rename from 04_blendClown/bin/data/blendClown.png rename to examples/04_blendClown/bin/data/blendClown.png diff --git a/04_blendClown/bin/data/blendClown.psd b/examples/04_blendClown/bin/data/blendClown.psd similarity index 100% rename from 04_blendClown/bin/data/blendClown.psd rename to examples/04_blendClown/bin/data/blendClown.psd diff --git a/04_blendClown/blendClown.cbp b/examples/04_blendClown/blendClown.cbp similarity index 98% rename from 04_blendClown/blendClown.cbp rename to examples/04_blendClown/blendClown.cbp index c0f00ae..a7f07a5 100644 --- a/04_blendClown/blendClown.cbp +++ b/examples/04_blendClown/blendClown.cbp @@ -115,10 +115,10 @@ - + - + diff --git a/04_blendClown/blendClown.sln b/examples/04_blendClown/blendClown.sln similarity index 100% rename from 04_blendClown/blendClown.sln rename to examples/04_blendClown/blendClown.sln diff --git a/04_blendClown/blendClown.vcxproj b/examples/04_blendClown/blendClown.vcxproj similarity index 98% rename from 04_blendClown/blendClown.vcxproj rename to examples/04_blendClown/blendClown.vcxproj index 25c9f66..cd4ce83 100644 --- a/04_blendClown/blendClown.vcxproj +++ b/examples/04_blendClown/blendClown.vcxproj @@ -99,11 +99,11 @@ - + - + diff --git a/04_blendClown/blendClown.vcxproj.filters b/examples/04_blendClown/blendClown.vcxproj.filters similarity index 94% rename from 04_blendClown/blendClown.vcxproj.filters rename to examples/04_blendClown/blendClown.vcxproj.filters index b7775e9..458f401 100644 --- a/04_blendClown/blendClown.vcxproj.filters +++ b/examples/04_blendClown/blendClown.vcxproj.filters @@ -1,7 +1,7 @@ - + src @@ -26,7 +26,7 @@ - + src diff --git a/04_blendClown/blendClown.vcxproj.user b/examples/04_blendClown/blendClown.vcxproj.user similarity index 100% rename from 04_blendClown/blendClown.vcxproj.user rename to examples/04_blendClown/blendClown.vcxproj.user diff --git a/04_blendClown/blendClown.workspace b/examples/04_blendClown/blendClown.workspace similarity index 100% rename from 04_blendClown/blendClown.workspace rename to examples/04_blendClown/blendClown.workspace diff --git a/04_blendClown/blendClown.xcodeproj/project.pbxproj b/examples/04_blendClown/blendClown.xcodeproj/project.pbxproj similarity index 97% rename from 04_blendClown/blendClown.xcodeproj/project.pbxproj rename to examples/04_blendClown/blendClown.xcodeproj/project.pbxproj index 2bbf6d3..8ac3ce0 100644 --- a/04_blendClown/blendClown.xcodeproj/project.pbxproj +++ b/examples/04_blendClown/blendClown.xcodeproj/project.pbxproj @@ -20,7 +20,7 @@ E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; - E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; }; + E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; }; E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; @@ -76,8 +76,8 @@ E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; E4B69B5B0A3A1756003C02F2 /* blendClownDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = blendClownDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; - E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; }; - E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; }; + E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; }; + E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; }; E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; @@ -208,8 +208,8 @@ isa = PBXGroup; children = ( E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, - E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */, - E4B69E1F0A3A1BDC003C02F2 /* testApp.h */, + E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */, + E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */, ); path = src; sourceTree = SOURCE_ROOT; @@ -308,7 +308,7 @@ buildActionMask = 2147483647; files = ( E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, - E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */, + E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */, 95e7ef0d58b6654ee78aa86474800394 /* ofxProjectorBlend.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/04_blendClown/blendClown.xcodeproj/xcshareddata/xcschemes/blendClown Debug.xcscheme b/examples/04_blendClown/blendClown.xcodeproj/xcshareddata/xcschemes/blendClown Debug.xcscheme similarity index 100% rename from 04_blendClown/blendClown.xcodeproj/xcshareddata/xcschemes/blendClown Debug.xcscheme rename to examples/04_blendClown/blendClown.xcodeproj/xcshareddata/xcschemes/blendClown Debug.xcscheme diff --git a/04_blendClown/blendClown.xcodeproj/xcshareddata/xcschemes/blendClown Release.xcscheme b/examples/04_blendClown/blendClown.xcodeproj/xcshareddata/xcschemes/blendClown Release.xcscheme similarity index 100% rename from 04_blendClown/blendClown.xcodeproj/xcshareddata/xcschemes/blendClown Release.xcscheme rename to examples/04_blendClown/blendClown.xcodeproj/xcshareddata/xcschemes/blendClown Release.xcscheme diff --git a/examples/04_blendClown/config.make b/examples/04_blendClown/config.make new file mode 100644 index 0000000..7eed358 --- /dev/null +++ b/examples/04_blendClown/config.make @@ -0,0 +1,141 @@ +################################################################################ +# CONFIGURE PROJECT MAKEFILE (optional) +# This file is where we make project specific configurations. +################################################################################ + +################################################################################ +# OF ROOT +# The location of your root openFrameworks installation +# (default) OF_ROOT = ../../../.. +################################################################################ +# 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. +################################################################################ +# 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/04_blendClown/openFrameworks-Info.plist b/examples/04_blendClown/openFrameworks-Info.plist similarity index 70% rename from 04_blendClown/openFrameworks-Info.plist rename to examples/04_blendClown/openFrameworks-Info.plist index e5db555..8d64d2b 100644 --- a/04_blendClown/openFrameworks-Info.plist +++ b/examples/04_blendClown/openFrameworks-Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion @@ -7,7 +7,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - com.yourcompany.openFrameworks + cc.openFrameworks.ofapp CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType @@ -16,5 +16,7 @@ ???? CFBundleVersion 1.0 + CFBundleIconFile + ${ICON} diff --git a/02_threeVertical/src/main.cpp b/examples/04_blendClown/src/main.cpp similarity index 81% rename from 02_threeVertical/src/main.cpp rename to examples/04_blendClown/src/main.cpp index 6a32c6a..aca145e 100644 --- a/02_threeVertical/src/main.cpp +++ b/examples/04_blendClown/src/main.cpp @@ -1,16 +1,16 @@ #include "ofMain.h" -#include "testApp.h" +#include "ofApp.h" #include "ofAppGlutWindow.h" //======================================================================== int main( ){ - ofAppGlutWindow window; + ofAppGlutWindow window; ofSetupOpenGL(&window, 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: - ofRunApp( new testApp()); + ofRunApp( new ofApp()); } diff --git a/examples/04_blendClown/src/ofApp.cpp b/examples/04_blendClown/src/ofApp.cpp new file mode 100644 index 0000000..ff3de9d --- /dev/null +++ b/examples/04_blendClown/src/ofApp.cpp @@ -0,0 +1,144 @@ +#include "ofApp.h" + +//-------------------------------------------------------------- +void ofApp::setup(){ + + blender.setup(PROJECTOR_WIDTH, PROJECTOR_HEIGHT, PROJECTOR_COUNT, PIXEL_OVERLAP); + blender.setWindowToDisplaySize(); + + cout << "canvas size: " << blender.getCanvasWidth() << " x " << blender.getCanvasHeight() << endl; + cout << "display size: " << blender.getDisplayWidth() << " x " << blender.getDisplayHeight() << endl; + + blendClown.load("blendClown.png"); + bDrawClown = false; +} + +//-------------------------------------------------------------- +void ofApp::update(){ + +} + +//-------------------------------------------------------------- +void ofApp::draw(){ + blender.begin(); //call blender.begin() to draw onto the blendable canvas + { + //light gray backaground + ofSetColor(100, 100, 100); + ofDrawRectangle(0, 0, blender.getCanvasWidth(), blender.getCanvasHeight()); + + //thick grid lines for blending + ofSetColor(255, 255, 255); + ofSetLineWidth(3); + + //vertical line + for(int i = 0; i <= blender.getCanvasWidth(); i+=40){ + ofDrawLine(i, 0, i, blender.getCanvasHeight()); + } + + //horizontal lines + for(int j = 0; j <= blender.getCanvasHeight(); j+=40){ + ofDrawLine(0, j, blender.getCanvasWidth(), j); + } + + if(bDrawClown) { + blendClown.draw(0, 0); + } + + //instructions + ofSetColor(255, 255, 255); + ofDrawRectangle(10, 10, 300, 100); + ofSetColor(0, 0, 0); + stringstream instructions; + instructions << "SPACE - toggle show blend" << endl; + instructions << "[g/G] - adjust gamma" << endl; + instructions << "[p/P] - adjust blend power" << endl; + instructions << "[l/L] - adjust luminance" << endl; + instructions << "[c] - show/hide blend clown" << endl; + ofDrawBitmapString(instructions.str(), 15, 35); + + } + blender.end(); //call when you are finished drawing + + + //this draws to the main window + blender.draw(); +} + +//-------------------------------------------------------------- +void ofApp::keyPressed(int key){ + +} + +//-------------------------------------------------------------- +void ofApp::keyReleased(int key){ + //hit spacebar to toggle the blending strip + if(key == ' '){ + //toggling this variable effects whether the blend strip is shown + blender.showBlend = !blender.showBlend; + } + + // more info here on what these variables do + // http://local.wasp.uwa.edu.au/~pbourke/texture_colour/edgeblend/ + + else if(key == 'g'){ + blender.gamma[0] -= .05; + blender.gamma[1] -= .05; + } + else if(key == 'G'){ + blender.gamma[0] += .05; + blender.gamma[1] += .05; + } + else if(key == 'l'){ + blender.luminance[0] -= .05; + blender.luminance[1] -= .05; + } + else if(key == 'L'){ + blender.luminance[0] += .05; + blender.luminance[1] += .05; + } + else if(key == 'p'){ + blender.blendPower[0] -= .05; + blender.blendPower[1] -= .05; + } + else if(key == 'P'){ + blender.blendPower[0] += .05; + blender.blendPower[1] += .05; + }else if (key=='c') { + bDrawClown = !bDrawClown; + } +} + +//-------------------------------------------------------------- +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::windowResized(int w, int h){ + +} + +//-------------------------------------------------------------- +void ofApp::gotMessage(ofMessage msg){ + +} + +//-------------------------------------------------------------- +void ofApp::dragEvent(ofDragInfo dragInfo){ + +} \ No newline at end of file diff --git a/04_blendClown/src/testApp.h b/examples/04_blendClown/src/ofApp.h similarity index 82% rename from 04_blendClown/src/testApp.h rename to examples/04_blendClown/src/ofApp.h index 1116366..94271d5 100644 --- a/04_blendClown/src/testApp.h +++ b/examples/04_blendClown/src/ofApp.h @@ -8,7 +8,7 @@ #define PROJECTOR_HEIGHT 480 #define PIXEL_OVERLAP 40 -class testApp : public ofBaseApp{ +class ofApp : public ofBaseApp{ public: void setup(); @@ -24,8 +24,8 @@ class testApp : public ofBaseApp{ void windowResized(int w, int h); void dragEvent(ofDragInfo dragInfo); void gotMessage(ofMessage msg); - - ofxProjectorBlend blender; - ofImage blendClown; - bool bDrawClown; + + ofxProjectorBlend blender; + ofImage blendClown; + bool bDrawClown; }; diff --git a/src/ofxProjectorBlend.cpp b/src/ofxProjectorBlend.cpp index 6d939da..7731111 100644 --- a/src/ofxProjectorBlend.cpp +++ b/src/ofxProjectorBlend.cpp @@ -9,47 +9,47 @@ ofxProjectorBlend::ofxProjectorBlend() //gamma = gamma2 = 0.5; //blendPower = blendPower2 = 1; //luminance = luminance2 = 0; - gamma.resize(2, 0.5); - blendPower.resize(2, 1); - luminance.resize(2, 0); + gamma.resize(2, 0.5); + blendPower.resize(2, 1); + luminance.resize(2, 0); numProjectors = 0; threshold = 0; } // -------------------------------------------------- -void ofxProjectorBlend::setup(int resolutionWidth, - int resolutionHeight, - int _numProjectors, - int _pixelOverlap, - ofxProjectorBlendLayout _layout, +void ofxProjectorBlend::setup(int resolutionWidth, + int resolutionHeight, + int _numProjectors, + int _pixelOverlap, + ofxProjectorBlendLayout _layout, ofxProjectorBlendRotation _rotation) { string l = "horizontal"; if(layout==ofxProjectorBlend_Vertical) l = "vertical"; - + string r = "normal"; if(rotation==ofxProjectorBlend_RotatedLeft) r = "rotated left"; else if(rotation==ofxProjectorBlend_RotatedRight) r = "rotated right"; - + ofLog(OF_LOG_NOTICE, "ofxProjectorBlend: res: %d x %d * %d, overlap: %d pixels, layout: %s, rotation: %s\n", resolutionWidth, resolutionHeight, _numProjectors, _pixelOverlap, l.c_str(), r.c_str()); numProjectors = _numProjectors; layout = _layout; rotation = _rotation; - + if(numProjectors <= 0){ ofLog(OF_LOG_ERROR, "Cannot initialize with " + ofToString(this->numProjectors) + " projectors."); return; } - + //allow editing projector heights for(int i = 0; i < numProjectors; i++){ projectorHeightOffset.push_back( 0 ); } - + pixelOverlap = _pixelOverlap; - + if(rotation == ofxProjectorBlend_NoRotation) { singleChannelWidth = resolutionWidth; singleChannelHeight = resolutionHeight; @@ -58,7 +58,7 @@ void ofxProjectorBlend::setup(int resolutionWidth, singleChannelWidth = resolutionHeight; singleChannelHeight = resolutionWidth; } - + if(layout == ofxProjectorBlend_Vertical) { fullTextureWidth = singleChannelWidth; fullTextureHeight = singleChannelHeight*numProjectors - pixelOverlap*(numProjectors-1); @@ -70,29 +70,29 @@ void ofxProjectorBlend::setup(int resolutionWidth, ofLog(OF_LOG_ERROR, "ofxProjectorBlend: You have used an invalid ofxProjectorBlendLayout in ofxProjectorBlend::setup()"); return; } - - + + displayWidth = resolutionWidth*numProjectors; displayHeight = resolutionHeight; - + fullTexture.allocate(fullTextureWidth, fullTextureHeight, GL_RGB, 4); - - blendShader.unload(); - blendShader.setupShaderFromSource(GL_FRAGMENT_SHADER, ofxProjectorBlendFragShader(numProjectors-1)); - blendShader.setupShaderFromSource(GL_VERTEX_SHADER, ofxProjectorBlendVertShader); - blendShader.linkProgram(); - - gamma.resize(numProjectors-1, 0.5); - blendPower.resize(numProjectors-1, 1); - luminance.resize(numProjectors-1, 0); + + blendShader.unload(); + blendShader.setupShaderFromSource(GL_FRAGMENT_SHADER, ofxProjectorBlendFragShader(numProjectors-1)); + blendShader.setupShaderFromSource(GL_VERTEX_SHADER, ofxProjectorBlendVertShader); + blendShader.linkProgram(); + + gamma.resize(numProjectors-1, 0.5); + blendPower.resize(numProjectors-1, 1); + luminance.resize(numProjectors-1, 0); } // -------------------------------------------------- void ofxProjectorBlend::begin() { - + fullTexture.begin(); - + ofPushStyle(); ofClear(0,0,0,0); } @@ -117,7 +117,7 @@ void ofxProjectorBlend::moveDisplayVertical(unsigned int targetDisplay, int yOff ofLog(OF_LOG_ERROR, "targetDisplay (" + ofToString(targetDisplay) + ") is invalid."); return; } - + projectorHeightOffset[targetDisplay] += yOffset; } @@ -156,16 +156,16 @@ void ofxProjectorBlend::end() // -------------------------------------------------- void ofxProjectorBlend::updateShaderUniforms() { - + blendShader.setUniform1f("OverlapTop", 0.0f); blendShader.setUniform1f("OverlapLeft", 0.0f); blendShader.setUniform1f("OverlapBottom", 0.0f); blendShader.setUniform1f("OverlapRight", 0.0f); - blendShader.setUniform1fv("BlendPower", &blendPower[0], blendPower.size()); - blendShader.setUniform1fv("SomeLuminanceControl", &luminance[0], luminance.size()); - blendShader.setUniform1fv("GammaCorrection", &gamma[0], gamma.size()); - + blendShader.setUniform1fv("BlendPower", &blendPower[0], blendPower.size()); + blendShader.setUniform1fv("SomeLuminanceControl", &luminance[0], luminance.size()); + blendShader.setUniform1fv("GammaCorrection", &gamma[0], gamma.size()); + blendShader.setUniform1f("projectors", this->numProjectors); blendShader.setUniform1f("threshold", threshold); } @@ -180,47 +180,47 @@ void ofxProjectorBlend::draw(float x, float y) { blendShader.begin(); blendShader.setUniform1f("width", singleChannelWidth); blendShader.setUniform1f("height", singleChannelHeight); - + updateShaderUniforms(); - + if(layout == ofxProjectorBlend_Horizontal) { - blendShader.setUniform1f("OverlapRight", pixelOverlap); + blendShader.setUniform1f("OverlapRight", pixelOverlap); } else { blendShader.setUniform1f("OverlapTop", pixelOverlap); } - - blendShader.setUniformTexture("Tex0", fullTexture.getTextureReference(), 0); - - + + blendShader.setUniformTexture("Tex0", fullTexture.getTexture(), 0); + + ofVec2f offset(0,0); glPushMatrix(); - + // loop through each projector and glTranslatef() to its position and draw. for(int i = 0; i < numProjectors; i++) { blendShader.setUniform2f("texCoordOffset", offset.x, offset.y); - + if(i==1) { // set the first edge if(layout == ofxProjectorBlend_Horizontal) { - blendShader.setUniform1f("OverlapLeft", pixelOverlap); + blendShader.setUniform1f("OverlapLeft", pixelOverlap); } else { blendShader.setUniform1f("OverlapBottom", pixelOverlap); } - + } // if we're at the end of the list of projectors, turn off the second edge's blend - + if(i+1 == numProjectors) { if(layout == ofxProjectorBlend_Horizontal) { - blendShader.setUniform1f("OverlapRight", 0); + blendShader.setUniform1f("OverlapRight", 0); } else { blendShader.setUniform1f("OverlapTop", 0); } } - + glPushMatrix(); { if(rotation == ofxProjectorBlend_RotatedRight) { glRotatef(90, 0, 0, 1); @@ -230,46 +230,46 @@ void ofxProjectorBlend::draw(float x, float y) { glRotatef(-90, 0, 0, 1); glTranslatef(-singleChannelWidth, 0, 0); } - + glTranslatef(0, (float)projectorHeightOffset[i], 0); - + glBegin(GL_QUADS); - + glTexCoord2f(0, 0); glVertex2f(0, 0); - + glTexCoord2f(singleChannelWidth, 0); glVertex2f(singleChannelWidth, 0); - + glTexCoord2f(singleChannelWidth, singleChannelHeight); glVertex2f(singleChannelWidth, singleChannelHeight); - + glTexCoord2f(0, singleChannelHeight); glVertex2f(0, singleChannelHeight); - + glEnd(); } glPopMatrix(); - + // move the texture offset and where we're drawing to. if(layout == ofxProjectorBlend_Horizontal) { offset.x += singleChannelWidth - pixelOverlap; } else { offset.y += singleChannelHeight - pixelOverlap; - + } - + if(rotation == ofxProjectorBlend_RotatedLeft || rotation == ofxProjectorBlend_RotatedRight) { glTranslatef(singleChannelHeight, 0, 0); } else { glTranslatef(singleChannelWidth, 0, 0); } - + } glPopMatrix(); - + blendShader.end(); } else { fullTexture.draw(x, y); diff --git a/src/ofxProjectorBlend.h b/src/ofxProjectorBlend.h index d37de00..06ce8d7 100644 --- a/src/ofxProjectorBlend.h +++ b/src/ofxProjectorBlend.h @@ -18,57 +18,57 @@ class ofxProjectorBlend { public: ofxProjectorBlend(); - + /** - * Set resolutionWidth and height to the resolutions of each projector output - if you're portrait, + * Set resolutionWidth and height to the resolutions of each projector output - if you're portrait, * still give it a landscape resolution. * * layout - this is how the projectors are stacked, so if they are next to eachother, it's horizontal * and if they're on-top of eachother, it's vertical. (this is regardless of rotation) - * - * rotation - this is the rotation of the projector. If the projectors are on their sides then it's + * + * rotation - this is the rotation of the projector. If the projectors are on their sides then it's * rotatedRight, if it's the right way round, it's noRotation. * */ - void setup(int resolutionWidth, int resolutionHeight, int numProjectors, int pixelOverlap, - ofxProjectorBlendLayout layout = ofxProjectorBlend_Horizontal, + void setup(int resolutionWidth, int resolutionHeight, int numProjectors, int pixelOverlap, + ofxProjectorBlendLayout layout = ofxProjectorBlend_Horizontal, ofxProjectorBlendRotation rotation = ofxProjectorBlend_NoRotation); - + //call begin and end like you would if if you were using a normal fbo void begin(); void end(); - + void draw(float x = 0, float y = 0); - - + + // this is how big the area to draw to is. float getCanvasWidth(); float getCanvasHeight(); ofFbo & getFullTexture() { return fullTexture; } - - /** + + /** * This is how big all the projector resolutions would be * if laid out horizontally, next to eachother. This is * essentially the output resolution (regardless of rotation * and orientation.) - the output to set your project to. * - * On a mac, if you want multiple screens doing fullscreen, + * On a mac, if you want multiple screens doing fullscreen, * you need to put your screens next to eachother with the * main one (the one with the menu) on the left hand side. * If you don't, you'll only get the first screen. */ float getDisplayWidth(); float getDisplayHeight(); - + void moveDisplayVertical(unsigned int targetDisplay, int yOffset); - - + + /** This changes your app's window size to the correct output size */ void setWindowToDisplaySize(); - + bool showBlend; - + // variables that control the blend // more info here on what these variables do // http://local.wasp.uwa.edu.au/~pbourke/texture_colour/edgeblend/ @@ -79,11 +79,11 @@ class ofxProjectorBlend //float gamma2; //float luminance2; float threshold; - + protected: - + vector projectorHeightOffset; - + float fullTextureWidth; float fullTextureHeight; float singleChannelWidth; @@ -91,7 +91,7 @@ class ofxProjectorBlend float displayWidth; float displayHeight; - + float pixelOverlap; int numProjectors; ofxProjectorBlendLayout layout; diff --git a/src/ofxProjectorBlendShader.h b/src/ofxProjectorBlendShader.h index cc61527..5e9ef47 100644 --- a/src/ofxProjectorBlendShader.h +++ b/src/ofxProjectorBlendShader.h @@ -12,178 +12,178 @@ string ofxProjectorBlendVertShader = STRINGIFY( void main(void) { - gl_Position = ftransform(); - gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = ftransform(); + gl_TexCoord[0] = gl_MultiTexCoord0; }); string ofxProjectorBlendFragShader(int blends) { - string shader = "uniform float BlendPower["+ofToString(blends)+"]; \ - uniform float SomeLuminanceControl["+ofToString(blends)+"]; \ - uniform float GammaCorrection["+ofToString(blends)+"];"+STRINGIFY( - uniform sampler2DRect Tex0; - uniform float width; - uniform float height; - uniform float OverlapLeft; - uniform float OverlapRight; - uniform float OverlapTop; - uniform float OverlapBottom; - uniform float BlackOutLeft; - uniform float BlackOutRight; - uniform float BlackOutTop; - uniform float BlackOutBottom; - uniform float SolidEdgeEnable; - uniform vec4 SolidEdgeColor; - uniform vec2 texCoordOffset; - uniform float projectors; - uniform float threshold; - - vec4 drawSmoothEdge(float loc, float extend, float blePow, float lumCon, vec3 gamma) - { - vec4 edge; - float curve; - - curve = loc / extend; - curve = (curve < 0.5) ? - lumCon * pow(2.0 * curve, blePow) - : - 1.0 - (1.0 - lumCon) * pow(2.0 * (1.0 - curve), blePow); - - edge = vec4(pow(curve, 1.0 / gamma.r), - pow(curve, 1.0 / gamma.g), - pow(curve, 1.0 / gamma.b), - 1.0); - - return edge; - } - - vec4 drawSmoothEdges(in vec4 overlap, in vec4 blankout, in vec4 color) - { - vec2 xy = gl_TexCoord[0].xy; - vec2 xy_t = xy + texCoordOffset.xy; - vec4 blank = vec4(0.0,0.0,0.0,0.0); - - /* - float proj2 = 1.0; //projectors ... this basically defines a limit; - float thresh = proj2 * width + overlap.x; //(projectors - overlap.x) * width; - float blnPwr = (xy_t.x > thresh) ? BlendPower[1] : BlendPower[0]; - float slc = (xy_t.x > thresh) ? SomeLuminanceControl[1] : SomeLuminanceControl[0]; - float _g = (xy_t.x > thresh) ? GammaCorrection[1] : GammaCorrection[0]; - vec3 gamma = vec3(_g, _g, _g); - */ - - int b = int( xy_t.x / width ); - float blnPwr = BlendPower[b]; - float slc = SomeLuminanceControl[b] + 0.5; - vec3 gamma = vec3(GammaCorrection[b], GammaCorrection[b], GammaCorrection[b]); - //slc += 0.5; - - vec4 sebImage = - (blankout.x + overlap.x > xy.x) ? - (blankout.x > xy.x) ? - blank //leftBlankout - : (blankout.z + overlap.z > xy.y) ? - (blankout.z > xy.y) ? - blank //leftBottomBlankOut - : texture2DRect(Tex0, xy_t) * //leftBottomBlend - drawSmoothEdge(xy.x - blankout.x, overlap.x, blnPwr, slc, gamma) * - drawSmoothEdge(xy.y - blankout.z, overlap.z, blnPwr, slc, gamma) - : (height - blankout.w - overlap.w < xy.y) ? - (height - blankout.w < xy.y) ? - blank //leftTopBlankout - : texture2DRect(Tex0, xy_t) * //LeftTopBlend - drawSmoothEdge(xy.x - blankout.x, overlap.x, blnPwr, slc, gamma) * - drawSmoothEdge(height - blankout.w - xy.y, overlap.w, blnPwr, slc, gamma) - : texture2DRect(Tex0, xy_t) * //leftBlankout - drawSmoothEdge(xy.x - blankout.x, overlap.x, blnPwr, slc, gamma)// + vec4(0.5, 0, 0.5, 0) // debug: magenta - : (width - blankout.y - overlap.y < xy.x) ? - (width - blankout.y < xy.x) ? - blank //rightBlankout - : (blankout.z + overlap.z > xy.y) ? - (blankout.z > xy.y) ? - blank //rightBottomBlankout - : texture2DRect(Tex0, xy_t) * //rightBottomBlend - drawSmoothEdge(width - blankout.y - xy.x, overlap.y, blnPwr, slc, gamma) * - drawSmoothEdge(xy.y - blankout.z, overlap.z, blnPwr, slc, gamma) - : (height - blankout.w - overlap.w < xy.y) ? - (height - blankout.w < xy.y) ? - blank //rightTopBlankout - : texture2DRect(Tex0, xy_t) * //rightTopBlend - drawSmoothEdge(width - blankout.y - xy.x, overlap.y, blnPwr, slc, gamma) * - drawSmoothEdge(height - blankout.w - xy.y, overlap.w, blnPwr, slc, gamma) - : texture2DRect(Tex0, xy_t) * //rightBlend - drawSmoothEdge(width - blankout.y - xy.x, overlap.y, blnPwr, slc, gamma)// + vec4(0, 0, 0.5, 0) // debug: blue - : (blankout.z + overlap.z > xy.y) ? - (blankout.z > xy.y) ? - blank //BottomBlankout - : texture2DRect(Tex0, xy_t) * //BottomBlend - drawSmoothEdge(xy.y - blankout.z, overlap.z, blnPwr, slc, gamma) - : (height - blankout.w - overlap.w < xy.y) ? - (height - blankout.w < xy.y) ? - blank //TopBlankout - : texture2DRect(Tex0, xy_t) * //TopBlend - drawSmoothEdge(height - blankout.w - xy.y, overlap.w, blnPwr, slc, gamma) - : texture2DRect(Tex0, xy_t);// + vec4(0, 0.5, 0.5, 0); // debug: teal - - // if(xy_t.x < thresh) sebImage.rgb += vec3(0, 1.0, 0); // debug - - return sebImage; - } - - vec4 drawSolidEdges(vec4 overlap, vec4 blankout, vec4 color) - { - vec2 xy = gl_TexCoord[0].xy; - vec2 xy_t = xy + texCoordOffset.xy; - vec4 blank = vec4(0.0,0.0,0.0,0.0); - vec4 edgeImage = - (blankout.x + overlap.x > xy.x) ? - (blankout.x > xy.x) ? - blank //leftBlankout - : (blankout.z + overlap.z > xy.y) ? - (blankout.z > xy.y) ? - blank //leftBottomBlankout - : color //leftBottomColor - : (height - blankout.w - overlap.w < xy.y) ? - (height - blankout.w < xy.y) ? - blank //leftTop - : color //leftTopColor - : color //leftColor - : (width - blankout.y - overlap.y < xy.x) ? - (width - blankout.y < xy.x) ? - blank //rightBlankout - : (blankout.z + overlap.z > xy.y) ? - (blankout.z > xy.y) ? - blank //rightBottomBlankout - : color //rightBottomColor - : (height - blankout.w - overlap.w < xy.y) ? - (height - blankout.w < xy.y) ? - blank //rightTopBlankout - : color //rightToColor - : color //rightColor - : (blankout.z + overlap.z > xy.y) ? - (blankout.z > xy.y) ? - blank //BottomBlankout - : color //BottomColor - : (height - blankout.w - overlap.w < xy.y) ? - (height - blankout.w < xy.y) ? - blank //TopBlankout - : color //TopColor - : texture2DRect(Tex0, xy_t); - return edgeImage; - } - - void main (void) - { - vec4 overlap = vec4 (OverlapLeft, OverlapRight, OverlapBottom, OverlapTop); - vec4 blankout = vec4 (BlackOutLeft, BlackOutRight, BlackOutBottom, BlackOutTop); - gl_FragData[0] = (SolidEdgeEnable == 1.0) ? - drawSolidEdges(overlap, blankout, SolidEdgeColor) - : drawSmoothEdges(overlap, blankout, SolidEdgeColor); - } - ); - return shader; + string shader = "uniform float BlendPower["+ofToString(blends)+"]; \ + uniform float SomeLuminanceControl["+ofToString(blends)+"]; \ + uniform float GammaCorrection["+ofToString(blends)+"];"+STRINGIFY( + uniform sampler2DRect Tex0; + uniform float width; + uniform float height; + uniform float OverlapLeft; + uniform float OverlapRight; + uniform float OverlapTop; + uniform float OverlapBottom; + uniform float BlackOutLeft; + uniform float BlackOutRight; + uniform float BlackOutTop; + uniform float BlackOutBottom; + uniform float SolidEdgeEnable; + uniform vec4 SolidEdgeColor; + uniform vec2 texCoordOffset; + uniform float projectors; + uniform float threshold; + + vec4 drawSmoothEdge(float loc, float extend, float blePow, float lumCon, vec3 gamma) + { + vec4 edge; + float curve; + + curve = loc / extend; + curve = (curve < 0.5) ? + lumCon * pow(2.0 * curve, blePow) + : + 1.0 - (1.0 - lumCon) * pow(2.0 * (1.0 - curve), blePow); + + edge = vec4(pow(curve, 1.0 / gamma.r), + pow(curve, 1.0 / gamma.g), + pow(curve, 1.0 / gamma.b), + 1.0); + + return edge; + } + + vec4 drawSmoothEdges(in vec4 overlap, in vec4 blankout, in vec4 color) + { + vec2 xy = gl_TexCoord[0].xy; + vec2 xy_t = xy + texCoordOffset.xy; + vec4 blank = vec4(0.0,0.0,0.0,0.0); + + /* + float proj2 = 1.0; //projectors ... this basically defines a limit; + float thresh = proj2 * width + overlap.x; //(projectors - overlap.x) * width; + float blnPwr = (xy_t.x > thresh) ? BlendPower[1] : BlendPower[0]; + float slc = (xy_t.x > thresh) ? SomeLuminanceControl[1] : SomeLuminanceControl[0]; + float _g = (xy_t.x > thresh) ? GammaCorrection[1] : GammaCorrection[0]; + vec3 gamma = vec3(_g, _g, _g); + */ + + int b = int( xy_t.x / width ); + float blnPwr = BlendPower[b]; + float slc = SomeLuminanceControl[b] + 0.5; + vec3 gamma = vec3(GammaCorrection[b], GammaCorrection[b], GammaCorrection[b]); + //slc += 0.5; + + vec4 sebImage = + (blankout.x + overlap.x > xy.x) ? + (blankout.x > xy.x) ? + blank //leftBlankout + : (blankout.z + overlap.z > xy.y) ? + (blankout.z > xy.y) ? + blank //leftBottomBlankOut + : texture2DRect(Tex0, xy_t) * //leftBottomBlend + drawSmoothEdge(xy.x - blankout.x, overlap.x, blnPwr, slc, gamma) * + drawSmoothEdge(xy.y - blankout.z, overlap.z, blnPwr, slc, gamma) + : (height - blankout.w - overlap.w < xy.y) ? + (height - blankout.w < xy.y) ? + blank //leftTopBlankout + : texture2DRect(Tex0, xy_t) * //LeftTopBlend + drawSmoothEdge(xy.x - blankout.x, overlap.x, blnPwr, slc, gamma) * + drawSmoothEdge(height - blankout.w - xy.y, overlap.w, blnPwr, slc, gamma) + : texture2DRect(Tex0, xy_t) * //leftBlankout + drawSmoothEdge(xy.x - blankout.x, overlap.x, blnPwr, slc, gamma)// + vec4(0.5, 0, 0.5, 0) // debug: magenta + : (width - blankout.y - overlap.y < xy.x) ? + (width - blankout.y < xy.x) ? + blank //rightBlankout + : (blankout.z + overlap.z > xy.y) ? + (blankout.z > xy.y) ? + blank //rightBottomBlankout + : texture2DRect(Tex0, xy_t) * //rightBottomBlend + drawSmoothEdge(width - blankout.y - xy.x, overlap.y, blnPwr, slc, gamma) * + drawSmoothEdge(xy.y - blankout.z, overlap.z, blnPwr, slc, gamma) + : (height - blankout.w - overlap.w < xy.y) ? + (height - blankout.w < xy.y) ? + blank //rightTopBlankout + : texture2DRect(Tex0, xy_t) * //rightTopBlend + drawSmoothEdge(width - blankout.y - xy.x, overlap.y, blnPwr, slc, gamma) * + drawSmoothEdge(height - blankout.w - xy.y, overlap.w, blnPwr, slc, gamma) + : texture2DRect(Tex0, xy_t) * //rightBlend + drawSmoothEdge(width - blankout.y - xy.x, overlap.y, blnPwr, slc, gamma)// + vec4(0, 0, 0.5, 0) // debug: blue + : (blankout.z + overlap.z > xy.y) ? + (blankout.z > xy.y) ? + blank //BottomBlankout + : texture2DRect(Tex0, xy_t) * //BottomBlend + drawSmoothEdge(xy.y - blankout.z, overlap.z, blnPwr, slc, gamma) + : (height - blankout.w - overlap.w < xy.y) ? + (height - blankout.w < xy.y) ? + blank //TopBlankout + : texture2DRect(Tex0, xy_t) * //TopBlend + drawSmoothEdge(height - blankout.w - xy.y, overlap.w, blnPwr, slc, gamma) + : texture2DRect(Tex0, xy_t);// + vec4(0, 0.5, 0.5, 0); // debug: teal + + // if(xy_t.x < thresh) sebImage.rgb += vec3(0, 1.0, 0); // debug + + return sebImage; + } + + vec4 drawSolidEdges(vec4 overlap, vec4 blankout, vec4 color) + { + vec2 xy = gl_TexCoord[0].xy; + vec2 xy_t = xy + texCoordOffset.xy; + vec4 blank = vec4(0.0,0.0,0.0,0.0); + vec4 edgeImage = + (blankout.x + overlap.x > xy.x) ? + (blankout.x > xy.x) ? + blank //leftBlankout + : (blankout.z + overlap.z > xy.y) ? + (blankout.z > xy.y) ? + blank //leftBottomBlankout + : color //leftBottomColor + : (height - blankout.w - overlap.w < xy.y) ? + (height - blankout.w < xy.y) ? + blank //leftTop + : color //leftTopColor + : color //leftColor + : (width - blankout.y - overlap.y < xy.x) ? + (width - blankout.y < xy.x) ? + blank //rightBlankout + : (blankout.z + overlap.z > xy.y) ? + (blankout.z > xy.y) ? + blank //rightBottomBlankout + : color //rightBottomColor + : (height - blankout.w - overlap.w < xy.y) ? + (height - blankout.w < xy.y) ? + blank //rightTopBlankout + : color //rightToColor + : color //rightColor + : (blankout.z + overlap.z > xy.y) ? + (blankout.z > xy.y) ? + blank //BottomBlankout + : color //BottomColor + : (height - blankout.w - overlap.w < xy.y) ? + (height - blankout.w < xy.y) ? + blank //TopBlankout + : color //TopColor + : texture2DRect(Tex0, xy_t); + return edgeImage; + } + + void main (void) + { + vec4 overlap = vec4 (OverlapLeft, OverlapRight, OverlapBottom, OverlapTop); + vec4 blankout = vec4 (BlackOutLeft, BlackOutRight, BlackOutBottom, BlackOutTop); + gl_FragData[0] = (SolidEdgeEnable == 1.0) ? + drawSolidEdges(overlap, blankout, SolidEdgeColor) + : drawSmoothEdges(overlap, blankout, SolidEdgeColor); + } + ); + return shader; }