summaryrefslogtreecommitdiff
path: root/gui/src
diff options
context:
space:
mode:
authorTim Redfern <tim@getdrop.com>2017-12-12 08:18:19 +0000
committerTim Redfern <tim@getdrop.com>2017-12-12 08:18:19 +0000
commitb81a1e4b77ad82315b84dd5eb1a76d80a544bcdd (patch)
tree46eead66842d99dafcf5e2cb90972438bcf254ba /gui/src
parent633aee47fb7392b807e00e1827fad605fb68642b (diff)
menubar is no problem
Diffstat (limited to 'gui/src')
-rw-r--r--gui/src/chainImage.cpp47
-rw-r--r--gui/src/chainImage.h6
-rw-r--r--gui/src/chainImageSet.cpp10
-rw-r--r--gui/src/main.cpp6
4 files changed, 64 insertions, 5 deletions
diff --git a/gui/src/chainImage.cpp b/gui/src/chainImage.cpp
index 3db0e7d..1f130ae 100644
--- a/gui/src/chainImage.cpp
+++ b/gui/src/chainImage.cpp
@@ -8,9 +8,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;
@@ -38,6 +38,49 @@ void chainImage::start(bool reverse){
*/
}
+void chainImage::gpu_drawImage(){
+
+ GLint internalTextureFormat=GL_TEXTURE_2D_ARRAY;
+ GLsizei textureWidth=getWidth();
+ GLsizei textureHeight=getHeight();
+ GLsizei numberOfTextures=2;
+ GLint border=0;
+ GLenum textureFormat=GL_RGB;
+ glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, internalTextureFormat, textureWidth, textureHeight, numberOfTextures, 0, textureFormat, GL_UNSIGNED_BYTE, NULL);
+
+//bind the texture (using GL_TEXTURE_2D_ARRAY as the texture type) and use glTexParameteri as usual
+ chainImage *thisimage;
+//iterate through the images to put into your texture array
+ for (int i=0;i<numberOfTextures;i++){
+ thisimage=thisimage->link;
+
+ glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, i, thisimage->width, thisimage->height, 1, textureFormat, GL_UNSIGNED_BYTE, &thisimage->getPixels());
+
+ }
+ /*
+ //composite the frame and set the next getTransform
+ ofSetColor(255);
+
+ float basescale=ofGetScreenWidth()/ofGetWidth();
+
+ shader.begin();
+ shader.setUniform3f("transform",getTransform());
+ shader.setUniform1f("scale",1.0f);
+ //shader.setUniform1f("rotation",getRotation());
+ //shader.setUniform1f("transition",transition);
+ //shader.setUniform1f("fadeIn",fadeIn);
+ //shader.setUniform1f("intensity",intensity);
+ //shader.setUniform3f("linkPos",linkPos);
+ shader.setUniformTexture("thisImage", getTexture(), 1 );
+ shader.setUniformTexture("nextImage", link->getTexture(), 2 );
+
+ //draw(0, 0,ofGetWidth(),ofGetHeight());
+ ofDrawRectangle(0, 0, ofGetScreenWidth(), ofGetScreenHeight());
+
+ shader.end();
+ */
+}
+
void chainImage::updateRotationTimeline(){
rotationTimeline.clear();
diff --git a/gui/src/chainImage.h b/gui/src/chainImage.h
index 4e3d58e..1dbb808 100644
--- a/gui/src/chainImage.h
+++ b/gui/src/chainImage.h
@@ -16,8 +16,11 @@
//#define GPU_ALGORITHM
+//so annoying 1: menubar
+//so annoying 2: dialogue stops screen
+
+
class chainImage : public ofImage{
- //todo: threaded image loader
public:
chainImage(){
@@ -58,6 +61,7 @@ class chainImage : public ofImage{
void drawChain(float fadeIn=DEFAULT_FADEIN,bool additive =false, float intensity=1.0f, float zoomMultiplier=1.0f);
void gpu_drawChain(float fadeIn=DEFAULT_FADEIN,bool additive =false, float intensity=1.0f, float zoomMultiplier=1.0f);
+ void gpu_drawImage();
ofImage thumbnail;
void makeThumbnail();
diff --git a/gui/src/chainImageSet.cpp b/gui/src/chainImageSet.cpp
index 1036e4a..751b1ba 100644
--- a/gui/src/chainImageSet.cpp
+++ b/gui/src/chainImageSet.cpp
@@ -58,6 +58,16 @@ void chainImageSet::drawGpu(){
if (images.size()){
(*currentImage)->gpu_drawChain(DEFAULT_FADEIN,additive,intensity,zoomMultiplier);
}
+/*
+ int current;
+ bool visible=true;
+ for (int i=0;i<images.size();i++){
+ while (visible){
+ //each image draws itself then applies the transform for the next
+ visible=vecimages[(current+i)%vecimages.size()].gpu_drawImage();
+ }
+ }
+ */
}
diff --git a/gui/src/main.cpp b/gui/src/main.cpp
index 391b99f..3e4c327 100644
--- a/gui/src/main.cpp
+++ b/gui/src/main.cpp
@@ -28,12 +28,14 @@ int main(int argc, char *argv[]){
settings.width = 1024;
settings.height = 576;
- settings.setPosition(ofVec2f(300,0));
+ settings.setPosition(ofVec2f(1700,0));
settings.resizable = true;
+ //settings.decorated = false; //doesn't suppress FS title bar
shared_ptr<ofAppBaseWindow> mainWindow = ofCreateWindow(settings);
- // uncomment next line to share main's OpenGL resources with gui
+ // share OpenGL resources with other windows
settings.shareContextWith = mainWindow;
+ settings.decorated = true;
settings.width = 800;
settings.height = 450;