import drop.*; import test.*; import java.util.*; import processing.net.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import processing.video.*; import com.hamoid.*; VideoExport videoExport; boolean greenBackground = false; //else: black boolean roundMask = false; // show a circle boolean drawGUI = true; //draws fx-informations int mode = 1; //0: webcam, 1: image boolean harvester = true; int maxFx = 5; //possible amount of effect layers int frameRate = 30; int fpm = frameRate * 60; int bpm = 128; SDrop drop; PImage source; PGraphics renderer; PImage viewport; SourceManager sourceManager; PImage roundMaskImage; PGraphics roundMaskGraphics; String frameName; //to save frame as image float uptime; //logs how many frames this software has rendered before (inaccurate, it's actually way, way more) boolean recording; //save every frame? int renderSize = 500; //px String[] saveData; int w, h; void setup() { size(640, 800); w = width; h = height; surface.setResizable(true); frameRate(frameRate); noSmooth(); //saves resources but makes sum look shiddy drop = new SDrop(this); saveData = loadStrings(dataPath("saves.sav")); println("Loading Savefile..."); for (int i = 0; i < saveData.length; i ++) { float[] temp; if (saveData[i].contains("uptime")) { temp = float(split(saveData[i], " = ")); println("Uptime: " + temp[1]); uptime = temp[1]; } } fallbackImage = loadImage(dataPath("0.png")); /* String[] cameras = Capture.list(); if (cameras == null || cameras.length == 0) { println(cameras == null ? "Failed to retrieve the list of available cameras." : "There are no cameras available for capture."); if (mode == 0) { println("Switching to image mode"); mode = 1; } } else { println("Available cameras:"); printArray(cameras); cam = new Capture(this, cameras[0]); cam.start(); } */ composiorServer = new Server(this, port); // 10002 renderer = createGraphics(width, height); viewport = createImage(renderer.width, renderer.height, ARGB); roundMaskGraphics = createGraphics(renderer.width, renderer.height); sourceManager = new SourceManager(); masksRender = new PImage[masksRenderAmount]; sobel = new SobelEdgeDetection(); sourceManager.importURI("/home/giers/.local/bin/fast-style-transfer/data/train2014"); //sourceManager.importURI(dataPath("")); } void draw() { updateServer(); sourceManager.update(); //will write some image to the renderer sourceManager.setSource(); fxManager.run(true, true); //boolean animate (iterative calcs), boolean apply (draw) render(); background(greenBackground ? color(0, 255, 0) : color(0)); imageMode(CENTER); viewport = renderer.get(); if (renderer.width < renderer.height) { viewport.resize(0, height); if (viewport.width > width) viewport.resize(width, 0); } else { viewport.resize(width, 0); if (viewport.height > height) viewport.resize(0, height); } if (roundMask) { roundMaskGraphics.setSize(viewport.width, viewport.height); roundMaskGraphics.beginDraw(); roundMaskGraphics.noStroke(); roundMaskGraphics.background(0); roundMaskGraphics.fill(255); roundMaskGraphics.ellipse(viewport.width/2, viewport.height/2, min(viewport.width, viewport.height), min(viewport.width, viewport.height)); roundMaskGraphics.endDraw(); roundMaskImage = roundMaskGraphics.get(); viewport.mask(roundMaskImage); } //sourceManager.setSource(); //viewport = getEdges(viewport); //viewport = cannyEdge(viewport); image(viewport, width/2, height/2); if (videoRecord) { videoExport.saveFrame(); fill(#ff0000); ellipse(width-100,height-100,30,30); } if (drawGUI) drawGUI(guiOffsetTop); if (recording) { snapshot(); if (airisRendering) { airisRendering = false; recording = previousRecordState; renderSize = previousRenderSize; println("i rendered something big, oops"); } } }