Browse Source

Add saving and loading FBO source

master
Krisjanis Rijnieks 11 years ago
parent
commit
7db249d890
  1. 11
      example/src/ofApp.cpp
  2. 19
      src/Surfaces/SurfaceManager.cpp
  3. 4
      src/ofxPiMapper.cpp
  4. 2
      src/ofxPiMapper.h

11
example/src/ofApp.cpp

@ -3,12 +3,15 @@
void ofApp::setup() { void ofApp::setup() {
ofBackground(0); ofBackground(0);
// The ofxPiMapper is being set up automatically before the first
// ofApp setup call
piMapper.showInfo(); // The info layer is hidden by default, press <i> to toggle
// Add our CustomSource to list of fbo sources of the piMapper // Add our CustomSource to list of fbo sources of the piMapper
// FBO sources should be added before piMapper.setup() so the
// piMapper is able to load the source if it is assigned to
// a surface in XML settings.
piMapper.getMediaServer().addFboSource(customSource); piMapper.getMediaServer().addFboSource(customSource);
piMapper.setup();
// The info layer is hidden by default, press <i> to toggle
piMapper.showInfo();
} }
void ofApp::draw() { void ofApp::draw() {

19
src/Surfaces/SurfaceManager.cpp

@ -225,13 +225,18 @@ void SurfaceManager::loadXmlSettings(string fileName) {
if (sourceName != "" && sourceName != "none" && sourceType != "") { if (sourceName != "" && sourceName != "none" && sourceType != "") {
// Load source depending on type // Load source depending on type
int typeEnum = SourceType::GetSourceTypeEnum(sourceType); int typeEnum = SourceType::GetSourceTypeEnum(sourceType);
// Construct full path if (typeEnum == SourceType::SOURCE_TYPE_FBO) {
string dir = mediaServer->getDefaultMediaDir(typeEnum); // Load FBO source using sourceName
std::stringstream pathss; source = mediaServer->loadMedia(sourceName, typeEnum);
pathss << ofToDataPath(dir, true) << sourceName; } else {
string sourcePath = pathss.str(); // Construct full path
// Load media by using full path string dir = mediaServer->getDefaultMediaDir(typeEnum);
source = mediaServer->loadMedia(sourcePath, typeEnum); std::stringstream pathss;
pathss << ofToDataPath(dir, true) << sourceName;
string sourcePath = pathss.str();
// Load media by using full path
source = mediaServer->loadMedia(sourcePath, typeEnum);
}
} }
xmlSettings.popTag(); // source xmlSettings.popTag(); // source
xmlSettings.pushTag("vertices"); xmlSettings.pushTag("vertices");

4
src/ofxPiMapper.cpp

@ -3,16 +3,14 @@
ofxPiMapper::ofxPiMapper(): ofxPiMapper::ofxPiMapper():
bShowInfo(false), bShowInfo(false),
isSetUp(false){ isSetUp(false){
ofAddListener(ofEvents().setup, this, &ofxPiMapper::setup, OF_EVENT_ORDER_BEFORE_APP);
ofAddListener(ofEvents().keyPressed, this, &ofxPiMapper::keyPressed); ofAddListener(ofEvents().keyPressed, this, &ofxPiMapper::keyPressed);
} }
ofxPiMapper::~ofxPiMapper() { ofxPiMapper::~ofxPiMapper() {
ofRemoveListener(ofEvents().setup, this, &ofxPiMapper::setup, OF_EVENT_ORDER_BEFORE_APP);
ofRemoveListener(ofEvents().keyPressed, this, &ofxPiMapper::keyPressed); ofRemoveListener(ofEvents().keyPressed, this, &ofxPiMapper::keyPressed);
} }
void ofxPiMapper::setup(ofEventArgs& args) { void ofxPiMapper::setup() {
ofLogNotice("ofxPiMapper") << "Setting up..."; ofLogNotice("ofxPiMapper") << "Setting up...";
// Assign media server to other pi mapper components // Assign media server to other pi mapper components

2
src/ofxPiMapper.h

@ -13,7 +13,7 @@ public:
ofxPiMapper(); ofxPiMapper();
~ofxPiMapper(); ~ofxPiMapper();
void setup(ofEventArgs& args); void setup();
void draw(); // Called manually to make custom layering possible void draw(); // Called manually to make custom layering possible
void keyPressed(ofKeyEventArgs& args); void keyPressed(ofKeyEventArgs& args);

Loading…
Cancel
Save