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() {
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
// 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.setup();
// The info layer is hidden by default, press <i> to toggle
piMapper.showInfo();
}
void ofApp::draw() {

19
src/Surfaces/SurfaceManager.cpp

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

4
src/ofxPiMapper.cpp

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

2
src/ofxPiMapper.h

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

Loading…
Cancel
Save