summaryrefslogtreecommitdiff
path: root/gui/src
diff options
context:
space:
mode:
authorTim Redfern <tim@getdrop.com>2018-11-18 01:26:53 +0000
committerTim Redfern <tim@getdrop.com>2018-11-18 01:26:53 +0000
commit7ebbce5e53efce80bc48fa6f492451df4107e8b5 (patch)
tree5f696004da987700ccbc6bd3f58f447bd728d900 /gui/src
parent7e0ccebd5167da4d0bb4de1fb9b0ebb68f2bbe82 (diff)
alpha modeHEADmaster
Diffstat (limited to 'gui/src')
-rw-r--r--gui/src/chainImage.cpp24
-rw-r--r--gui/src/chainImage.h15
-rw-r--r--gui/src/chainImageSet.cpp4
-rw-r--r--gui/src/chainImageSet.h2
-rw-r--r--gui/src/ofApp.cpp18
5 files changed, 47 insertions, 16 deletions
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);
diff --git a/gui/src/chainImage.h b/gui/src/chainImage.h
index 75f290e..cebb940 100644
--- a/gui/src/chainImage.h
+++ b/gui/src/chainImage.h
@@ -45,8 +45,21 @@ class chainImage : public ofImage{
bool tload(std::string _filename){
printf("tload : %s\n",_filename.c_str());
filename=_filename;
+
+ //ofTexture& texture=getTexture();
+ //glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);
+
if (ofImage::load(filename)){
+
+ //ofDisableArbTex();
+ //GLint minFilter=GL_LINEAR_MIPMAP_LINEAR;
+ //GLint magFilter=GL_LINEAR;
+ //ofTexture& texture=getTexture();
+ ///texture.generateMipmap();
+ //texture.setTextureMinMagFilter(minFilter,magFilter);
+
makeThumbnail();
+
//setImageType(OF_IMAGE_COLOR_ALPHA);
//could there be a way to load without committing the texture
//setUseTexture(false);
@@ -83,7 +96,7 @@ class chainImage : public ofImage{
void updateRotationTimeline();
- void drawChain(float fadeIn=DEFAULT_FADEIN,bool additive =false, float intensity=1.0f, float zoomMultiplier=1.0f,float startGamma=1.0f);
+ void drawChain(float fadeIn=DEFAULT_FADEIN,bool additive =false, bool alpha =false,float intensity=1.0f, float zoomMultiplier=1.0f,float startGamma=1.0f);
void gpu_drawChain(float fadeIn=DEFAULT_FADEIN,bool additive =false, float intensity=1.0f, float zoomMultiplier=1.0f);
void gpu_drawImage();
diff --git a/gui/src/chainImageSet.cpp b/gui/src/chainImageSet.cpp
index 586194c..776ec8d 100644
--- a/gui/src/chainImageSet.cpp
+++ b/gui/src/chainImageSet.cpp
@@ -10,6 +10,8 @@
//control the fadein
//
+
+
void chainImageSet::drawOutput(){
float camera_throw= (float)outputSize.y/(float)outputSize.x; //the ratio of z distance to x width
@@ -66,7 +68,7 @@ void chainImageSet::drawOutput(){
- (*currentImage)->drawChain(DEFAULT_FADEIN,additive,intensity,zoomMultiplier,startGamma);
+ (*currentImage)->drawChain(DEFAULT_FADEIN,additive,alpha,intensity,zoomMultiplier,startGamma);
}
diff --git a/gui/src/chainImageSet.h b/gui/src/chainImageSet.h
index 4a13c74..f64d5c4 100644
--- a/gui/src/chainImageSet.h
+++ b/gui/src/chainImageSet.h
@@ -24,6 +24,7 @@ class chainImageSet{
dragPoint=ofPoint(0,0);
zoomMultiplier=1.0f;
startGamma=1.0f;
+ alpha=false;
}
chainImageSet(const chainImageSet& mom){
chainImageSet();
@@ -72,6 +73,7 @@ class chainImageSet{
float decayFactor;
bool additive;
+ bool alpha;
float intensity;
std::vector <std::unique_ptr<chainImage> > loadingImages;
diff --git a/gui/src/ofApp.cpp b/gui/src/ofApp.cpp
index 5c148be..feb3893 100644
--- a/gui/src/ofApp.cpp
+++ b/gui/src/ofApp.cpp
@@ -1,4 +1,4 @@
-#include "ofApp.h"
+ #include "ofApp.h"
#include "glew.h"
@@ -366,10 +366,22 @@ void ofApp::keyPressed(ofKeyEventArgs &args){
ofSetFullscreen(outputFS);
}
if(args.key == 'a'){
- bool add=!sets[0].additive;;
+ int which=int(sets[0].additive)+(int(sets[0].alpha)*2);
+ bool add=false;
+ bool alpha=false;
+ switch(which){
+ case 0:
+ add=true;
+ break;
+ case 1:
+ alpha=true;
+ break;
+ }
sets[0].additive=add;
sets[1].additive=add;
- printf("Additive: %s \n",add?"true":"false");
+ sets[0].alpha=alpha;
+ sets[1].alpha=alpha;
+ printf("Additive: %s Alpha: %s\n",add?"true":"false",alpha?"true":"false");
}
if(args.key >='1' && args.key <= '9'){
//sets[0].decayFactor = 1.0f + (