|
|
@@ -1735,7 +1735,63 @@ class DUAL extends Shader { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
|
|
|
|
GRAUZONE |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
class GRAUZONE extends Shader { |
|
|
|
int nFrames = 20; |
|
|
|
int iWrite = 0, iRead = 1; |
|
|
|
PImage[] buffer; |
|
|
|
PGraphics grauz; |
|
|
|
GRAUZONE() { |
|
|
|
name = "fxGrauzone"; |
|
|
|
params.add(new Param("delay (in frames)", INTVAL, 3, 100, new int[]{RANDOM})); |
|
|
|
nFrames = (int)params.get(0).value; |
|
|
|
buffer = new PImage[nFrames]; |
|
|
|
} |
|
|
|
int nFramesPrev; |
|
|
|
void apply() { |
|
|
|
nFramesPrev = nFrames; |
|
|
|
if (nFramesPrev != (int)params.get(0).value) { |
|
|
|
iWrite = 0; |
|
|
|
iRead = 1; |
|
|
|
int nFramesOld = nFrames; |
|
|
|
nFrames = (int)params.get(0).value; |
|
|
|
if (nFrames > nFramesOld) { |
|
|
|
buffer = new PImage[nFrames]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
buffer[iWrite] = renderer.get(); |
|
|
|
grauz = createGraphics(renderer.width, renderer.height); |
|
|
|
grauz.beginDraw(); |
|
|
|
// grauz.resize(renderer.width, renderer.height); |
|
|
|
buffer[iWrite] = renderer.get(); |
|
|
|
if (buffer[iRead] != null) { |
|
|
|
grauz.tint(255, 127); |
|
|
|
buffer[iRead].filter(INVERT); |
|
|
|
grauz.image(buffer[iRead], 0, 0, renderer.width, renderer.height); |
|
|
|
grauz.tint(255, 255); |
|
|
|
} |
|
|
|
grauz.endDraw(); |
|
|
|
renderer.beginDraw(); |
|
|
|
renderer.image(grauz, 0, 0, renderer.width, renderer.height); |
|
|
|
renderer.endDraw(); |
|
|
|
|
|
|
|
|
|
|
|
iWrite++; |
|
|
|
iRead++; |
|
|
|
if (iRead >= nFrames-1) { |
|
|
|
iRead = 0; |
|
|
|
} |
|
|
|
if (iWrite >= nFrames-1) { |
|
|
|
iWrite = 0; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|