├── README ├── example ├── bin │ └── data │ │ ├── bg.jpg │ │ ├── frame01.png │ │ ├── frame02.png │ │ ├── frame03.png │ │ ├── frame04.png │ │ ├── frame05.png │ │ ├── frame06.png │ │ ├── frame07.png │ │ ├── frame08.png │ │ ├── frame09.png │ │ ├── frame10.png │ │ └── frame11.png ├── icon.rc ├── Project.xcconfig ├── src │ ├── main.cpp │ ├── ofApp.h │ └── ofApp.cpp ├── emptyExample.vcxproj.user ├── emptyExample_vs2010.vcxproj.user ├── openFrameworks-Info.plist ├── example-imageSequence.sln ├── emptyExample_vs2010.sln ├── example-imageSequence.vcxproj.filters ├── example-imageSequence.vcxproj ├── emptyExample_vs2010.vcxproj └── imageSequence.xcodeproj │ └── project.pbxproj ├── .gitignore ├── example-threaded ├── icon.rc ├── Project.xcconfig ├── src │ ├── main.cpp │ ├── ofApp.h │ └── ofApp.cpp ├── openFrameworks-Info.plist ├── example-threaded.sln ├── example-threaded.vcxproj.filters ├── example-threaded.vcxproj └── imageSequence.xcodeproj │ └── project.pbxproj └── src ├── ofxImageSequence.h └── ofxImageSequence.cpp /README: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/bin/data/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flightphase/ofxImageSequence/HEAD/example/bin/data/bg.jpg -------------------------------------------------------------------------------- /example/bin/data/frame01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flightphase/ofxImageSequence/HEAD/example/bin/data/frame01.png -------------------------------------------------------------------------------- /example/bin/data/frame02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flightphase/ofxImageSequence/HEAD/example/bin/data/frame02.png -------------------------------------------------------------------------------- /example/bin/data/frame03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flightphase/ofxImageSequence/HEAD/example/bin/data/frame03.png -------------------------------------------------------------------------------- /example/bin/data/frame04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flightphase/ofxImageSequence/HEAD/example/bin/data/frame04.png -------------------------------------------------------------------------------- /example/bin/data/frame05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flightphase/ofxImageSequence/HEAD/example/bin/data/frame05.png -------------------------------------------------------------------------------- /example/bin/data/frame06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flightphase/ofxImageSequence/HEAD/example/bin/data/frame06.png -------------------------------------------------------------------------------- /example/bin/data/frame07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flightphase/ofxImageSequence/HEAD/example/bin/data/frame07.png -------------------------------------------------------------------------------- /example/bin/data/frame08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flightphase/ofxImageSequence/HEAD/example/bin/data/frame08.png -------------------------------------------------------------------------------- /example/bin/data/frame09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flightphase/ofxImageSequence/HEAD/example/bin/data/frame09.png -------------------------------------------------------------------------------- /example/bin/data/frame10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flightphase/ofxImageSequence/HEAD/example/bin/data/frame10.png -------------------------------------------------------------------------------- /example/bin/data/frame11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Flightphase/ofxImageSequence/HEAD/example/bin/data/frame11.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | docs/ 2 | 3 | *.depend 4 | *.layout 5 | *.mode*v3 6 | *.pbxuser 7 | *.app* 8 | *.DS_* 9 | ._*.* 10 | 11 | .svn/ 12 | obj/ 13 | bin/ 14 | build/ 15 | !data/ 16 | xcuserdata/ 17 | 18 | ipch/ 19 | *.suo 20 | *.opensdf 21 | 22 | *.obj 23 | *.tlog 24 | *.sdf 25 | *.pdb 26 | *.idb 27 | *.pch 28 | 29 | -------------------------------------------------------------------------------- /example/icon.rc: -------------------------------------------------------------------------------- 1 | // Icon Resource Definition 2 | #define MAIN_ICON 102 3 | 4 | #if defined(_DEBUG) 5 | MAIN_ICON ICON "..\..\..\libs\openFrameworksCompiled\project\vs\icon_debug.ico" 6 | #else 7 | MAIN_ICON ICON "..\..\..\libs\openFrameworksCompiled\project\vs\icon.ico" 8 | #endif 9 | -------------------------------------------------------------------------------- /example-threaded/icon.rc: -------------------------------------------------------------------------------- 1 | // Icon Resource Definition 2 | #define MAIN_ICON 102 3 | 4 | #if defined(_DEBUG) 5 | MAIN_ICON ICON "..\..\..\libs\openFrameworksCompiled\project\vs\icon_debug.ico" 6 | #else 7 | MAIN_ICON ICON "..\..\..\libs\openFrameworksCompiled\project\vs\icon.ico" 8 | #endif 9 | -------------------------------------------------------------------------------- /example/Project.xcconfig: -------------------------------------------------------------------------------- 1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. 2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED 3 | OF_PATH = ../../.. 4 | 5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE 6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" 7 | 8 | OTHER_LDFLAGS = $(OF_CORE_LIBS) 9 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) 10 | -------------------------------------------------------------------------------- /example-threaded/Project.xcconfig: -------------------------------------------------------------------------------- 1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. 2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED 3 | OF_PATH = ../../.. 4 | 5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE 6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" 7 | 8 | OTHER_LDFLAGS = $(OF_CORE_LIBS) 9 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) 10 | -------------------------------------------------------------------------------- /example/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "ofMain.h" 2 | #include "ofApp.h" 3 | 4 | //======================================================================== 5 | int main( ){ 6 | 7 | ofSetupOpenGL(1024,768, OF_WINDOW); // <-------- setup the GL context 8 | 9 | // this kicks off the running of my app 10 | // can be OF_WINDOW or OF_FULLSCREEN 11 | // pass in width and height too: 12 | ofRunApp( new ofApp()); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /example-threaded/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "ofMain.h" 2 | #include "ofApp.h" 3 | 4 | //======================================================================== 5 | int main( ){ 6 | 7 | ofSetupOpenGL(1024,768, OF_WINDOW); // <-------- setup the GL context 8 | 9 | // this kicks off the running of my app 10 | // can be OF_WINDOW or OF_FULLSCREEN 11 | // pass in width and height too: 12 | ofRunApp( new ofApp()); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /example/emptyExample.vcxproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(ProjectDir)/bin 5 | WindowsLocalDebugger 6 | 7 | 8 | $(ProjectDir)/bin 9 | WindowsLocalDebugger 10 | 11 | -------------------------------------------------------------------------------- /example/emptyExample_vs2010.vcxproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | $(ProjectDir)/bin 5 | WindowsLocalDebugger 6 | 7 | 8 | $(ProjectDir)/bin 9 | WindowsLocalDebugger 10 | 11 | -------------------------------------------------------------------------------- /example/openFrameworks-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.yourcompany.openFrameworks 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /example-threaded/openFrameworks-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.yourcompany.openFrameworks 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /example/src/ofApp.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * ofxImageSequence example project 4 | * 5 | * Created by James George ( http://www.jamesgeorge.org ) on 6/15/10. 6 | * In collaboration with FlightPhase ( http://www.flightphase.com ) 7 | * - Updated for 0.8.4 by James George on 12/10/2014 for Specular (http://specular.cc) (how time flies!) 8 | * 9 | * Copyright (c) 2010-2015 10 | */ 11 | 12 | #pragma onc 13 | 14 | #include "ofMain.h" 15 | #include "ofxImageSequence.h" 16 | 17 | class ofApp : public ofBaseApp 18 | { 19 | 20 | public: 21 | void setup(); 22 | void update(); 23 | void draw(); 24 | 25 | void keyPressed (int key); 26 | void keyReleased(int key); 27 | void mouseMoved(int x, int y ); 28 | void mouseDragged(int x, int y, int button); 29 | void mousePressed(int x, int y, int button); 30 | void mouseReleased(int x, int y, int button); 31 | void windowResized(int w, int h); 32 | 33 | ofxImageSequence sequence; 34 | ofImage background; 35 | bool playing; 36 | }; 37 | 38 | -------------------------------------------------------------------------------- /example-threaded/src/ofApp.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * ofxImageSequence example project 4 | * 5 | * Created by James George ( http://www.jamesgeorge.org ) on 6/15/10. 6 | * In collaboration with FlightPhase ( http://www.flightphase.com ) 7 | * - Updated for 0.8.4 by James George on 12/10/2014 for Specular (http://specular.cc) (how time flies!) 8 | * 9 | * Copyright (c) 2010-2015 10 | */ 11 | 12 | #pragma onc 13 | 14 | #include "ofMain.h" 15 | #include "ofxImageSequence.h" 16 | 17 | class ofApp : public ofBaseApp 18 | { 19 | 20 | public: 21 | void setup(); 22 | void update(); 23 | void draw(); 24 | 25 | void keyPressed (int key); 26 | void keyReleased(int key); 27 | void mouseMoved(int x, int y ); 28 | void mouseDragged(int x, int y, int button); 29 | void mousePressed(int x, int y, int button); 30 | void mouseReleased(int x, int y, int button); 31 | void windowResized(int w, int h); 32 | 33 | ofxImageSequence sequence; 34 | ofImage background; 35 | bool playing; 36 | }; 37 | 38 | -------------------------------------------------------------------------------- /example-threaded/example-threaded.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio 2012 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openframeworksLib", "..\..\..\libs\openFrameworksCompiled\project\vs\openframeworksLib.vcxproj", "{5837595D-ACA9-485C-8E76-729040CE4B0B}" 4 | EndProject 5 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example-threaded", "example-threaded.vcxproj", "{7FD42DF7-442E-479A-BA76-D0022F99702A}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|Win32 = Debug|Win32 10 | Release|Win32 = Release|Win32 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|Win32.ActiveCfg = Debug|Win32 14 | {5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|Win32.Build.0 = Debug|Win32 15 | {5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|Win32.ActiveCfg = Release|Win32 16 | {5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|Win32.Build.0 = Release|Win32 17 | {7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|Win32.ActiveCfg = Debug|Win32 18 | {7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|Win32.Build.0 = Debug|Win32 19 | {7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|Win32.ActiveCfg = Release|Win32 20 | {7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|Win32.Build.0 = Release|Win32 21 | EndGlobalSection 22 | GlobalSection(SolutionProperties) = preSolution 23 | HideSolutionNode = FALSE 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /example/example-imageSequence.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio 2012 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openframeworksLib", "..\..\..\libs\openFrameworksCompiled\project\vs\openframeworksLib.vcxproj", "{5837595D-ACA9-485C-8E76-729040CE4B0B}" 4 | EndProject 5 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example-imageSequence", "example-imageSequence.vcxproj", "{7FD42DF7-442E-479A-BA76-D0022F99702A}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|Win32 = Debug|Win32 10 | Release|Win32 = Release|Win32 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|Win32.ActiveCfg = Debug|Win32 14 | {5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|Win32.Build.0 = Debug|Win32 15 | {5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|Win32.ActiveCfg = Release|Win32 16 | {5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|Win32.Build.0 = Release|Win32 17 | {7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|Win32.ActiveCfg = Debug|Win32 18 | {7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|Win32.Build.0 = Debug|Win32 19 | {7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|Win32.ActiveCfg = Release|Win32 20 | {7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|Win32.Build.0 = Release|Win32 21 | EndGlobalSection 22 | GlobalSection(SolutionProperties) = preSolution 23 | HideSolutionNode = FALSE 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /example/emptyExample_vs2010.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 11.00 2 | # Visual C++ Express 2010 3 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "emptyExample_vs2010", "emptyExample_vs2010.vcxproj", "{7FD42DF7-442E-479A-BA76-D0022F99702A}" 4 | EndProject 5 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openframeworksLib", "..\..\..\libs\openFrameworksCompiled\project\vs2010\openframeworksLib.vcxproj", "{5837595D-ACA9-485C-8E76-729040CE4B0B}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|Win32 = Debug|Win32 10 | Release|Win32 = Release|Win32 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|Win32.ActiveCfg = Debug|Win32 14 | {7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|Win32.Build.0 = Debug|Win32 15 | {7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|Win32.ActiveCfg = Release|Win32 16 | {7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|Win32.Build.0 = Release|Win32 17 | {5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|Win32.ActiveCfg = Debug|Win32 18 | {5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|Win32.Build.0 = Debug|Win32 19 | {5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|Win32.ActiveCfg = Release|Win32 20 | {5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|Win32.Build.0 = Release|Win32 21 | EndGlobalSection 22 | GlobalSection(SolutionProperties) = preSolution 23 | HideSolutionNode = FALSE 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /example/example-imageSequence.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | src 6 | 7 | 8 | src 9 | 10 | 11 | addons\ofxImageSequence\src 12 | 13 | 14 | 15 | 16 | {d8376475-7454-4a24-b08a-aac121d3ad6f} 17 | 18 | 19 | {e6eb17d3-a01b-4bc3-bafe-f7154ab852d9} 20 | 21 | 22 | {ddbfe687-55cf-49cc-bcc8-e852dd6e6899} 23 | 24 | 25 | {da498873-d257-4226-8b4d-043d337d2a5c} 26 | 27 | 28 | 29 | 30 | src 31 | 32 | 33 | addons\ofxImageSequence\src 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /example-threaded/example-threaded.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | src 6 | 7 | 8 | src 9 | 10 | 11 | addons\ofxImageSequence\src 12 | 13 | 14 | 15 | 16 | {d8376475-7454-4a24-b08a-aac121d3ad6f} 17 | 18 | 19 | {e6eb17d3-a01b-4bc3-bafe-f7154ab852d9} 20 | 21 | 22 | {ddbfe687-55cf-49cc-bcc8-e852dd6e6899} 23 | 24 | 25 | {da498873-d257-4226-8b4d-043d337d2a5c} 26 | 27 | 28 | 29 | 30 | src 31 | 32 | 33 | addons\ofxImageSequence\src 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /example/src/ofApp.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * ofApp.cpp 3 | * 4 | * ofxImageSequence example project 5 | * 6 | * Created by James George, http://www.jamesgeorge.org 7 | * in collaboration with FlightPhase http://www.flightphase.com 8 | * - Updated for 0.8.4 by James George on 12/10/2014 for Specular (http://specular.cc) (how time flies!) 9 | * 10 | * Permission is hereby granted, free of charge, to any person 11 | * obtaining a copy of this software and associated documentation 12 | * files (the "Software"), to deal in the Software without 13 | * restriction, including without limitation the rights to use, 14 | * copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | * copies of the Software, and to permit persons to whom the 16 | * Software is furnished to do so, subject to the following 17 | * conditions: 18 | * 19 | * The above copyright notice and this permission notice shall be 20 | * included in all copies or substantial portions of the Software. 21 | * 22 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 24 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 27 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 29 | * OTHER DEALINGS IN THE SOFTWARE. 30 | * 31 | * ---------------------- 32 | * 33 | * simple ofxImageSequence example using Muybridge horse 34 | */ 35 | 36 | #include "ofApp.h" 37 | 38 | //-------------------------------------------------------------- 39 | void ofApp::setup(){ 40 | //File format for the example frames is 41 | //frame01.png 42 | //this creates a method call where the parameters 43 | //prefix is frame, file type is png, from frame 1 to 11, 2 digits in the number 44 | sequence.loadSequence("frame", "png", 1, 11, 2); 45 | sequence.preloadAllFrames(); //this way there is no stutter when loading frames 46 | sequence.setFrameRate(10); //set to ten frames per second for Muybridge's horse. 47 | 48 | playing = false; //controls if playing automatically, or controlled by the mouse 49 | } 50 | 51 | //-------------------------------------------------------------- 52 | void ofApp::update(){ 53 | 54 | } 55 | 56 | //-------------------------------------------------------------- 57 | void ofApp::draw(){ 58 | 59 | if(playing){ 60 | //get the frame based on the current time and draw it 61 | sequence.getFrameForTime(ofGetElapsedTimef())->draw(0,0); 62 | } 63 | else { 64 | //get the sequence frame that maps to the mouseX position 65 | float percent = ofMap(mouseX, 0, ofGetWidth(), 0, 1.0, true); 66 | 67 | //draw it. 68 | sequence.getFrameAtPercent(percent)->draw(0, 0); 69 | } 70 | } 71 | 72 | //-------------------------------------------------------------- 73 | void ofApp::keyPressed(int key){ 74 | //hit any key to toggle playing 75 | playing = !playing; 76 | } 77 | 78 | //-------------------------------------------------------------- 79 | void ofApp::keyReleased(int key){ 80 | 81 | } 82 | 83 | //-------------------------------------------------------------- 84 | void ofApp::mouseMoved(int x, int y ){ 85 | 86 | } 87 | 88 | //-------------------------------------------------------------- 89 | void ofApp::mouseDragged(int x, int y, int button){ 90 | 91 | } 92 | 93 | //-------------------------------------------------------------- 94 | void ofApp::mousePressed(int x, int y, int button){ 95 | 96 | } 97 | 98 | //-------------------------------------------------------------- 99 | void ofApp::mouseReleased(int x, int y, int button){ 100 | 101 | } 102 | 103 | //-------------------------------------------------------------- 104 | void ofApp::windowResized(int w, int h){ 105 | 106 | } 107 | 108 | -------------------------------------------------------------------------------- /example-threaded/src/ofApp.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * ofApp.cpp 3 | * 4 | * ofxImageSequence example project 5 | * 6 | * Created by James George, http://www.jamesgeorge.org 7 | * in collaboration with FlightPhase http://www.flightphase.com 8 | * - Updated for 0.8.4 by James George on 12/10/2014 for Specular (http://specular.cc) (how time flies!) 9 | * 10 | * Permission is hereby granted, free of charge, to any person 11 | * obtaining a copy of this software and associated documentation 12 | * files (the "Software"), to deal in the Software without 13 | * restriction, including without limitation the rights to use, 14 | * copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | * copies of the Software, and to permit persons to whom the 16 | * Software is furnished to do so, subject to the following 17 | * conditions: 18 | * 19 | * The above copyright notice and this permission notice shall be 20 | * included in all copies or substantial portions of the Software. 21 | * 22 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 24 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 27 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 29 | * OTHER DEALINGS IN THE SOFTWARE. 30 | * 31 | * ---------------------- 32 | * 33 | * simple ofxImageSequence example using Muybridge horse 34 | */ 35 | 36 | #include "ofApp.h" 37 | 38 | //-------------------------------------------------------------- 39 | void ofApp::setup(){ 40 | //File format for the example frames is 41 | //frame01.png 42 | //this creates a method call where the parameters 43 | //prefix is frame, file type is png, from frame 1 to 11, 2 digits in the number 44 | 45 | //sequence.loadSequence("frame", "png", 1, 11, 2); 46 | //sequence.preloadAllFrames(); //this way there is no stutter when loading frames 47 | sequence.enableThreadedLoad(true); 48 | sequence.setExtension("png"); 49 | sequence.loadSequence("frames"); 50 | 51 | //sequence.setFrameRate(10); //set to ten frames per second for Muybridge's horse. 52 | 53 | playing = false; //controls if playing automatically, or controlled by the mouse 54 | } 55 | 56 | //-------------------------------------------------------------- 57 | void ofApp::update(){ 58 | 59 | } 60 | 61 | //-------------------------------------------------------------- 62 | void ofApp::draw(){ 63 | 64 | if(sequence.isLoading()){ 65 | ofBackground(255,0,0); 66 | } 67 | else{ 68 | ofBackground(0); 69 | if(playing){ 70 | //get the frame based on the current time and draw it 71 | sequence.getFrameForTime(ofGetElapsedTimef())->draw(0,0); 72 | } 73 | else { 74 | //get the sequence frame that maps to the mouseX position 75 | float percent = ofMap(mouseX, 0, ofGetWidth(), 0, 1.0, true); 76 | 77 | //draw it. 78 | sequence.getFrameAtPercent(percent)->draw(0, 0); 79 | } 80 | } 81 | } 82 | 83 | //-------------------------------------------------------------- 84 | void ofApp::keyPressed(int key){ 85 | //hit any key to toggle playing 86 | playing = !playing; 87 | } 88 | 89 | //-------------------------------------------------------------- 90 | void ofApp::keyReleased(int key){ 91 | 92 | } 93 | 94 | //-------------------------------------------------------------- 95 | void ofApp::mouseMoved(int x, int y ){ 96 | 97 | } 98 | 99 | //-------------------------------------------------------------- 100 | void ofApp::mouseDragged(int x, int y, int button){ 101 | 102 | } 103 | 104 | //-------------------------------------------------------------- 105 | void ofApp::mousePressed(int x, int y, int button){ 106 | 107 | } 108 | 109 | //-------------------------------------------------------------- 110 | void ofApp::mouseReleased(int x, int y, int button){ 111 | 112 | } 113 | 114 | //-------------------------------------------------------------- 115 | void ofApp::windowResized(int w, int h){ 116 | 117 | } 118 | 119 | -------------------------------------------------------------------------------- /example/example-imageSequence.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | 14 | {7FD42DF7-442E-479A-BA76-D0022F99702A} 15 | Win32Proj 16 | emptyExample 17 | 18 | 19 | 20 | Application 21 | Unicode 22 | v110 23 | 24 | 25 | Application 26 | Unicode 27 | true 28 | v110 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | bin\ 42 | obj\$(Configuration)\ 43 | $(ProjectName)_debug 44 | true 45 | true 46 | 47 | 48 | bin\ 49 | obj\$(Configuration)\ 50 | false 51 | 52 | 53 | 54 | Disabled 55 | true 56 | EnableFastChecks 57 | %(PreprocessorDefinitions) 58 | MultiThreadedDebugDLL 59 | Level3 60 | EditAndContinue 61 | %(AdditionalIncludeDirectories);src;..\..\..\addons\ofxImageSequence\src 62 | CompileAsCpp 63 | 64 | 65 | true 66 | Console 67 | false 68 | %(AdditionalDependencies) 69 | %(AdditionalLibraryDirectories) 70 | 71 | 72 | 73 | 74 | false 75 | %(PreprocessorDefinitions) 76 | MultiThreadedDLL 77 | Level3 78 | %(AdditionalIncludeDirectories);src;..\..\..\addons\ofxImageSequence\src 79 | CompileAsCpp 80 | true 81 | 82 | 83 | false 84 | false 85 | Console 86 | true 87 | true 88 | false 89 | %(AdditionalDependencies) 90 | %(AdditionalLibraryDirectories) 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | {5837595d-aca9-485c-8e76-729040ce4b0b} 105 | 106 | 107 | 108 | 109 | /D_DEBUG %(AdditionalOptions) 110 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /example-threaded/example-threaded.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | 14 | {7FD42DF7-442E-479A-BA76-D0022F99702A} 15 | Win32Proj 16 | emptyExample 17 | 18 | 19 | 20 | Application 21 | Unicode 22 | v110 23 | 24 | 25 | Application 26 | Unicode 27 | true 28 | v110 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | bin\ 42 | obj\$(Configuration)\ 43 | $(ProjectName)_debug 44 | true 45 | true 46 | 47 | 48 | bin\ 49 | obj\$(Configuration)\ 50 | false 51 | 52 | 53 | 54 | Disabled 55 | true 56 | EnableFastChecks 57 | %(PreprocessorDefinitions) 58 | MultiThreadedDebugDLL 59 | Level3 60 | EditAndContinue 61 | %(AdditionalIncludeDirectories);src;..\..\..\addons\ofxImageSequence\src 62 | CompileAsCpp 63 | 64 | 65 | true 66 | Console 67 | false 68 | %(AdditionalDependencies) 69 | %(AdditionalLibraryDirectories) 70 | 71 | 72 | 73 | 74 | false 75 | %(PreprocessorDefinitions) 76 | MultiThreadedDLL 77 | Level3 78 | %(AdditionalIncludeDirectories);src;..\..\..\addons\ofxImageSequence\src 79 | CompileAsCpp 80 | true 81 | 82 | 83 | false 84 | false 85 | Console 86 | true 87 | true 88 | false 89 | %(AdditionalDependencies) 90 | %(AdditionalLibraryDirectories) 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | {5837595d-aca9-485c-8e76-729040ce4b0b} 105 | 106 | 107 | 108 | 109 | /D_DEBUG %(AdditionalOptions) 110 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /src/ofxImageSequence.h: -------------------------------------------------------------------------------- 1 | /** 2 | * ofxImageSequence.h 3 | * 4 | * Created by James George, http://www.jamesgeorge.org 5 | * in collaboration with Flightphase http://www.flightphase.com 6 | * - Updated for 0.8.4 by James George on 12/10/2014 for Specular (http://specular.cc) (how time flies!) 7 | * 8 | * Permission is hereby granted, free of charge, to any person 9 | * obtaining a copy of this software and associated documentation 10 | * files (the "Software"), to deal in the Software without 11 | * restriction, including without limitation the rights to use, 12 | * copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the 14 | * Software is furnished to do so, subject to the following 15 | * conditions: 16 | * 17 | * The above copyright notice and this permission notice shall be 18 | * included in all copies or substantial portions of the Software. 19 | * 20 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | * OTHER DEALINGS IN THE SOFTWARE. 28 | * 29 | * ---------------------- 30 | * 31 | * ofxImageSequence is a class for easily loading a series of image files 32 | * and accessing them like you would frames of a movie. 33 | * 34 | * This class loads only textures to the graphics card and does not store pixel data in memory. This helps with 35 | * fast, random access drawing of seuqences 36 | * 37 | * Why would you use this instead of a movie file? A few reasons, 38 | * If you want truly random frame access with no lag on large images, ofxImageSequence is a good way to go 39 | * If you need a movie with alpha channel the only readily available codec is Animation (PNG) which is slow at large resolutions, so this class can help with that 40 | * If you want to easily access frames based on percents this class makes that easy 41 | * 42 | * //TODO: Extend ofBaseDraws 43 | * //TODO: experiment with storing pixels intead of textures and doing upload every frame 44 | * //TODO: integrate ofDirectory to API 45 | */ 46 | 47 | #pragma once 48 | 49 | #include "ofMain.h" 50 | 51 | class ofxImageSequenceLoader; 52 | class ofxImageSequence : public ofBaseHasTexture { 53 | public: 54 | 55 | ofxImageSequence(); 56 | ~ofxImageSequence(); 57 | 58 | //sets an extension, like png or jpg 59 | void setExtension(string prefix); 60 | void setMaxFrames(int maxFrames); //set to limit the number of frames. 0 or less means no limit 61 | void enableThreadedLoad(bool enable); 62 | 63 | /** 64 | * use this method to load sequences formatted like: 65 | * path/to/images/myImage8.png 66 | * path/to/images/myImage9.png 67 | * path/to/images/myImage10.png 68 | * 69 | * for this sequence the parameters would be: 70 | * prefix => "path/to/images/myImage" 71 | * filetype => "png" 72 | * startIndex => 8 73 | * endIndex => 10 74 | */ 75 | bool loadSequence(string prefix, string filetype, int startIndex, int endIndex); 76 | 77 | /** 78 | * Use this function to load sequences formatted like 79 | * 80 | * path/to/images/myImage004.jpg 81 | * path/to/images/myImage005.jpg 82 | * path/to/images/myImage006.jpg 83 | * path/to/images/myImage007.jpg 84 | * 85 | * for this sequence the parameters would be: 86 | * prefix => "path/to/images/myImage" 87 | * filetype => "jpg" 88 | * startIndex => 4 89 | * endIndex => 7 90 | * numDigits => 3 91 | */ 92 | bool loadSequence(string prefix, string filetype, int startIndex, int endIndex, int numDigits); 93 | bool loadSequence(string folder); 94 | 95 | void cancelLoad(); 96 | void preloadAllFrames(); //immediately loads all frames in the sequence, memory intensive but fastest scrubbing 97 | void unloadSequence(); //clears out all frames and frees up memory 98 | 99 | void setFrameRate(float rate); //used for getting frames by time, default is 30fps 100 | 101 | //these get textures, but also change the 102 | OF_DEPRECATED_MSG("Use getTextureForFrame instead.", ofTexture* getFrame(int index)); //returns a frame at a given index 103 | OF_DEPRECATED_MSG("Use getTextureForTime instead.", ofTexture* getFrameForTime(float time)); //returns a frame at a given time, used setFrameRate to set time 104 | OF_DEPRECATED_MSG("Use getTextureForPercent instead.", ofTexture* getFrameAtPercent(float percent)); //returns a frame at a given time, used setFrameRate to set time 105 | 106 | ofTexture& getTextureForFrame(int index); //returns a frame at a given index 107 | ofTexture& getTextureForTime(float time); //returns a frame at a given time, used setFrameRate to set time 108 | ofTexture& getTextureForPercent(float percent); //returns a frame at a given time, used setFrameRate to set time 109 | 110 | //if usinsg getTextureRef() use these to change the internal state 111 | void setFrame(int index); 112 | void setFrameForTime(float time); 113 | void setFrameAtPercent(float percent); 114 | 115 | string getFilePath(int index); 116 | 117 | OF_DEPRECATED_MSG("Use getTexture() instead.", ofTexture& getTextureReference()); 118 | 119 | virtual ofTexture& getTexture(); 120 | virtual const ofTexture& getTexture() const; 121 | 122 | virtual void setUseTexture(bool bUseTex){/* not used */}; 123 | virtual bool isUsingTexture() const{return true;} 124 | 125 | int getFrameIndexAtPercent(float percent); //returns percent (0.0 - 1.0) for a given frame 126 | float getPercentAtFrameIndex(int index); //returns a frame index for a percent 127 | 128 | int getCurrentFrame(){ return currentFrame; }; 129 | int getTotalFrames(); //returns how many frames are in the sequence 130 | float getLengthInSeconds(); //returns the sequence duration based on frame rate 131 | 132 | float getWidth(); //returns the width/height of the sequence 133 | float getHeight(); 134 | bool isLoaded(); //returns true if the sequence has been loaded 135 | bool isLoading(); //returns true if loading during thread 136 | void loadFrame(int imageIndex); //allows you to load (cache) a frame to avoid a stutter when loading. use this to "read ahead" if you want 137 | 138 | void setMinMagFilter(int minFilter, int magFilter); 139 | 140 | //Do not call directly 141 | //called internally from threaded loader 142 | void completeLoading(); 143 | bool preloadAllFilenames(); //searches for all filenames based on load input 144 | float percentLoaded(); 145 | 146 | protected: 147 | ofxImageSequenceLoader* threadLoader; 148 | 149 | vector sequence; 150 | vector filenames; 151 | vector loadFailed; 152 | int currentFrame; 153 | ofTexture texture; 154 | string extension; 155 | 156 | string folderToLoad; 157 | int curLoadFrame; 158 | int maxFrames; 159 | bool useThread; 160 | bool loaded; 161 | 162 | float width, height; 163 | int lastFrameLoaded; 164 | float frameRate; 165 | 166 | int minFilter; 167 | int magFilter; 168 | }; 169 | 170 | 171 | 172 | 173 | -------------------------------------------------------------------------------- /example/emptyExample_vs2010.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | 14 | {7FD42DF7-442E-479A-BA76-D0022F99702A} 15 | emptyExample 16 | Win32Proj 17 | 18 | 19 | 20 | Application 21 | Unicode 22 | true 23 | 24 | 25 | Application 26 | Unicode 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | <_ProjectFileVersion>10.0.30319.1 40 | bin\ 41 | obj\$(Configuration)\ 42 | true 43 | true 44 | bin\ 45 | obj\$(Configuration)\ 46 | false 47 | $(ProjectName)_debug 48 | $(ProjectName) 49 | 50 | 51 | 52 | Disabled 53 | ..\..\..\libs\openFrameworks;..\..\..\libs\openFrameworks\graphics;..\..\..\libs\openFrameworks\app;..\..\..\libs\openFrameworks\sound;..\..\..\libs\openFrameworks\utils;..\..\..\libs\openFrameworks\communication;..\..\..\libs\openFrameworks\video;..\..\..\libs\openFrameworks\math;..\..\..\libs\openFrameworks\types;..\..\..\libs\openFrameworks\events;..\..\..\libs\glut\include;..\..\..\libs\rtAudio\include;..\..\..\libs\quicktime\include;..\..\..\libs\freetype\include;..\..\..\libs\freetype\include\freetype2;..\..\..\libs\freeImage\include;..\..\..\libs\fmodex\include;..\..\..\libs\videoInput\include;..\..\..\libs\glew\include\;..\..\..\libs\glu\include;..\..\..\libs\poco\include;..\..\..\addons;..\..\..\libs\openFrameworks\gl;..\..\..\libs\openFrameworks\3d;..\..\..\libs\tess2\include;..\..\..\libs\cairo\include\cairo%(AdditionalIncludeDirectories) 54 | WIN32;_DEBUG;_CONSOLE;POCO_STATIC;CAIRO_WIN32_STATIC_BUILD;DISABLE_SOME_FLOATING_POINT;%(PreprocessorDefinitions) 55 | true 56 | EnableFastChecks 57 | MultiThreadedDebugDLL 58 | 59 | 60 | Level3 61 | EditAndContinue 62 | 63 | 64 | openframeworksLibDebug.lib;cairo-static.lib;pixman-1.lib;msimg32.lib;OpenGL32.lib;GLu32.lib;kernel32.lib;setupapi.lib;Vfw32.lib;comctl32.lib;glut32.lib;rtAudioD.lib;videoInput.lib;libfreetype.lib;FreeImage.lib;qtmlClient.lib;dsound.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;glew32s.lib;fmodex_vc.lib;glu32.lib;PocoFoundationmdd.lib;PocoNetmdd.lib;PocoUtilmdd.lib;PocoXMLmdd.lib;Ws2_32.lib;tess2.lib;%(AdditionalDependencies) 65 | $(OutDir)$(TargetName)$(TargetExt) 66 | ..\..\..\libs\glut\lib\vs2010;..\..\..\libs\rtAudio\lib\vs2010;..\..\..\libs\FreeImage\lib\vs2010;..\..\..\libs\freetype\lib\vs2010;..\..\..\libs\quicktime\lib\vs2010;..\..\..\libs\fmodex\lib\vs2010;..\..\..\libs\videoInput\lib\vs2010;..\..\..\libs\cairo\lib\vs2010;..\..\..\libs\cairo\lib\vs2010;..\..\..\libs\glew\lib\vs2010;..\..\..\libs\glu\lib\vs2010;..\..\..\libs\Poco\lib\vs2010;..\..\..\libs\openFrameworksCompiled\lib\vs2010;..\..\..\libs\tess2\lib\vs2010;%(AdditionalLibraryDirectories) 67 | atlthunk.lib; LIBC.lib; LIBCMT;%(IgnoreSpecificDefaultLibraries) 68 | true 69 | $(TargetDir)$(TargetName)_debugInfo.pdb 70 | Console 71 | false 72 | 73 | 74 | MachineX86 75 | 76 | 77 | adding DLLs and creating data folder 78 | xcopy /e /i /y "$(ProjectDir)..\..\..\export\vs2010\*.dll" "$(ProjectDir)bin" 79 | if not exist "$(ProjectDir)bin\data" mkdir "$(ProjectDir)bin\data" 80 | 81 | 82 | 83 | 84 | 85 | false 86 | ..\..\..\libs\openFrameworks;..\..\..\libs\openFrameworks\graphics;..\..\..\libs\openFrameworks\app;..\..\..\libs\openFrameworks\sound;..\..\..\libs\openFrameworks\utils;..\..\..\libs\openFrameworks\communication;..\..\..\libs\openFrameworks\video;..\..\..\libs\openFrameworks\math;..\..\..\libs\openFrameworks\types;..\..\..\libs\openFrameworks\events;..\..\..\libs\glut\include;..\..\..\libs\rtAudio\include;..\..\..\libs\quicktime\include;..\..\..\libs\freetype\include;..\..\..\libs\freetype\include\freetype2;..\..\..\libs\freeImage\include;..\..\..\libs\fmodex\include;..\..\..\libs\videoInput\include;..\..\..\libs\glew\include\;..\..\..\libs\glu\include;..\..\..\libs\poco\include;..\..\..\addons;..\..\..\libs\openFrameworks\gl;..\..\..\libs\openFrameworks\3d;..\..\..\libs\tess2\include;..\..\..\libs\cairo\include\cairo%(AdditionalIncludeDirectories) 87 | WIN32;NDEBUG;_CONSOLE;POCO_STATIC;CAIRO_WIN32_STATIC_BUILD;DISABLE_SOME_FLOATING_POINT;%(PreprocessorDefinitions) 88 | MultiThreadedDLL 89 | 90 | 91 | Level3 92 | 93 | 94 | 95 | 96 | openframeworksLib.lib;cairo-static.lib;pixman-1.lib;msimg32.lib;OpenGL32.lib;GLu32.lib;kernel32.lib;setupapi.lib;glut32.lib;rtAudio.lib;videoInput.lib;libfreetype.lib;FreeImage.lib;qtmlClient.lib;dsound.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;glew32s.lib;fmodex_vc.lib;glu32.lib;PocoFoundationmd.lib;PocoNetmd.lib;PocoUtilmd.lib;PocoXMLmd.lib;tess2.lib;%(AdditionalDependencies) 97 | ..\..\..\libs\glut\lib\vs2010;..\..\..\libs\rtAudio\lib\vs2010;..\..\..\libs\FreeImage\lib\vs2010;..\..\..\libs\freetype\lib\vs2010;..\..\..\libs\quicktime\lib\vs2010;..\..\..\libs\fmodex\lib\vs2010;..\..\..\libs\videoInput\lib\vs2010;..\..\..\libs\cairo\lib\vs2010;..\..\..\libs\cairo\lib\vs2010;..\..\..\libs\glew\lib\vs2010;..\..\..\libs\glu\lib\vs2010;..\..\..\libs\Poco\lib\vs2010;..\..\..\libs\openFrameworksCompiled\lib\vs2010;..\..\..\libs\tess2\lib\vs2010;%(AdditionalLibraryDirectories) 98 | false 99 | atlthunk.lib; LIBC.lib; LIBCMT;%(IgnoreSpecificDefaultLibraries) 100 | false 101 | Console 102 | true 103 | true 104 | false 105 | 106 | 107 | MachineX86 108 | Default 109 | 110 | 111 | adding DLLs and creating data folder 112 | xcopy /e /i /y "$(ProjectDir)\..\..\..\export\vs2010\*.dll" "$(ProjectDir)\bin" 113 | if not exist "$(ProjectDir)\bin\data" mkdir "$(ProjectDir)\bin\data" 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | {5837595d-aca9-485c-8e76-729040ce4b0b} 128 | false 129 | 130 | 131 | 132 | 133 | 134 | -------------------------------------------------------------------------------- /src/ofxImageSequence.cpp: -------------------------------------------------------------------------------- 1 | /** 2 | * ofxImageSequence.cpp 3 | * 4 | * Created by James George, http://www.jamesgeorge.org 5 | * in collaboration with FlightPhase http://www.flightphase.com 6 | * - Updated for 0.8.4 by James George on 12/10/2014 for Specular (http://specular.cc) (how time flies!) 7 | * 8 | * Permission is hereby granted, free of charge, to any person 9 | * obtaining a copy of this software and associated documentation 10 | * files (the "Software"), to deal in the Software without 11 | * restriction, including without limitation the rights to use, 12 | * copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the 14 | * Software is furnished to do so, subject to the following 15 | * conditions: 16 | * 17 | * The above copyright notice and this permission notice shall be 18 | * included in all copies or substantial portions of the Software. 19 | * 20 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | * OTHER DEALINGS IN THE SOFTWARE. 28 | * 29 | * ---------------------- 30 | * 31 | * ofxImageSequence is a class for easily loading a series of image files 32 | * and accessing them like you would frames of a movie. 33 | * 34 | * This class loads only textures to the graphics card and does not store pixel data in memory. This helps with 35 | * fast, random access drawing of seuqences 36 | * 37 | * Why would you use this instead of a movie file? A few reasons, 38 | * If you want truly random frame access with no lag on large images, ofxImageSequence allows it 39 | * If you need a movie with alpha channel the only readily available codec is Animation (PNG) which is slow at large resolutions, so this class can help with that 40 | * If you want to easily access frames based on percents this class makes that easy 41 | * 42 | */ 43 | 44 | #include "ofxImageSequence.h" 45 | 46 | class ofxImageSequenceLoader : public ofThread 47 | { 48 | public: 49 | 50 | bool loading; 51 | bool cancelLoading; 52 | ofxImageSequence& sequenceRef; 53 | 54 | ofxImageSequenceLoader(ofxImageSequence* seq) 55 | : sequenceRef(*seq) 56 | , loading(true) 57 | , cancelLoading(false) 58 | { 59 | startThread(true); 60 | } 61 | 62 | ~ofxImageSequenceLoader(){ 63 | cancel(); 64 | } 65 | 66 | void cancel(){ 67 | if(loading){ 68 | ofRemoveListener(ofEvents().update, this, &ofxImageSequenceLoader::updateThreadedLoad); 69 | lock(); 70 | cancelLoading = true; 71 | unlock(); 72 | loading = false; 73 | waitForThread(true); 74 | } 75 | } 76 | 77 | void threadedFunction(){ 78 | 79 | ofAddListener(ofEvents().update, this, &ofxImageSequenceLoader::updateThreadedLoad); 80 | 81 | if(!sequenceRef.preloadAllFilenames()){ 82 | loading = false; 83 | return; 84 | } 85 | 86 | if(cancelLoading){ 87 | loading = false; 88 | cancelLoading = false; 89 | return; 90 | } 91 | 92 | sequenceRef.preloadAllFrames(); 93 | 94 | loading = false; 95 | } 96 | 97 | void updateThreadedLoad(ofEventArgs& args){ 98 | if(loading){ 99 | return; 100 | } 101 | ofRemoveListener(ofEvents().update, this, &ofxImageSequenceLoader::updateThreadedLoad); 102 | 103 | if(sequenceRef.getTotalFrames() > 0){ 104 | sequenceRef.completeLoading(); 105 | } 106 | } 107 | 108 | }; 109 | 110 | ofxImageSequence::ofxImageSequence() 111 | { 112 | loaded = false; 113 | useThread = false; 114 | frameRate = 30.0f; 115 | lastFrameLoaded = -1; 116 | currentFrame = 0; 117 | maxFrames = 0; 118 | curLoadFrame = 0; 119 | threadLoader = NULL; 120 | } 121 | 122 | ofxImageSequence::~ofxImageSequence() 123 | { 124 | unloadSequence(); 125 | } 126 | 127 | bool ofxImageSequence::loadSequence(string prefix, string filetype, int startDigit, int endDigit) 128 | { 129 | return loadSequence(prefix, filetype, startDigit, endDigit, 0); 130 | } 131 | 132 | bool ofxImageSequence::loadSequence(string prefix, string filetype, int startDigit, int endDigit, int numDigits) 133 | { 134 | unloadSequence(); 135 | 136 | char imagename[1024]; 137 | stringstream format; 138 | int numFiles = endDigit - startDigit+1; 139 | if(numFiles <= 0 ){ 140 | ofLogError("ofxImageSequence::loadSequence") << "No image files found."; 141 | return false; 142 | } 143 | 144 | if(numDigits != 0){ 145 | format < 0){ 218 | numFiles = MIN(dir.listDir(folderToLoad), maxFrames); 219 | } 220 | else{ 221 | numFiles = dir.listDir(folderToLoad); 222 | } 223 | 224 | if(numFiles == 0) { 225 | ofLogError("ofxImageSequence::loadSequence") << "No image files found in " << folderToLoad; 226 | return false; 227 | } 228 | 229 | // read the directory for the images 230 | #ifdef TARGET_LINUX 231 | dir.sort(); 232 | #endif 233 | 234 | 235 | for(int i = 0; i < numFiles; i++) { 236 | 237 | filenames.push_back(dir.getPath(i)); 238 | sequence.push_back(ofPixels()); 239 | loadFailed.push_back(false); 240 | } 241 | return true; 242 | } 243 | 244 | //set to limit the number of frames. negative means no limit 245 | void ofxImageSequence::setMaxFrames(int newMaxFrames) 246 | { 247 | maxFrames = MAX(newMaxFrames, 0); 248 | if(loaded){ 249 | ofLogError("ofxImageSequence::setMaxFrames") << "Max frames must be called before load"; 250 | } 251 | } 252 | 253 | void ofxImageSequence::setExtension(string ext) 254 | { 255 | extension = ext; 256 | } 257 | 258 | void ofxImageSequence::enableThreadedLoad(bool enable){ 259 | 260 | if(loaded){ 261 | ofLogError("ofxImageSequence::enableThreadedLoad") << "Need to enable threaded loading before calling load"; 262 | } 263 | useThread = enable; 264 | } 265 | 266 | void ofxImageSequence::cancelLoad() 267 | { 268 | if(useThread && threadLoader != NULL){ 269 | threadLoader->cancel(); 270 | 271 | delete threadLoader; 272 | threadLoader = NULL; 273 | } 274 | } 275 | 276 | void ofxImageSequence::setMinMagFilter(int newMinFilter, int newMagFilter) 277 | { 278 | minFilter = newMinFilter; 279 | magFilter = newMagFilter; 280 | texture.setTextureMinMagFilter(minFilter, magFilter); 281 | } 282 | 283 | void ofxImageSequence::preloadAllFrames() 284 | { 285 | if(sequence.size() == 0){ 286 | ofLogError("ofxImageSequence::loadFrame") << "Calling preloadAllFrames on unitialized image sequence."; 287 | return; 288 | } 289 | 290 | for(int i = 0; i < sequence.size(); i++){ 291 | //threaded stuff 292 | if(useThread){ 293 | if(threadLoader == NULL){ 294 | return; 295 | } 296 | threadLoader->lock(); 297 | bool shouldExit = threadLoader->cancelLoading; 298 | threadLoader->unlock(); 299 | if(shouldExit){ 300 | return; 301 | } 302 | 303 | ofSleepMillis(15); 304 | } 305 | curLoadFrame = i; 306 | if(!ofLoadImage(sequence[i], filenames[i])){ 307 | loadFailed[i] = true; 308 | ofLogError("ofxImageSequence::loadFrame") << "Image failed to load: " << filenames[i]; 309 | } 310 | } 311 | } 312 | 313 | float ofxImageSequence::percentLoaded(){ 314 | if(isLoaded()){ 315 | return 1.0; 316 | } 317 | if(isLoading() && sequence.size() > 0){ 318 | return 1.0*curLoadFrame / sequence.size(); 319 | } 320 | return 0.0; 321 | } 322 | 323 | void ofxImageSequence::loadFrame(int imageIndex) 324 | { 325 | if(lastFrameLoaded == imageIndex){ 326 | return; 327 | } 328 | 329 | if(imageIndex < 0 || imageIndex >= sequence.size()){ 330 | ofLogError("ofxImageSequence::loadFrame") << "Calling a frame out of bounds: " << imageIndex; 331 | return; 332 | } 333 | 334 | if(!sequence[imageIndex].isAllocated() && !loadFailed[imageIndex]){ 335 | if(!ofLoadImage(sequence[imageIndex], filenames[imageIndex])){ 336 | loadFailed[imageIndex] = true; 337 | ofLogError("ofxImageSequence::loadFrame") << "Image failed to load: " << filenames[imageIndex]; 338 | } 339 | } 340 | 341 | if(loadFailed[imageIndex]){ 342 | return; 343 | } 344 | 345 | texture.loadData(sequence[imageIndex]); 346 | 347 | lastFrameLoaded = imageIndex; 348 | 349 | } 350 | 351 | float ofxImageSequence::getPercentAtFrameIndex(int index) 352 | { 353 | return ofMap(index, 0, sequence.size()-1, 0, 1.0, true); 354 | } 355 | 356 | float ofxImageSequence::getWidth() 357 | { 358 | return width; 359 | } 360 | 361 | float ofxImageSequence::getHeight() 362 | { 363 | return height; 364 | } 365 | 366 | void ofxImageSequence::unloadSequence() 367 | { 368 | if(threadLoader != NULL){ 369 | delete threadLoader; 370 | threadLoader = NULL; 371 | } 372 | 373 | sequence.clear(); 374 | filenames.clear(); 375 | loadFailed.clear(); 376 | 377 | loaded = false; 378 | width = 0; 379 | height = 0; 380 | curLoadFrame = 0; 381 | lastFrameLoaded = -1; 382 | currentFrame = 0; 383 | 384 | } 385 | 386 | void ofxImageSequence::setFrameRate(float rate) 387 | { 388 | frameRate = rate; 389 | } 390 | 391 | string ofxImageSequence::getFilePath(int index){ 392 | if(index > 0 && index < filenames.size()){ 393 | return filenames[index]; 394 | } 395 | ofLogError("ofxImageSequence::getFilePath") << "Getting filename outside of range"; 396 | return ""; 397 | } 398 | 399 | int ofxImageSequence::getFrameIndexAtPercent(float percent) 400 | { 401 | if (percent < 0.0 || percent > 1.0) percent -= floor(percent); 402 | 403 | return MIN((int)(percent*sequence.size()), sequence.size()-1); 404 | } 405 | 406 | //deprecated 407 | ofTexture& ofxImageSequence::getTextureReference() 408 | { 409 | return getTexture(); 410 | } 411 | 412 | //deprecated 413 | ofTexture* ofxImageSequence::getFrameAtPercent(float percent) 414 | { 415 | setFrameAtPercent(percent); 416 | return &getTexture(); 417 | } 418 | 419 | //deprecated 420 | ofTexture* ofxImageSequence::getFrameForTime(float time) 421 | { 422 | setFrameForTime(time); 423 | return &getTexture(); 424 | } 425 | 426 | //deprecated 427 | ofTexture* ofxImageSequence::getFrame(int index) 428 | { 429 | setFrame(index); 430 | return &getTexture(); 431 | } 432 | 433 | ofTexture& ofxImageSequence::getTextureForFrame(int index) 434 | { 435 | setFrame(index); 436 | return getTexture(); 437 | } 438 | 439 | ofTexture& ofxImageSequence::getTextureForTime(float time) 440 | { 441 | setFrameForTime(time); 442 | return getTexture(); 443 | } 444 | 445 | ofTexture& ofxImageSequence::getTextureForPercent(float percent){ 446 | setFrameAtPercent(percent); 447 | return getTexture(); 448 | } 449 | 450 | void ofxImageSequence::setFrame(int index) 451 | { 452 | if(!loaded){ 453 | ofLogError("ofxImageSequence::setFrame") << "Calling getFrame on unitialized image sequence."; 454 | return; 455 | } 456 | 457 | if(index < 0){ 458 | ofLogError("ofxImageSequence::setFrame") << "Asking for negative index."; 459 | return; 460 | } 461 | 462 | index %= getTotalFrames(); 463 | 464 | loadFrame(index); 465 | currentFrame = index; 466 | } 467 | 468 | void ofxImageSequence::setFrameForTime(float time) 469 | { 470 | float totalTime = sequence.size() / frameRate; 471 | float percent = time / totalTime; 472 | return setFrameAtPercent(percent); 473 | } 474 | 475 | void ofxImageSequence::setFrameAtPercent(float percent) 476 | { 477 | setFrame(getFrameIndexAtPercent(percent)); 478 | } 479 | 480 | ofTexture& ofxImageSequence::getTexture() 481 | { 482 | return texture; 483 | } 484 | 485 | const ofTexture& ofxImageSequence::getTexture() const 486 | { 487 | return texture; 488 | } 489 | 490 | float ofxImageSequence::getLengthInSeconds() 491 | { 492 | return getTotalFrames() / frameRate; 493 | } 494 | 495 | int ofxImageSequence::getTotalFrames() 496 | { 497 | return sequence.size(); 498 | } 499 | 500 | bool ofxImageSequence::isLoaded(){ //returns true if the sequence has been loaded 501 | return loaded; 502 | } 503 | 504 | bool ofxImageSequence::isLoading(){ 505 | return threadLoader != NULL && threadLoader->loading; 506 | } 507 | -------------------------------------------------------------------------------- /example/imageSequence.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 42; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 11 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; 12 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; 13 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; 14 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; 15 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; }; 16 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; 17 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; 18 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; 19 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; 20 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; 21 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; 22 | E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; }; 23 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; 24 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; 25 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; 26 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 27 | E7F2793F13DA718A00827148 /* ofxImageSequence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E7F2793D13DA718A00827148 /* ofxImageSequence.cpp */; }; 28 | /* End PBXBuildFile section */ 29 | 30 | /* Begin PBXContainerItemProxy section */ 31 | E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = { 32 | isa = PBXContainerItemProxy; 33 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 34 | proxyType = 2; 35 | remoteGlobalIDString = E4B27C1510CBEB8E00536013; 36 | remoteInfo = openFrameworks; 37 | }; 38 | E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = { 39 | isa = PBXContainerItemProxy; 40 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 41 | proxyType = 1; 42 | remoteGlobalIDString = E4B27C1410CBEB8E00536013; 43 | remoteInfo = openFrameworks; 44 | }; 45 | /* End PBXContainerItemProxy section */ 46 | 47 | /* Begin PBXCopyFilesBuildPhase section */ 48 | E4C2427710CC5ABF004149E2 /* CopyFiles */ = { 49 | isa = PBXCopyFilesBuildPhase; 50 | buildActionMask = 2147483647; 51 | dstPath = ""; 52 | dstSubfolderSpec = 10; 53 | files = ( 54 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */, 55 | ); 56 | runOnlyForDeploymentPostprocessing = 0; 57 | }; 58 | /* End PBXCopyFilesBuildPhase section */ 59 | 60 | /* Begin PBXFileReference section */ 61 | BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; }; 62 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; 63 | E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; 64 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; 65 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; 66 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; 67 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; 68 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; 69 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; 70 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; 71 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; 72 | E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = emptyExampleDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; 73 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; 74 | E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; }; 75 | E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; }; 76 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; 77 | E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 78 | E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 79 | E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; 80 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; 81 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; 82 | E7F2793D13DA718A00827148 /* ofxImageSequence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxImageSequence.cpp; sourceTree = ""; }; 83 | E7F2793E13DA718A00827148 /* ofxImageSequence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxImageSequence.h; sourceTree = ""; }; 84 | /* End PBXFileReference section */ 85 | 86 | /* Begin PBXFrameworksBuildPhase section */ 87 | E4B69B590A3A1756003C02F2 /* Frameworks */ = { 88 | isa = PBXFrameworksBuildPhase; 89 | buildActionMask = 2147483647; 90 | files = ( 91 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, 92 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, 93 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, 94 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, 95 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, 96 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */, 97 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, 98 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, 99 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, 100 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, 101 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, 102 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, 103 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, 104 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, 105 | ); 106 | runOnlyForDeploymentPostprocessing = 0; 107 | }; 108 | /* End PBXFrameworksBuildPhase section */ 109 | 110 | /* Begin PBXGroup section */ 111 | BB4B014C10F69532006C3DED /* addons */ = { 112 | isa = PBXGroup; 113 | children = ( 114 | E7F2793B13DA717A00827148 /* ofxImageSequence */, 115 | ); 116 | name = addons; 117 | sourceTree = ""; 118 | }; 119 | BBAB23C913894ECA00AA2426 /* system frameworks */ = { 120 | isa = PBXGroup; 121 | children = ( 122 | E4C2424410CC5A17004149E2 /* AppKit.framework */, 123 | E4C2424510CC5A17004149E2 /* Cocoa.framework */, 124 | E4C2424610CC5A17004149E2 /* IOKit.framework */, 125 | E45BE9710E8CC7DD009D7055 /* AGL.framework */, 126 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, 127 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, 128 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */, 129 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, 130 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, 131 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, 132 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, 133 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, 134 | ); 135 | name = "system frameworks"; 136 | sourceTree = ""; 137 | }; 138 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { 139 | isa = PBXGroup; 140 | children = ( 141 | BBAB23BE13894E4700AA2426 /* GLUT.framework */, 142 | ); 143 | name = "3rd party frameworks"; 144 | sourceTree = ""; 145 | }; 146 | E4328144138ABC890047C5CB /* Products */ = { 147 | isa = PBXGroup; 148 | children = ( 149 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */, 150 | ); 151 | name = Products; 152 | sourceTree = ""; 153 | }; 154 | E45BE5980E8CC70C009D7055 /* frameworks */ = { 155 | isa = PBXGroup; 156 | children = ( 157 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, 158 | BBAB23C913894ECA00AA2426 /* system frameworks */, 159 | ); 160 | name = frameworks; 161 | sourceTree = ""; 162 | }; 163 | E4B69B4A0A3A1720003C02F2 = { 164 | isa = PBXGroup; 165 | children = ( 166 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */, 167 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */, 168 | E4B69E1C0A3A1BDC003C02F2 /* src */, 169 | E4EEC9E9138DF44700A80321 /* openFrameworks */, 170 | BB4B014C10F69532006C3DED /* addons */, 171 | E45BE5980E8CC70C009D7055 /* frameworks */, 172 | E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */, 173 | ); 174 | sourceTree = ""; 175 | }; 176 | E4B69E1C0A3A1BDC003C02F2 /* src */ = { 177 | isa = PBXGroup; 178 | children = ( 179 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, 180 | E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */, 181 | E4B69E1F0A3A1BDC003C02F2 /* testApp.h */, 182 | ); 183 | path = src; 184 | sourceTree = SOURCE_ROOT; 185 | }; 186 | E4EEC9E9138DF44700A80321 /* openFrameworks */ = { 187 | isa = PBXGroup; 188 | children = ( 189 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */, 190 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */, 191 | ); 192 | name = openFrameworks; 193 | sourceTree = ""; 194 | }; 195 | E7F2793B13DA717A00827148 /* ofxImageSequence */ = { 196 | isa = PBXGroup; 197 | children = ( 198 | E7F2793C13DA718A00827148 /* src */, 199 | ); 200 | name = ofxImageSequence; 201 | path = src; 202 | sourceTree = ""; 203 | }; 204 | E7F2793C13DA718A00827148 /* src */ = { 205 | isa = PBXGroup; 206 | children = ( 207 | E7F2793E13DA718A00827148 /* ofxImageSequence.h */, 208 | E7F2793D13DA718A00827148 /* ofxImageSequence.cpp */, 209 | ); 210 | name = src; 211 | path = ../src; 212 | sourceTree = SOURCE_ROOT; 213 | }; 214 | /* End PBXGroup section */ 215 | 216 | /* Begin PBXNativeTarget section */ 217 | E4B69B5A0A3A1756003C02F2 /* emptyExample */ = { 218 | isa = PBXNativeTarget; 219 | buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */; 220 | buildPhases = ( 221 | E4B69B580A3A1756003C02F2 /* Sources */, 222 | E4B69B590A3A1756003C02F2 /* Frameworks */, 223 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, 224 | E4C2427710CC5ABF004149E2 /* CopyFiles */, 225 | ); 226 | buildRules = ( 227 | ); 228 | dependencies = ( 229 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */, 230 | ); 231 | name = emptyExample; 232 | productName = myOFApp; 233 | productReference = E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */; 234 | productType = "com.apple.product-type.application"; 235 | }; 236 | /* End PBXNativeTarget section */ 237 | 238 | /* Begin PBXProject section */ 239 | E4B69B4C0A3A1720003C02F2 /* Project object */ = { 240 | isa = PBXProject; 241 | buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "imageSequence" */; 242 | compatibilityVersion = "Xcode 2.4"; 243 | hasScannedForEncodings = 0; 244 | knownRegions = ( 245 | English, 246 | Japanese, 247 | French, 248 | German, 249 | ); 250 | mainGroup = E4B69B4A0A3A1720003C02F2; 251 | productRefGroup = E4B69B4A0A3A1720003C02F2; 252 | projectDirPath = ""; 253 | projectReferences = ( 254 | { 255 | ProductGroup = E4328144138ABC890047C5CB /* Products */; 256 | ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 257 | }, 258 | ); 259 | projectRoot = ""; 260 | targets = ( 261 | E4B69B5A0A3A1756003C02F2 /* emptyExample */, 262 | ); 263 | }; 264 | /* End PBXProject section */ 265 | 266 | /* Begin PBXReferenceProxy section */ 267 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = { 268 | isa = PBXReferenceProxy; 269 | fileType = archive.ar; 270 | path = openFrameworksDebug.a; 271 | remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */; 272 | sourceTree = BUILT_PRODUCTS_DIR; 273 | }; 274 | /* End PBXReferenceProxy section */ 275 | 276 | /* Begin PBXShellScriptBuildPhase section */ 277 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { 278 | isa = PBXShellScriptBuildPhase; 279 | buildActionMask = 2147483647; 280 | files = ( 281 | ); 282 | inputPaths = ( 283 | ); 284 | outputPaths = ( 285 | ); 286 | runOnlyForDeploymentPostprocessing = 0; 287 | shellPath = /bin/sh; 288 | shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";"; 289 | }; 290 | /* End PBXShellScriptBuildPhase section */ 291 | 292 | /* Begin PBXSourcesBuildPhase section */ 293 | E4B69B580A3A1756003C02F2 /* Sources */ = { 294 | isa = PBXSourcesBuildPhase; 295 | buildActionMask = 2147483647; 296 | files = ( 297 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, 298 | E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */, 299 | E7F2793F13DA718A00827148 /* ofxImageSequence.cpp in Sources */, 300 | ); 301 | runOnlyForDeploymentPostprocessing = 0; 302 | }; 303 | /* End PBXSourcesBuildPhase section */ 304 | 305 | /* Begin PBXTargetDependency section */ 306 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = { 307 | isa = PBXTargetDependency; 308 | name = openFrameworks; 309 | targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */; 310 | }; 311 | /* End PBXTargetDependency section */ 312 | 313 | /* Begin XCBuildConfiguration section */ 314 | E4B69B4E0A3A1720003C02F2 /* Debug */ = { 315 | isa = XCBuildConfiguration; 316 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 317 | buildSettings = { 318 | ARCHS = "$(NATIVE_ARCH)"; 319 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 320 | COPY_PHASE_STRIP = NO; 321 | DEAD_CODE_STRIPPING = YES; 322 | GCC_AUTO_VECTORIZATION = YES; 323 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 324 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 325 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 326 | GCC_MODEL_TUNING = G5; 327 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 328 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; 329 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 330 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 331 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 332 | GCC_WARN_UNUSED_VALUE = NO; 333 | GCC_WARN_UNUSED_VARIABLE = NO; 334 | OTHER_CPLUSPLUSFLAGS = ( 335 | "-D__MACOSX_CORE__", 336 | "-lpthread", 337 | ); 338 | }; 339 | name = Debug; 340 | }; 341 | E4B69B4F0A3A1720003C02F2 /* Release */ = { 342 | isa = XCBuildConfiguration; 343 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 344 | buildSettings = { 345 | ARCHS = "$(NATIVE_ARCH)"; 346 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 347 | COPY_PHASE_STRIP = YES; 348 | DEAD_CODE_STRIPPING = YES; 349 | GCC_AUTO_VECTORIZATION = YES; 350 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 351 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 352 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 353 | GCC_MODEL_TUNING = G5; 354 | GCC_OPTIMIZATION_LEVEL = 3; 355 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 356 | GCC_UNROLL_LOOPS = YES; 357 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; 358 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 359 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 360 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 361 | GCC_WARN_UNUSED_VALUE = NO; 362 | GCC_WARN_UNUSED_VARIABLE = NO; 363 | OTHER_CPLUSPLUSFLAGS = ( 364 | "-D__MACOSX_CORE__", 365 | "-lpthread", 366 | ); 367 | }; 368 | name = Release; 369 | }; 370 | E4B69B600A3A1757003C02F2 /* Debug */ = { 371 | isa = XCBuildConfiguration; 372 | buildSettings = { 373 | COPY_PHASE_STRIP = NO; 374 | FRAMEWORK_SEARCH_PATHS = ( 375 | "$(inherited)", 376 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 377 | ); 378 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 379 | GCC_DYNAMIC_NO_PIC = NO; 380 | GCC_ENABLE_FIX_AND_CONTINUE = YES; 381 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 382 | GCC_MODEL_TUNING = G4; 383 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 384 | GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; 385 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 386 | INSTALL_PATH = "$(HOME)/Applications"; 387 | LIBRARY_SEARCH_PATHS = ( 388 | "$(inherited)", 389 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 390 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 391 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 392 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 393 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 394 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 395 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 396 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 397 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 398 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 399 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 400 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 401 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 402 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 403 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 404 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 405 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 406 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 407 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 408 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 409 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 410 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 411 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 412 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 413 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 414 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 415 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 416 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 417 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 418 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 419 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 420 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 421 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 422 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 423 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 424 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 425 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 426 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 427 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 428 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 429 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 430 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 431 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 432 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 433 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 434 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 435 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 436 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 437 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 438 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 439 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 440 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 441 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 442 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 443 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 444 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 445 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 446 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 447 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 448 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 449 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", 450 | ); 451 | PREBINDING = NO; 452 | PRODUCT_NAME = "$(TARGET_NAME)Debug"; 453 | WRAPPER_EXTENSION = app; 454 | }; 455 | name = Debug; 456 | }; 457 | E4B69B610A3A1757003C02F2 /* Release */ = { 458 | isa = XCBuildConfiguration; 459 | buildSettings = { 460 | COPY_PHASE_STRIP = YES; 461 | FRAMEWORK_SEARCH_PATHS = ( 462 | "$(inherited)", 463 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 464 | ); 465 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 466 | GCC_ENABLE_FIX_AND_CONTINUE = NO; 467 | GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 468 | GCC_MODEL_TUNING = G4; 469 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 470 | GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; 471 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 472 | INSTALL_PATH = "$(HOME)/Applications"; 473 | LIBRARY_SEARCH_PATHS = ( 474 | "$(inherited)", 475 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 476 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 477 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 478 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 479 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 480 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 481 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 482 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 483 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 484 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 485 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 486 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 487 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 488 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 489 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 490 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 491 | "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", 492 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 493 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 494 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 495 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 496 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 497 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 498 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 499 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 500 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 501 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 502 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 503 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 504 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 505 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 506 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 507 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 508 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 509 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 510 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 511 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 512 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 513 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 514 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 515 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 516 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 517 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 518 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 519 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 520 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 521 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 522 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 523 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 524 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 525 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 526 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 527 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 528 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 529 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 530 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 531 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 532 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 533 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 534 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 535 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 536 | ); 537 | PREBINDING = NO; 538 | PRODUCT_NAME = "$(TARGET_NAME)"; 539 | WRAPPER_EXTENSION = app; 540 | }; 541 | name = Release; 542 | }; 543 | /* End XCBuildConfiguration section */ 544 | 545 | /* Begin XCConfigurationList section */ 546 | E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "imageSequence" */ = { 547 | isa = XCConfigurationList; 548 | buildConfigurations = ( 549 | E4B69B4E0A3A1720003C02F2 /* Debug */, 550 | E4B69B4F0A3A1720003C02F2 /* Release */, 551 | ); 552 | defaultConfigurationIsVisible = 0; 553 | defaultConfigurationName = Release; 554 | }; 555 | E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */ = { 556 | isa = XCConfigurationList; 557 | buildConfigurations = ( 558 | E4B69B600A3A1757003C02F2 /* Debug */, 559 | E4B69B610A3A1757003C02F2 /* Release */, 560 | ); 561 | defaultConfigurationIsVisible = 0; 562 | defaultConfigurationName = Release; 563 | }; 564 | /* End XCConfigurationList section */ 565 | }; 566 | rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */; 567 | } 568 | -------------------------------------------------------------------------------- /example-threaded/imageSequence.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 42; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 11 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; 12 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; 13 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; 14 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; 15 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; }; 16 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; 17 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; 18 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; 19 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; 20 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; 21 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; 22 | E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; }; 23 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; 24 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; 25 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; 26 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 27 | E7F2793F13DA718A00827148 /* ofxImageSequence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E7F2793D13DA718A00827148 /* ofxImageSequence.cpp */; }; 28 | /* End PBXBuildFile section */ 29 | 30 | /* Begin PBXContainerItemProxy section */ 31 | E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = { 32 | isa = PBXContainerItemProxy; 33 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 34 | proxyType = 2; 35 | remoteGlobalIDString = E4B27C1510CBEB8E00536013; 36 | remoteInfo = openFrameworks; 37 | }; 38 | E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = { 39 | isa = PBXContainerItemProxy; 40 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 41 | proxyType = 1; 42 | remoteGlobalIDString = E4B27C1410CBEB8E00536013; 43 | remoteInfo = openFrameworks; 44 | }; 45 | /* End PBXContainerItemProxy section */ 46 | 47 | /* Begin PBXCopyFilesBuildPhase section */ 48 | E4C2427710CC5ABF004149E2 /* CopyFiles */ = { 49 | isa = PBXCopyFilesBuildPhase; 50 | buildActionMask = 2147483647; 51 | dstPath = ""; 52 | dstSubfolderSpec = 10; 53 | files = ( 54 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */, 55 | ); 56 | runOnlyForDeploymentPostprocessing = 0; 57 | }; 58 | /* End PBXCopyFilesBuildPhase section */ 59 | 60 | /* Begin PBXFileReference section */ 61 | BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; }; 62 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; 63 | E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; 64 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; 65 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; 66 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; 67 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; 68 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; 69 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; 70 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; 71 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; 72 | E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = emptyExampleDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; 73 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; 74 | E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; }; 75 | E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; }; 76 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; 77 | E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 78 | E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 79 | E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; 80 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; 81 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; 82 | E7F2793D13DA718A00827148 /* ofxImageSequence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxImageSequence.cpp; sourceTree = ""; }; 83 | E7F2793E13DA718A00827148 /* ofxImageSequence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxImageSequence.h; sourceTree = ""; }; 84 | /* End PBXFileReference section */ 85 | 86 | /* Begin PBXFrameworksBuildPhase section */ 87 | E4B69B590A3A1756003C02F2 /* Frameworks */ = { 88 | isa = PBXFrameworksBuildPhase; 89 | buildActionMask = 2147483647; 90 | files = ( 91 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, 92 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, 93 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, 94 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, 95 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, 96 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */, 97 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, 98 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, 99 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, 100 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, 101 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, 102 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, 103 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, 104 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, 105 | ); 106 | runOnlyForDeploymentPostprocessing = 0; 107 | }; 108 | /* End PBXFrameworksBuildPhase section */ 109 | 110 | /* Begin PBXGroup section */ 111 | BB4B014C10F69532006C3DED /* addons */ = { 112 | isa = PBXGroup; 113 | children = ( 114 | E7F2793B13DA717A00827148 /* ofxImageSequence */, 115 | ); 116 | name = addons; 117 | sourceTree = ""; 118 | }; 119 | BBAB23C913894ECA00AA2426 /* system frameworks */ = { 120 | isa = PBXGroup; 121 | children = ( 122 | E4C2424410CC5A17004149E2 /* AppKit.framework */, 123 | E4C2424510CC5A17004149E2 /* Cocoa.framework */, 124 | E4C2424610CC5A17004149E2 /* IOKit.framework */, 125 | E45BE9710E8CC7DD009D7055 /* AGL.framework */, 126 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, 127 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, 128 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */, 129 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, 130 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, 131 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, 132 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, 133 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, 134 | ); 135 | name = "system frameworks"; 136 | sourceTree = ""; 137 | }; 138 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { 139 | isa = PBXGroup; 140 | children = ( 141 | BBAB23BE13894E4700AA2426 /* GLUT.framework */, 142 | ); 143 | name = "3rd party frameworks"; 144 | sourceTree = ""; 145 | }; 146 | E4328144138ABC890047C5CB /* Products */ = { 147 | isa = PBXGroup; 148 | children = ( 149 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */, 150 | ); 151 | name = Products; 152 | sourceTree = ""; 153 | }; 154 | E45BE5980E8CC70C009D7055 /* frameworks */ = { 155 | isa = PBXGroup; 156 | children = ( 157 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, 158 | BBAB23C913894ECA00AA2426 /* system frameworks */, 159 | ); 160 | name = frameworks; 161 | sourceTree = ""; 162 | }; 163 | E4B69B4A0A3A1720003C02F2 = { 164 | isa = PBXGroup; 165 | children = ( 166 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */, 167 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */, 168 | E4B69E1C0A3A1BDC003C02F2 /* src */, 169 | E4EEC9E9138DF44700A80321 /* openFrameworks */, 170 | BB4B014C10F69532006C3DED /* addons */, 171 | E45BE5980E8CC70C009D7055 /* frameworks */, 172 | E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */, 173 | ); 174 | sourceTree = ""; 175 | }; 176 | E4B69E1C0A3A1BDC003C02F2 /* src */ = { 177 | isa = PBXGroup; 178 | children = ( 179 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, 180 | E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */, 181 | E4B69E1F0A3A1BDC003C02F2 /* testApp.h */, 182 | ); 183 | path = src; 184 | sourceTree = SOURCE_ROOT; 185 | }; 186 | E4EEC9E9138DF44700A80321 /* openFrameworks */ = { 187 | isa = PBXGroup; 188 | children = ( 189 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */, 190 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */, 191 | ); 192 | name = openFrameworks; 193 | sourceTree = ""; 194 | }; 195 | E7F2793B13DA717A00827148 /* ofxImageSequence */ = { 196 | isa = PBXGroup; 197 | children = ( 198 | E7F2793C13DA718A00827148 /* src */, 199 | ); 200 | name = ofxImageSequence; 201 | path = src; 202 | sourceTree = ""; 203 | }; 204 | E7F2793C13DA718A00827148 /* src */ = { 205 | isa = PBXGroup; 206 | children = ( 207 | E7F2793E13DA718A00827148 /* ofxImageSequence.h */, 208 | E7F2793D13DA718A00827148 /* ofxImageSequence.cpp */, 209 | ); 210 | name = src; 211 | path = ../src; 212 | sourceTree = SOURCE_ROOT; 213 | }; 214 | /* End PBXGroup section */ 215 | 216 | /* Begin PBXNativeTarget section */ 217 | E4B69B5A0A3A1756003C02F2 /* emptyExample */ = { 218 | isa = PBXNativeTarget; 219 | buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */; 220 | buildPhases = ( 221 | E4B69B580A3A1756003C02F2 /* Sources */, 222 | E4B69B590A3A1756003C02F2 /* Frameworks */, 223 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, 224 | E4C2427710CC5ABF004149E2 /* CopyFiles */, 225 | ); 226 | buildRules = ( 227 | ); 228 | dependencies = ( 229 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */, 230 | ); 231 | name = emptyExample; 232 | productName = myOFApp; 233 | productReference = E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */; 234 | productType = "com.apple.product-type.application"; 235 | }; 236 | /* End PBXNativeTarget section */ 237 | 238 | /* Begin PBXProject section */ 239 | E4B69B4C0A3A1720003C02F2 /* Project object */ = { 240 | isa = PBXProject; 241 | buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "imageSequence" */; 242 | compatibilityVersion = "Xcode 2.4"; 243 | hasScannedForEncodings = 0; 244 | knownRegions = ( 245 | English, 246 | Japanese, 247 | French, 248 | German, 249 | ); 250 | mainGroup = E4B69B4A0A3A1720003C02F2; 251 | productRefGroup = E4B69B4A0A3A1720003C02F2; 252 | projectDirPath = ""; 253 | projectReferences = ( 254 | { 255 | ProductGroup = E4328144138ABC890047C5CB /* Products */; 256 | ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 257 | }, 258 | ); 259 | projectRoot = ""; 260 | targets = ( 261 | E4B69B5A0A3A1756003C02F2 /* emptyExample */, 262 | ); 263 | }; 264 | /* End PBXProject section */ 265 | 266 | /* Begin PBXReferenceProxy section */ 267 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = { 268 | isa = PBXReferenceProxy; 269 | fileType = archive.ar; 270 | path = openFrameworksDebug.a; 271 | remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */; 272 | sourceTree = BUILT_PRODUCTS_DIR; 273 | }; 274 | /* End PBXReferenceProxy section */ 275 | 276 | /* Begin PBXShellScriptBuildPhase section */ 277 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { 278 | isa = PBXShellScriptBuildPhase; 279 | buildActionMask = 2147483647; 280 | files = ( 281 | ); 282 | inputPaths = ( 283 | ); 284 | outputPaths = ( 285 | ); 286 | runOnlyForDeploymentPostprocessing = 0; 287 | shellPath = /bin/sh; 288 | shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";"; 289 | }; 290 | /* End PBXShellScriptBuildPhase section */ 291 | 292 | /* Begin PBXSourcesBuildPhase section */ 293 | E4B69B580A3A1756003C02F2 /* Sources */ = { 294 | isa = PBXSourcesBuildPhase; 295 | buildActionMask = 2147483647; 296 | files = ( 297 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, 298 | E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */, 299 | E7F2793F13DA718A00827148 /* ofxImageSequence.cpp in Sources */, 300 | ); 301 | runOnlyForDeploymentPostprocessing = 0; 302 | }; 303 | /* End PBXSourcesBuildPhase section */ 304 | 305 | /* Begin PBXTargetDependency section */ 306 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = { 307 | isa = PBXTargetDependency; 308 | name = openFrameworks; 309 | targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */; 310 | }; 311 | /* End PBXTargetDependency section */ 312 | 313 | /* Begin XCBuildConfiguration section */ 314 | E4B69B4E0A3A1720003C02F2 /* Debug */ = { 315 | isa = XCBuildConfiguration; 316 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 317 | buildSettings = { 318 | ARCHS = "$(NATIVE_ARCH)"; 319 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 320 | COPY_PHASE_STRIP = NO; 321 | DEAD_CODE_STRIPPING = YES; 322 | GCC_AUTO_VECTORIZATION = YES; 323 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 324 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 325 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 326 | GCC_MODEL_TUNING = G5; 327 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 328 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; 329 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 330 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 331 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 332 | GCC_WARN_UNUSED_VALUE = NO; 333 | GCC_WARN_UNUSED_VARIABLE = NO; 334 | OTHER_CPLUSPLUSFLAGS = ( 335 | "-D__MACOSX_CORE__", 336 | "-lpthread", 337 | ); 338 | }; 339 | name = Debug; 340 | }; 341 | E4B69B4F0A3A1720003C02F2 /* Release */ = { 342 | isa = XCBuildConfiguration; 343 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 344 | buildSettings = { 345 | ARCHS = "$(NATIVE_ARCH)"; 346 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 347 | COPY_PHASE_STRIP = YES; 348 | DEAD_CODE_STRIPPING = YES; 349 | GCC_AUTO_VECTORIZATION = YES; 350 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 351 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 352 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 353 | GCC_MODEL_TUNING = G5; 354 | GCC_OPTIMIZATION_LEVEL = 3; 355 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 356 | GCC_UNROLL_LOOPS = YES; 357 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; 358 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 359 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 360 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 361 | GCC_WARN_UNUSED_VALUE = NO; 362 | GCC_WARN_UNUSED_VARIABLE = NO; 363 | OTHER_CPLUSPLUSFLAGS = ( 364 | "-D__MACOSX_CORE__", 365 | "-lpthread", 366 | ); 367 | }; 368 | name = Release; 369 | }; 370 | E4B69B600A3A1757003C02F2 /* Debug */ = { 371 | isa = XCBuildConfiguration; 372 | buildSettings = { 373 | COPY_PHASE_STRIP = NO; 374 | FRAMEWORK_SEARCH_PATHS = ( 375 | "$(inherited)", 376 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 377 | ); 378 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 379 | GCC_DYNAMIC_NO_PIC = NO; 380 | GCC_ENABLE_FIX_AND_CONTINUE = YES; 381 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 382 | GCC_MODEL_TUNING = G4; 383 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 384 | GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; 385 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 386 | INSTALL_PATH = "$(HOME)/Applications"; 387 | LIBRARY_SEARCH_PATHS = ( 388 | "$(inherited)", 389 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 390 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 391 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 392 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 393 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 394 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 395 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 396 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 397 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 398 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 399 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 400 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 401 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 402 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 403 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 404 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 405 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 406 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 407 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 408 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 409 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 410 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 411 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 412 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 413 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 414 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 415 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 416 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 417 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 418 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 419 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 420 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 421 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 422 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 423 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 424 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 425 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 426 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 427 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 428 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 429 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 430 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 431 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 432 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 433 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 434 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 435 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 436 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 437 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 438 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 439 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 440 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 441 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 442 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 443 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 444 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 445 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 446 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 447 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 448 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 449 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", 450 | ); 451 | PREBINDING = NO; 452 | PRODUCT_NAME = "$(TARGET_NAME)Debug"; 453 | WRAPPER_EXTENSION = app; 454 | }; 455 | name = Debug; 456 | }; 457 | E4B69B610A3A1757003C02F2 /* Release */ = { 458 | isa = XCBuildConfiguration; 459 | buildSettings = { 460 | COPY_PHASE_STRIP = YES; 461 | FRAMEWORK_SEARCH_PATHS = ( 462 | "$(inherited)", 463 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 464 | ); 465 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 466 | GCC_ENABLE_FIX_AND_CONTINUE = NO; 467 | GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 468 | GCC_MODEL_TUNING = G4; 469 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 470 | GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; 471 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 472 | INSTALL_PATH = "$(HOME)/Applications"; 473 | LIBRARY_SEARCH_PATHS = ( 474 | "$(inherited)", 475 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 476 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 477 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 478 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 479 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 480 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 481 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 482 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 483 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 484 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 485 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 486 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 487 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 488 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 489 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 490 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 491 | "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", 492 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 493 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 494 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 495 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 496 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 497 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 498 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 499 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 500 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 501 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 502 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 503 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 504 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 505 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 506 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 507 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 508 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 509 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 510 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 511 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 512 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 513 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 514 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 515 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 516 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 517 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 518 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 519 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 520 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 521 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 522 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 523 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 524 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 525 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 526 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 527 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 528 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 529 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 530 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 531 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 532 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 533 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 534 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 535 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 536 | ); 537 | PREBINDING = NO; 538 | PRODUCT_NAME = "$(TARGET_NAME)"; 539 | WRAPPER_EXTENSION = app; 540 | }; 541 | name = Release; 542 | }; 543 | /* End XCBuildConfiguration section */ 544 | 545 | /* Begin XCConfigurationList section */ 546 | E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "imageSequence" */ = { 547 | isa = XCConfigurationList; 548 | buildConfigurations = ( 549 | E4B69B4E0A3A1720003C02F2 /* Debug */, 550 | E4B69B4F0A3A1720003C02F2 /* Release */, 551 | ); 552 | defaultConfigurationIsVisible = 0; 553 | defaultConfigurationName = Release; 554 | }; 555 | E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */ = { 556 | isa = XCConfigurationList; 557 | buildConfigurations = ( 558 | E4B69B600A3A1757003C02F2 /* Debug */, 559 | E4B69B610A3A1757003C02F2 /* Release */, 560 | ); 561 | defaultConfigurationIsVisible = 0; 562 | defaultConfigurationName = Release; 563 | }; 564 | /* End XCConfigurationList section */ 565 | }; 566 | rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */; 567 | } 568 | --------------------------------------------------------------------------------