From 7ebbce5e53efce80bc48fa6f492451df4107e8b5 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Sun, 18 Nov 2018 01:26:53 +0000 Subject: alpha mode --- gui/src/chainImage.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'gui/src/chainImage.cpp') diff --git a/gui/src/chainImage.cpp b/gui/src/chainImage.cpp index 41d32fc..7a1b12e 100644 --- a/gui/src/chainImage.cpp +++ b/gui/src/chainImage.cpp @@ -428,7 +428,7 @@ ofImage makeLut(float gamma,float pedestal,float clamp){ return image; } -void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoomMultiplier,float startGamma){ +void chainImage::drawChain(float fadeIn,bool additive,bool alpha,float intensity,float zoomMultiplier,float startGamma){ //printf("Drawing chain transition: %f\n",transition); //we are correctly geting to 1 @@ -437,15 +437,21 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom glPushMatrix(); + + if (additive||alpha){ + ofSetColor(255,255,255,255*(1.0f-min(1.0,transition/fadeIn))*intensity); + } + else { + ofSetColor(255,255,255,255*intensity); + } + 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); } //ofDisableAlphaBlending(); @@ -455,7 +461,6 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom setAnchorPoint(getWidth()/2,getHeight()/2); //add a scale factor to the outgoing image that builds up over the transition - glPushMatrix(); //if this is linear we see the jump from the unlessaccelerated phase @@ -478,16 +483,13 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom glScalef(getLinkScale(),getLinkScale(),getLinkScale()); - //ofEnableAlphaBlending(); - if (additive){ - glBlendFunc(GL_SRC_ALPHA, GL_ONE); + if (additive||alpha){ ofSetColor(255,255,255,255); } else { - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); ofSetColor(255,255,255,255*min(1.0,transition/fadeIn)*intensity); } - + //setting alpha here doesn't work with shader? //possibly if you could set the alpha when drawing? @@ -503,7 +505,7 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom //link->setAlpha(transition); link->draw(0,0,link->getWidth(),link->getHeight()); - if (additive){ + if (additive||alpha){ glTranslatef(link->getLinkPos().x,link->getLinkPos().y,0); glRotatef(link->getLinkRot(),0,0,1); @@ -511,7 +513,7 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom link->link->setAnchorPoint(link->link->getWidth()/2,link->link->getHeight()/2); link->link->draw(0,0,link->link->getWidth(),link->link->getHeight()); - ofSetColor(255,255,255,255*min(1.0,transition/fadeIn)*intensity); + //remove?? _> ofSetColor(255,255,255,255*min(1.0,transition/fadeIn)*intensity); glTranslatef(link->link->getLinkPos().x,link->link->getLinkPos().y,0); glRotatef(link->link->getLinkRot(),0,0,1); -- cgit v1.2.3