From 040eaa3babb648bea889f8c152b522a86e8c39d5 Mon Sep 17 00:00:00 2001 From: Comment Date: Tue, 28 May 2013 01:36:25 +0100 Subject: initial commit --- src/main.cpp | 20 +++++ src/testApp.cpp | 250 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/testApp.h | 96 +++++++++++++++++++++ src/viewport.cpp | 65 +++++++++++++++ src/viewport.h | 38 +++++++++ 5 files changed, 469 insertions(+) create mode 100755 src/main.cpp create mode 100755 src/testApp.cpp create mode 100755 src/testApp.h create mode 100755 src/viewport.cpp create mode 100755 src/viewport.h (limited to 'src') diff --git a/src/main.cpp b/src/main.cpp new file mode 100755 index 0000000..f0c0c0f --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,20 @@ +#include "ofMain.h" +#include "testApp.h" +#include "ofxFensterManager.h" +#include "ofAppGlutWindow.h" + +//======================================================================== +int main( ){ + + ofAppGlutWindow window; + ofSetupOpenGL(ofxFensterManager::get(),1024,768, OF_WINDOW); //2048,768 + //ofSetupOpenGL(&window, 1024,768, OF_WINDOW); // <-------- setup the GL context + //ofSetupOpenGL(&window, 1024,768, OF_WINDOW); + + // this kicks off the running of my app + // can be OF_WINDOW or OF_FULLSCREEN + // pass in width and height too: + //ofRunApp( new testApp()); + ofRunFensterApp( new testApp()); + +} diff --git a/src/testApp.cpp b/src/testApp.cpp new file mode 100755 index 0000000..bc2fe0e --- /dev/null +++ b/src/testApp.cpp @@ -0,0 +1,250 @@ +#include "testApp.h" +previewWindow::~previewWindow(){ + cout << "preview window destroyed" << endl; +} +void previewWindow::setup(){} +void previewWindow::setParent(testApp *p){ + parent=p; +} +void previewWindow::draw(){ + + for (auto i:parent->viewports) i.draw(parent->brightSlider); + +} +//-------------------------------------------------------------- +guiWindow::~guiWindow(){ + cout << "gui window destroyed" << endl; +} +void guiWindow::setup(){} +void guiWindow::setParent(testApp *p){ + parent=p; +} +void guiWindow::draw(){ + + parent->gui.draw(); + +} +//-------------------------------------------------------------- +void testApp::create1port(bool & pressed){ + if (!pressed) return; + viewports.clear(); + viewports.push_back(viewport(4*windowsize,2*windowsize,0,0)); + createports(1); +} +void testApp::create2port(bool & pressed){ + if (!pressed) return; + viewports.clear(); + viewports.push_back(viewport(2*windowsize,2*windowsize,0,0)); + viewports.push_back(viewport(2*windowsize,2*windowsize,2*windowsize,0)); + createports(2); +} +void testApp::create4port(bool & pressed){ + if (!pressed) return; + viewports.clear(); + viewports.push_back(viewport(windowsize,2*windowsize,0,0)); + viewports.push_back(viewport(windowsize,2*windowsize,windowsize,0)); + viewports.push_back(viewport(windowsize,2*windowsize,2*windowsize,0)); + viewports.push_back(viewport(windowsize,2*windowsize,3*windowsize,0)); + + createports(4); +} +void testApp::create8port(bool & pressed){ + if (!pressed) return; + viewports.clear(); + viewports.push_back(viewport(windowsize,windowsize,0,0)); + viewports.push_back(viewport(windowsize,windowsize,(1*windowsize),0)); + viewports.push_back(viewport(windowsize,windowsize,(2*windowsize),0)); + viewports.push_back(viewport(windowsize,windowsize,(3*windowsize),0)); + viewports.push_back(viewport(windowsize,windowsize,0,windowsize)); + viewports.push_back(viewport(windowsize,windowsize,(1*windowsize),windowsize)); + viewports.push_back(viewport(windowsize,windowsize,(2*windowsize),windowsize)); + viewports.push_back(viewport(windowsize,windowsize,(3*windowsize),windowsize)); + createports(8); +} +void testApp::createports(int num){ + cerr<<"created "<createFenster(0, 0, windowsize*4, windowsize*2, OF_WINDOW); + ofAddListener(win->events.keyPressed, this, &testApp::keyPressedEvent); + win->setWindowTitle("preview"); + win->addListener(prevWin); + prevWin->setup(); + prevWin->setParent(this); + + fullscreenoutput=false; + + guiWin=new guiWindow(); + gui.setup("","panel.xml",0,0); + + brightSlider=0; + gui.add(bS.setup("brightness",brightSlider,0,255,255)); + + gui.add(create_1.setup("1")); + create_1.addListener(this,&testApp::create1port); + gui.add(create_2.setup("2")); + create_2.addListener(this,&testApp::create2port); + gui.add(create_4.setup("4")); + create_4.addListener(this,&testApp::create4port); + gui.add(create_8.setup("8")); + create_8.addListener(this,&testApp::create8port); + + gui.add(fillgrey.setup("fill grey", false)); + greyFreq=1.0f; + gui.add(gF.setup("grey freq",greyFreq,0,2.0,255)); + + +/* + gui.setup("","panel.xml",0,0); + gui.add(reversemain.setup("reverse main", false)); + gui.add(controlColours.setup("control colours", false)); + gui.add(noteRandomiseColours.setup("randomise note colours", false)); + gui.add(transparentBlack.setup("transparent black", false)); + gui.add(resetDrawscale.setup("reset draw scale")); + gui.add(resetFBscale.setup("reset FB scale")); + fadeScale=128; + gui.add(fS.setup("fade scale",fadeScale,0,255,255)); + decayTime=1.0f; + gui.add(dT.setup("decay time",decayTime,0,10.0,255)); + + gui.add(oscScale.setup("scale size LFO", false)); + gui.add(breakOsc.setup("break oscillators", false)); + gui.add(randomOsc.setup("randomise oscillators", false)); + scaleAmplitude=0.5f; + gui.add(sA.setup("fade scale",scaleAmplitude,0,2.0,255)); + scaleFrequency=1.0f; + gui.add(sF.setup("fade freq",scaleFrequency,0,5.0,255)); + + resetDrawscale.addListener(this,&testApp::resetDrawscalePressed); + resetFBscale.addListener(this,&testApp::resetFBscalePressed); + */ + + //gui window stuff + ofxFenster* win2=ofxFensterManager::get()->createFenster(0, 0, 200, 400, OF_WINDOW); + + win2->setWindowTitle("config"); + win2->addListener(guiWin); + guiWin->setup(); + guiWin->setParent(this); + + +} + + + + + +//-------------------------------------------------------------- +void testApp::update(){ + //for (int i=0;iupdate(); +} + +//-------------------------------------------------------------- +void testApp::draw(){ + + control.fillgrey=fillgrey; + control.fillgreyfreq=greyFreq; + + for (auto i:viewports) i.drawport(control); + + ofPushMatrix(); + ofTranslate((ofGetWidth()/2)-(2*windowsize),(ofGetHeight()/2)-windowsize); + for (auto i:viewports) i.draw((uint8_t)brightSlider); + ofPopMatrix(); + + ofSetColor(255,255,255); + if (showFPS) ofDrawBitmapString(ofToString(ofGetFrameRate(), 2),20,20); + +} + +//-------------------------------------------------------------- +void testApp::keyPressed(int key, ofxFenster* win){ + if(key == ' '){ + fullscreenoutput=!fullscreenoutput; + win->setFullscreen(fullscreenoutput); + printf("resolution: %ix%i %s\n",win->getWidth(),win->getHeight(),fullscreenoutput?"fullscreen":"windowed"); + } + else keyPressed(key); +} +void testApp::keyPressed(int key){ + + if(key == 'f'){ + toggleFPS(); + } + +} + +//-------------------------------------------------------------- +void testApp::keyReleased(int key){ + +} + +//-------------------------------------------------------------- +void testApp::mouseMoved(int x, int y ){ + +} + +//-------------------------------------------------------------- +void testApp::mouseDragged(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::mouseReleased(int x, int y, int button){ + + +} +void testApp::mousePressed(int x, int y, int button) { +} + +//-------------------------------------------------------------- +void testApp::windowResized(int w, int h){ + +} + +//-------------------------------------------------------------- +void testApp::gotMessage(ofMessage msg){ + +} + +//-------------------------------------------------------------- + + +void testApp::mousePressedEvent(ofMouseEventArgs &args) { + //printf("mouse: %i,%i %i of %ix%i\n",args.x,args.y,args.button,win->getWidth(),win->getHeight()); + //0-2 + switch (args.button) { + case 0: + control.xshift=args.x-(win->getWidth()/2); + control.yshift=args.y-(win->getHeight()/2); + break; + case 1: + control.scale=pow(pow(args.x-(win->getWidth()/2),2)+pow(args.y-(win->getHeight()/2),2),0.5)/(win->getWidth()*.1); + break; + case 2: + control.fscale=(pow(pow(args.x-(win->getWidth()/2),2)+pow(args.y-(win->getHeight()/2),2),0.5)/(win->getWidth()))+0.5; + break; + } +} + +void testApp::keyPressedEvent(ofKeyEventArgs &args) { + //printf("window key pressed: %i (%c)\n",args.key,args.key); + keyPressed(args.key); +} + +void testApp::toggleFPS(){ + showFPS=!showFPS; +} + diff --git a/src/testApp.h b/src/testApp.h new file mode 100755 index 0000000..cc46dfc --- /dev/null +++ b/src/testApp.h @@ -0,0 +1,96 @@ +#pragma once + +#include "ofMain.h" + +#include "ofxFensterManager.h" +#include "ofxGui.h" + +#include "viewport.h" + + + +class previewWindow; +class guiWindow; + +//#define GRAB_TEXTURE + +class testApp : public ofxFensterListener { + + public: + + void setup(); + void update(); + void draw(); + + void keyPressed(int key, ofxFenster* win); + void keyPressed(int key); + void keyReleased(int key); + void mouseMoved(int x, int y ); + void mouseDragged(int x, int y, int button); + void mousePressed(int x, int y, int button); + void mouseReleased(int x, int y, int button); + void windowResized(int w, int h); + void gotMessage(ofMessage msg); + + void mousePressedEvent(ofMouseEventArgs &args); + void keyPressedEvent(ofKeyEventArgs &args); + void windowEvent(ofResizeEventArgs &args); + + void toggleFPS(); + bool showFPS; + + bool fullscreenoutput; + + previewWindow *prevWin; + guiWindow *guiWin; + ofxFenster* win; + + + ofxPanel gui; + + ofxButton create_1; + ofxButton create_2; + ofxButton create_4; + ofxButton create_8; + + ofxToggle dotrans; + + ofxIntSlider bS; + ofxParameter brightSlider; + + ofxToggle fillgrey; + + ofxFloatSlider gF; + ofxParameter greyFreq; + + void create1port(bool & pressed); + void create2port(bool & pressed); + void create4port(bool & pressed); + void create8port(bool & pressed); + void createports(int num); + + vector viewports; + vpcontrol control; + int windowsize; +}; + + +class previewWindow: public ofxFensterListener{ +public: + ~previewWindow(); + testApp *parent; + void setup(); + void setParent(testApp *p); + void draw(); +}; + +class guiWindow: public ofxFensterListener{ +public: + ~guiWindow(); + testApp *parent; + void setup(); + void setParent(testApp *p); + void draw(); +}; + + diff --git a/src/viewport.cpp b/src/viewport.cpp new file mode 100755 index 0000000..875b439 --- /dev/null +++ b/src/viewport.cpp @@ -0,0 +1,65 @@ +#include "viewport.h" + +viewport::viewport() +{ + //ctor +} +viewport::viewport(int _w,int _h,int _ox,int _oy) { + setup(_w,_h,_ox,_oy); +} + +void viewport::setup(int _w,int _h,int _ox,int _oy) { + w=_w; + h=_h; + ox=_ox; + oy=_oy; + rb1.allocate(w,h,GL_RGB); + rb2.allocate(w,h,GL_RGB); + seed=ofRandom(1.0f); +} + +void viewport::drawport(vpcontrol &control){ + + rb1.begin(); + + //can be done with texture offset? + + int startx=((w-(w*control.fscale))/2)+control.xshift; + while (startx>0) startx-=(w*control.fscale); + int starty=((h-(h*control.fscale))/2)+control.yshift; + while (starty>0) starty-=(h*control.fscale); + + for (int i=startx;i