summaryrefslogtreecommitdiff
path: root/gui/src/chainImage.cpp
diff options
context:
space:
mode:
authorTim Redfern <tim@getdrop.com>2018-10-28 22:18:00 +0000
committerTim Redfern <tim@getdrop.com>2018-10-28 22:18:00 +0000
commita2d734a72ff37a5798608563c7550cd09abff951 (patch)
treebf5db81331a8c42018449ad6dbc90f950576e947 /gui/src/chainImage.cpp
parentf1bf4431e11666ca0131af8f10a934993b768f44 (diff)
disabled luttim/lut
Diffstat (limited to 'gui/src/chainImage.cpp')
-rw-r--r--gui/src/chainImage.cpp118
1 files changed, 67 insertions, 51 deletions
diff --git a/gui/src/chainImage.cpp b/gui/src/chainImage.cpp
index f30677c..c93f9c0 100644
--- a/gui/src/chainImage.cpp
+++ b/gui/src/chainImage.cpp
@@ -5,9 +5,9 @@ float distance(ofPoint p1,ofPoint p2){
}
void chainImage::init(ofPoint _linkPos,float _linkScale,float _linkRot){
-//#ifdef GPU_ALGORITHM
+#ifdef GPU_ALGORITHM
shader.load("shader");
-//#endif //GPU_ALGORITHM
+#endif //GPU_ALGORITHM
linkPos=_linkPos;
linkScale=_linkScale;
@@ -17,6 +17,9 @@ void chainImage::init(ofPoint _linkPos,float _linkScale,float _linkRot){
dragPos=ofPoint(0,0);
dragRot=0;
dragScale=0;
+
+ remap.load();
+
}
void chainImage::start(bool reverse){
@@ -33,6 +36,8 @@ void chainImage::start(bool reverse){
transition
);
*/
+
+
}
void chainImage::gpu_drawImage(){
@@ -408,25 +413,7 @@ void chainImage::drawRecursive(float fadeIn,bool additive,float intensity,float
glPopMatrix();
}
*/
-ofImage makeLut(float gamma,float pedestal,float clamp){
- ofImage image;
- image.allocate(512,512,OF_IMAGE_COLOR);
- uint8_t *pixels=&image.getPixels()[0];
- for (uint32_t b=0;b<64;b++){
- uint32_t bluecolumn=b%8;
- uint32_t bluerow=b>>3;
- for (uint32_t g=0;g<64;g++){
- for (uint32_t r=0;r<64;r++){
- uint8_t *pixel=&pixels[(r+(g<<9)+(bluecolumn<<6)+(bluerow<<15))*3]; //+(b<<12))*3];
- pixel[0]=(uint8_t)((pedestal+(pow(r/64.0f,gamma)*(clamp-pedestal)))*255);
- pixel[1]=(uint8_t)((pedestal+(pow(g/64.0f,gamma)*(clamp-pedestal)))*255);
- pixel[2]=(uint8_t)((pedestal+(pow(b/64.0f,gamma)*(clamp-pedestal)))*255);
- }
- }
- }
- image.update();
- return image;
-}
+
void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoomMultiplier,float startGamma){
@@ -437,16 +424,6 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom
glPushMatrix();
- 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();
@@ -456,6 +433,7 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom
//add a scale factor to the outgoing image that builds up over the transition
+ glDisable(GL_BLEND);
glPushMatrix();
//if this is linear we see the jump from the unlessaccelerated phase
@@ -466,17 +444,21 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom
glScalef(zoomFactor,zoomFactor,zoomFactor);
- //ofSetColor(colour);
-
- float gamma=1.0f; //transition; //(startGamma*transition)+(1.0f*(1.0f-transition));
- float pedestal=0.0f;
- float clamp=1.0f; //-transition;
- lut.load(makeLut(gamma,pedestal,clamp));
- lut.setBlend(1.0f);
- lut.begin();
+ //need to use the LUT shader on both images so the they match
+ //float gamma=1.0f;
+ //float pedestal=0.0f;
+ //float clamp=1.0f;
+
+ //if (!lutLoaded){
+ // lut.load(makeLut(gamma,pedestal,clamp,8));
+ // lutLoaded=true;
+ //}
+
+
+ //lut.begin();
//setAlpha(1.0f);
draw(0,0,getWidth(),getHeight());
- lut.end();
+ //lut.end();
glPopMatrix();
@@ -487,7 +469,16 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom
glScalef(getLinkScale(),getLinkScale(),getLinkScale());
//ofEnableAlphaBlending();
- glEnable(GL_BLEND);
+ 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*min(1.0,transition/fadeIn)*intensity);
//setting alpha here doesn't work with shader?
@@ -495,18 +486,43 @@ void chainImage::drawChain(float fadeIn,bool additive,float intensity,float zoom
link->setAnchorPoint(link->getWidth()/2,link->getHeight()/2);
- gamma=((1.0f-transition)*10.0f)+1.0f; //(startGamma*transition)+(1.0f*(1.0f-transition));
- pedestal=0.0f;
- clamp=1.0f; //transition;
- lut.load(makeLut(gamma,pedestal,clamp));
- lut.setBlend(transition);
- lut.begin();
+ //gamma=1.0f; //((1.0f-transition)*0.5f)+1.0f; //(startGamma*transition)+(1.0f*(1.0f-transition));
+ //pedestal=0.0f;
+ //clamp=1.0f;
+ //lut.load(makeLut(gamma,pedestal,clamp,8));
+ remap.setBlend(transition);
+ remap.setGamma(1.0f+(1.0f-transition)); //(2.0f-transition)*10.0f);
+ remap.setClamp(1.0f); //transition);
+ remap.setPedestal(-1.0f+transition);
+ remap.begin();
- //ofSetColor(link->colour);
- //link->setAlpha(transition);
- link->draw(0,0,link->getWidth(),link->getHeight());
+ //ofSetColor(link->colour);
+ //link->setAlpha(transition);
+ link->draw(0,0,link->getWidth(),link->getHeight());
+ remap.end();
- lut.end();
+ //potentially
+
+ glPushMatrix();
+
+ glTranslatef(link->getLinkPos().x,link->getLinkPos().y,0);
+
+ glRotatef(link->getLinkRot(),0,0,1);
+
+ glScalef(link->getLinkScale(),link->getLinkScale(),link->getLinkScale());
+
+ remap.setBlend(link->transition);
+ remap.setGamma(1.0f+(1.0f-link->transition));
+ remap.setClamp(1.0f); //transition);
+ remap.setPedestal(-1.0f+link->transition);
+ remap.begin();
+
+ link->link->draw(0,0,link->link->getWidth(),link->link->getHeight());
+ remap.end();
+
+ glPopMatrix();
+
+
glDisable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);