summaryrefslogtreecommitdiff
path: root/keyshade/src
diff options
context:
space:
mode:
authorTim Redfern <tim@getdrop.com>2017-10-16 16:24:04 +0100
committerTim Redfern <tim@getdrop.com>2017-10-16 16:24:04 +0100
commita3c99df80c201e56a32eb5fe650d45e9a9ccaee2 (patch)
tree5e070309793bf11d04e05919a3fb07b1e1157f62 /keyshade/src
parent5116dea8815de81ddaef299fdcae15f56ae3a87b (diff)
shader compiles
Diffstat (limited to 'keyshade/src')
-rw-r--r--keyshade/src/addons.make0
-rw-r--r--keyshade/src/main.cpp15
-rw-r--r--keyshade/src/ofApp.cpp102
-rw-r--r--keyshade/src/ofApp.h39
4 files changed, 156 insertions, 0 deletions
diff --git a/keyshade/src/addons.make b/keyshade/src/addons.make
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/keyshade/src/addons.make
diff --git a/keyshade/src/main.cpp b/keyshade/src/main.cpp
new file mode 100644
index 0000000..6136697
--- /dev/null
+++ b/keyshade/src/main.cpp
@@ -0,0 +1,15 @@
+#include "ofMain.h"
+#include "ofApp.h"
+
+//========================================================================
+int main( ){
+
+ ofGLWindowSettings settings;
+ settings.setGLVersion(3,2);
+ ofCreateWindow(settings);
+ // this kicks off the running of my app
+ // can be OF_WINDOW or OF_FULLSCREEN
+ // pass in width and height too:
+ ofRunApp(new ofApp());
+
+}
diff --git a/keyshade/src/ofApp.cpp b/keyshade/src/ofApp.cpp
new file mode 100644
index 0000000..9adae87
--- /dev/null
+++ b/keyshade/src/ofApp.cpp
@@ -0,0 +1,102 @@
+#include "ofApp.h"
+
+//--------------------------------------------------------------
+void ofApp::setup(){
+ shader.load("shader");
+ backgroundImage.load("../../../gui/bin/data/funfair/IMG_2893.JPG");
+ foregroundImage.load("../../../gui/bin/data/funfair/IMG_2894.JPG");
+
+ maskFbo.allocate(ofGetWidth(), ofGetHeight());
+
+ // Clear the FBO's
+ // otherwise it will bring some junk with it from the memory
+ maskFbo.begin();
+ ofClear(0,0,0,255);
+ maskFbo.end();
+
+ keyMinDist=0.2f;
+ keyMaxDist=0.3f;
+ keyColour=ofColor(200,40,0);
+}
+
+//--------------------------------------------------------------
+void ofApp::update(){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::draw(){
+
+ ofSetColor(255);
+
+ //better to scale first then mask, or visa versa?
+
+ shader.begin();
+ shader.setUniform4f("keyColour",keyColour);
+ shader.setUniform1f("keyMinDist",keyMinDist);
+ shader.setUniform4f("keyMaxDist",keyMaxDist);
+ shader.setUniformTexture("backgroundTex", backgroundImage.getTexture(), 1 );
+ shader.setUniformTexture("foregroundTex", foregroundImage.getTexture(), 2 );
+
+ backgroundImage.draw(0, 0,ofGetWidth(),ofGetHeight());
+
+ shader.end();
+}
+
+//--------------------------------------------------------------
+void ofApp::keyPressed(int key){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::keyReleased(int key){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseMoved(int x, int y ){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseDragged(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mousePressed(int x, int y, int button){
+ keyColour = backgroundImage.getColor(
+ x*(backgroundImage.getWidth()/ofGetWidth()),
+ y*(backgroundImage.getHeight()/ofGetHeight())
+ );
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseReleased(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseEntered(int x, int y){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::mouseExited(int x, int y){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::windowResized(int w, int h){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::gotMessage(ofMessage msg){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::dragEvent(ofDragInfo dragInfo){
+
+}
diff --git a/keyshade/src/ofApp.h b/keyshade/src/ofApp.h
new file mode 100644
index 0000000..8774291
--- /dev/null
+++ b/keyshade/src/ofApp.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include "ofMain.h"
+
+/*
+click on the image to choose a colour (maybe draw a line or outline a range of colours?)
+
+*/
+
+class ofApp : public ofBaseApp{
+
+ public:
+ void setup();
+ void update();
+ void draw();
+
+ 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 mouseEntered(int x, int y);
+ void mouseExited(int x, int y);
+ void windowResized(int w, int h);
+ void dragEvent(ofDragInfo dragInfo);
+ void gotMessage(ofMessage msg);
+
+ ofShader shader;
+
+ ofImage backgroundImage;
+ ofImage foregroundImage;
+
+ ofFbo maskFbo;
+
+ ofColor keyColour;
+ float keyMinDist;
+ float keyMaxDist;
+};