diff options
Diffstat (limited to 'gui/src/chainImage.cpp')
| -rw-r--r-- | gui/src/chainImage.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/gui/src/chainImage.cpp b/gui/src/chainImage.cpp index a6cde14..40e483a 100644 --- a/gui/src/chainImage.cpp +++ b/gui/src/chainImage.cpp @@ -479,9 +479,15 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom glScalef(getLinkScale(),getLinkScale(),getLinkScale()); //ofEnableAlphaBlending(); - glEnable(GL_BLEND); + if (additive){ + glBlendFunc(GL_SRC_ALPHA, GL_ONE); + 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); + } - 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? @@ -497,6 +503,15 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom //link->setAlpha(transition); link->draw(0,0,link->getWidth(),link->getHeight()); + if (additive){ + ofSetColor(255,255,255,255*min(1.0,transition/fadeIn)*intensity); + glTranslatef(link->getLinkPos().x,link->getLinkPos().y,0); + glRotatef(link->getLinkRot(),0,0,1); + glScalef(link->getLinkScale(),link->getLinkScale(),link->getLinkScale()); + link->link->setAnchorPoint(link->link->getWidth()/2,link->link->getHeight()/2); + link->link->draw(0,0,link->link->getWidth(),link->link->getHeight()); + } + glDisable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
