From 14da9cce8d665d2872b76909e8abc001a9921297 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Thu, 31 Aug 2017 23:16:52 +0100 Subject: additive no good --- gui/src/chainImage.cpp | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) (limited to 'gui/src/chainImage.cpp') diff --git a/gui/src/chainImage.cpp b/gui/src/chainImage.cpp index e2ee598..275b107 100644 --- a/gui/src/chainImage.cpp +++ b/gui/src/chainImage.cpp @@ -113,7 +113,7 @@ void chainImage::makeThumbnail(){ thumbnail.setAnchorPoint(thumbnail.getWidth()/2,thumbnail.getHeight()/2); } -void chainImage::drawChain(float fadeIn){ +void chainImage::drawChain(float fadeIn,bool additive, float intensity){ //printf("Drawing chain transition: %f\n",transition); //we are correctly geting to 1 @@ -121,9 +121,20 @@ void chainImage::drawChain(float fadeIn){ glPushMatrix(); - ofDisableAlphaBlending(); + if (additive){ + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE); + ofSetColor(255,255,255,255*(1.0f-min(1.0,transition/fadeIn))*intensity); + } + else { + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + ofSetColor(255,255,255,255*intensity); + } - ofSetColor(255,255,255,255); + //ofDisableAlphaBlending(); + + setAnchorPoint(getWidth()/2,getHeight()/2); @@ -135,14 +146,18 @@ void chainImage::drawChain(float fadeIn){ glScalef(linkScale,linkScale,linkScale); - ofEnableAlphaBlending(); + //ofEnableAlphaBlending(); + glEnable(GL_BLEND); - ofSetColor(255,255,255,255*min(1.0,transition/fadeIn)); + ofSetColor(255,255,255,255*min(1.0,transition/fadeIn)*intensity); link->setAnchorPoint(link->getWidth()/2,link->getHeight()/2); link->draw(0,0,link->getWidth(),link->getHeight()); + glDisable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glPopMatrix(); } @@ -173,8 +188,15 @@ void chainImageSet::drawOutput(){ float camera_throw= (float)outputSize.y/(float)outputSize.x; //the ratio of z distance to x width + camera_throw*=0.9; //fudge factor to allow tweening + if (images.size()){ +/* + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glOrtho(-ofGetWidth()/2, ofGetWidth()/2, ofGetHeight()/2, -ofGetHeight()/2, 0.0f, 5000.0f); +*/ glMatrixMode ( GL_MODELVIEW ); glLoadIdentity ( ); gluLookAt( currentImage->getTransform().x, @@ -188,7 +210,7 @@ void chainImageSet::drawOutput(){ 0); - currentImage->drawChain(); + currentImage->drawChain(DEFAULT_FADEIN,additive,intensity); } @@ -391,6 +413,7 @@ void chainImageSet::keyPressed(ofKeyEventArgs &keyargs){ break; case OF_KEY_BACKSPACE:{ images.clear(); + filename.clear(); /* auto previous=selected; previous--; @@ -463,6 +486,9 @@ void chainImageSet::mouseDragged(int x, int y, int button){ case OF_MOUSE_BUTTON_3: //control-click dragScale=(y-clickPoint.y)/(selected->thumbnail.getHeight()); + //if (dragScale*selected->linkScale<0.15){ + // dragScale=0.15/selected->linkScale; + //} break; } } -- cgit v1.2.3