diff options
| -rw-r--r-- | gui/src/chainImage.cpp | 28 | ||||
| -rw-r--r-- | gui/src/chainImage.h | 7 | ||||
| -rw-r--r-- | gui/src/chainImageSet.cpp | 15 | ||||
| -rw-r--r-- | gui/src/chainImageSet.h | 2 | ||||
| -rw-r--r-- | gui/src/main.cpp | 7 | ||||
| -rw-r--r-- | gui/src/ofApp.cpp | 4 | ||||
| -rw-r--r-- | keyshade/src/ofApp.cpp | 3 |
7 files changed, 61 insertions, 5 deletions
diff --git a/gui/src/chainImage.cpp b/gui/src/chainImage.cpp index 4eb0417..7053961 100644 --- a/gui/src/chainImage.cpp +++ b/gui/src/chainImage.cpp @@ -8,6 +8,8 @@ float distance(ofPoint p1,ofPoint p2){ } void chainImage::init(ofPoint _linkPos,float _linkScale,float _linkRot){ + shader.load("shader"); + linkPos=_linkPos; linkScale=_linkScale; linkRot=_linkRot; @@ -244,6 +246,32 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom glPopMatrix(); } +void chainImage::gpu_drawChain(float fadeIn,bool additive,float intensity,float zoomMultiplier){ + + ofSetColor(255); + + float basescale=ofGetScreenWidth()/ofGetWidth(); + + shader.begin(); + shader.setUniform3f("transform",getTransform()); + shader.setUniform1f("scale",1.0f); + //shader.setUniform1f("rotation",getRotation()); + //shader.setUniform1f("transition",transition); + //shader.setUniform1f("fadeIn",fadeIn); + //shader.setUniform1f("intensity",intensity); + //shader.setUniform3f("linkPos",linkPos); + shader.setUniformTexture("thisImage", getTexture(), 1 ); + shader.setUniformTexture("nextImage", link->getTexture(), 2 ); + + //draw(0, 0,ofGetWidth(),ofGetHeight()); + ofDrawRectangle(0, 0, ofGetScreenWidth(), ofGetScreenHeight()); + + shader.end(); + + //1. can we FILL THE SCREEN? + +} + Json::Value chainImage::toJson(){ Json::Value json=Json::Value(Json::objectValue); json["linkPos"]=Json::Value(Json::arrayValue); diff --git a/gui/src/chainImage.h b/gui/src/chainImage.h index 23e9338..984b0d6 100644 --- a/gui/src/chainImage.h +++ b/gui/src/chainImage.h @@ -6,8 +6,8 @@ #define THUMB_BORDER_RATIO 0.8 #define THUMB_SIZE 160 #define DEFAULT_FADEIN 1.0 -#define BEZIER_OUT 0.2 -#define BEZIER_IN 0.5 +#define BEZIER_OUT 0.25 +#define BEZIER_IN 0.25 #define ROTATION_BEZIER_FRACTION 0.1 #define SWITCH_NONE 0 @@ -51,6 +51,7 @@ class chainImage : public ofImage{ void updateRotationTimeline(); void drawChain(float fadeIn=DEFAULT_FADEIN,bool additive =false, float intensity=1.0f, float zoomMultiplier=1.0f); + void gpu_drawChain(float fadeIn=DEFAULT_FADEIN,bool additive =false, float intensity=1.0f, float zoomMultiplier=1.0f); ofImage thumbnail; void makeThumbnail(); @@ -78,6 +79,8 @@ class chainImage : public ofImage{ bool isLoaded; + ofShader shader; + //int totalframes,framecount; }; diff --git a/gui/src/chainImageSet.cpp b/gui/src/chainImageSet.cpp index 1fa20ad..7e6e351 100644 --- a/gui/src/chainImageSet.cpp +++ b/gui/src/chainImageSet.cpp @@ -2,8 +2,6 @@ void chainImageSet::drawOutput(){ - //movment and rotation are working on their own but not together. - float camera_throw= (float)outputSize.y/(float)outputSize.x; //the ratio of z distance to x width camera_throw*=fitFactor; //fudge factor to allow tweening, @@ -45,7 +43,20 @@ void chainImageSet::drawOutput(){ (*currentImage)->drawChain(DEFAULT_FADEIN,additive,intensity,zoomMultiplier); + + + } + + +} + +void chainImageSet::drawGpu(){ + + ofSetColor(255); + + if (images.size()){ + (*currentImage)->gpu_drawChain(DEFAULT_FADEIN,additive,intensity,zoomMultiplier); } } diff --git a/gui/src/chainImageSet.h b/gui/src/chainImageSet.h index 05a7cdf..ae70561 100644 --- a/gui/src/chainImageSet.h +++ b/gui/src/chainImageSet.h @@ -26,6 +26,7 @@ class chainImageSet{ } void drawGui(int x,int y,bool is_selected); void drawOutput(); + void drawGpu(); void updateOutput(); bool add(std::string filename,glm::vec2 pos); void keyPressed(ofKeyEventArgs &keyargs); @@ -68,6 +69,7 @@ class chainImageSet{ float intensity; std::vector <std::unique_ptr<chainImage> > loadingImages; + std::vector <int> loadingIndexes; threadedChainImageLoader loader; };
\ No newline at end of file diff --git a/gui/src/main.cpp b/gui/src/main.cpp index 521be02..d58e5e2 100644 --- a/gui/src/main.cpp +++ b/gui/src/main.cpp @@ -1,6 +1,8 @@ #include "ofMain.h" #include "ofApp.h" +//#define GPU_ALGORITHM + //======================================================================== int main(int argc, char *argv[]){ /* @@ -19,6 +21,11 @@ int main(int argc, char *argv[]){ //app->arguments = vector<string>(argv, argv + argc); ofGLFWWindowSettings settings; + +#ifdef GPU_ALGORITHM + settings.setGLVersion(3,2); //doesn't support gluLookat +#endif //GPU_ALGORITHM + settings.width = 1024; settings.height = 576; settings.setPosition(ofVec2f(300,0)); diff --git a/gui/src/ofApp.cpp b/gui/src/ofApp.cpp index afdaf4f..f2fb8fb 100644 --- a/gui/src/ofApp.cpp +++ b/gui/src/ofApp.cpp @@ -77,7 +77,11 @@ void ofApp::drawOutput(ofEventArgs & args){ for (int i=0;i<sets.size();i++){ +#ifdef GPU_ALGORITHM + sets[i].drawGpu(); +#else sets[i].drawOutput(); +#endif //GPU_ALGORITHM } if (dmx.isConnected()&&ofGetElapsedTimef()>next_update){ diff --git a/keyshade/src/ofApp.cpp b/keyshade/src/ofApp.cpp index 588557a..051fd40 100644 --- a/keyshade/src/ofApp.cpp +++ b/keyshade/src/ofApp.cpp @@ -39,7 +39,8 @@ void ofApp::draw(){ shader.setUniformTexture("backgroundTex", backgroundImage.getTexture(), 1 ); shader.setUniformTexture("foregroundTex", foregroundImage.getTexture(), 2 ); - backgroundImage.draw(0, 0,ofGetWidth(),ofGetHeight()); + foregroundImage.draw(0, 0,ofGetWidth(),ofGetHeight()); + //seems to make no difference if we draw foreground or background image shader.end(); } |
