void ofApp::draw() { ofBackground(0); ofPushMatrix(); ofScale(.5, .5); src.draw(0, 0); dst.draw(640, 0); if(!ofGetMousePressed()) { maskedBlur(src, mask, srcBlur); } maskedBlur(dst, mask, dstBlur); srcBlur.draw(0, 480); dstBlur.draw(640, 480); ofPopMatrix(); ofEnableAlphaBlending(); dst.draw(640, 0); cloneShader.begin(); cloneShader.setUniformTexture("src", src, 1); cloneShader.setUniformTexture("srcBlur", srcBlur, 2); cloneShader.setUniformTexture("dstBlur", dstBlur, 3); dst.draw(640, 0); cloneShader.end(); ofDisableAlphaBlending(); ofDrawBitmapString(ofToString((int) ofGetFrameRate()), 10, 20); }
void Clone::update(ofTexture& src, ofTexture& dst, ofTexture& mask) { maskedBlur(src, mask, srcBlur); maskedBlur(dst, mask, dstBlur); buffer.begin(); ofPushStyle(); ofEnableAlphaBlending(); dst.draw(0, 0); cloneShader.begin(); cloneShader.setUniformTexture("src", src, 1); cloneShader.setUniformTexture("srcBlur", srcBlur, 2); cloneShader.setUniformTexture("dstBlur", dstBlur, 3); dst.draw(0, 0); cloneShader.end(); ofDisableAlphaBlending(); ofPopStyle(); buffer.end(); }