|
|
@@ -1610,6 +1610,11 @@ class AMPLIFY extends Shader { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
|
|
|
|
BROKENCOLORROT |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
class BROKENCOLORROT extends Shader { |
|
|
@@ -1657,20 +1662,82 @@ class BROKENCOLORROT extends Shader { |
|
|
|
*/ |
|
|
|
|
|
|
|
class POSTER extends Shader { |
|
|
|
|
|
|
|
POSTER() { |
|
|
|
name = "fxPosterize"; |
|
|
|
params.add(new Param("levels", INTVAL, 2, 10, new int[]{SAWTOOTH, TRIANG, SINE, TAN, TANINVERSE, RAMPUPDOWN, RAMP, RAMPINVERSE})); |
|
|
|
} |
|
|
|
void apply() { |
|
|
|
renderer.beginDraw(); |
|
|
|
//renderer.loadPixels(); |
|
|
|
renderer.filter(POSTERIZE, (int)params.get(0).value); |
|
|
|
//renderer.updatePixels(); |
|
|
|
renderer.endDraw(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
|
|
|
|
DUAL |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
class DUAL extends Shader { |
|
|
|
PImage buffer; |
|
|
|
int dualColor; |
|
|
|
int dirx = 1; |
|
|
|
int diry = 1; |
|
|
|
DUAL() { |
|
|
|
name = "fxDual"; |
|
|
|
params.add(new Param("dual color", INTVAL, 2000000, 15000000, new int[]{SAWTOOTH, TRIANG, SINE, TAN, TANINVERSE, RAMPUPDOWN, RAMP, RAMPINVERSE})); |
|
|
|
params.add(new Param("flip direction", INTVAL, 0, 3, new int[]{RANDOM})); |
|
|
|
params.add(new Param("mode", INTVAL, 0, 1, new int[]{SQUAR, RANDOM})); |
|
|
|
buffer = createImage(renderer.width, renderer.height, ARGB); |
|
|
|
} |
|
|
|
void apply() { |
|
|
|
switch((int)params.get(1).value) { |
|
|
|
case(0): |
|
|
|
dirx = 1; |
|
|
|
diry = 1; |
|
|
|
break; |
|
|
|
case(1): |
|
|
|
dirx = -1; |
|
|
|
diry = 1; |
|
|
|
break; |
|
|
|
case(2): |
|
|
|
dirx = 1; |
|
|
|
diry = -1; |
|
|
|
break; |
|
|
|
case(3): |
|
|
|
dirx = -1; |
|
|
|
diry = -1; |
|
|
|
break; |
|
|
|
} |
|
|
|
dualColor = (int)params.get(0).value; |
|
|
|
buffer.resize(renderer.width, renderer.height); |
|
|
|
renderer.beginDraw(); |
|
|
|
renderer.loadPixels(); |
|
|
|
buffer.loadPixels(); |
|
|
|
if ((int)params.get(2).value > 0) { |
|
|
|
for (int i = 0; i < renderer.width*renderer.height; i++) { |
|
|
|
buffer.pixels[i] = renderer.pixels[i]+dualColor; |
|
|
|
} |
|
|
|
} else { |
|
|
|
for (int i = 0; i < renderer.width*renderer.height; i++) { |
|
|
|
buffer.pixels[i] = renderer.pixels[i]+dualColor; |
|
|
|
buffer.pixels[i] = buffer.pixels[i]+i/10; |
|
|
|
} |
|
|
|
} |
|
|
|
buffer.updatePixels(); |
|
|
|
renderer.updatePixels(); |
|
|
|
renderer.pushMatrix(); |
|
|
|
renderer.scale(dirx, diry); |
|
|
|
renderer.image(buffer, 0, 0, dirx * renderer.width, diry * renderer.height); |
|
|
|
renderer.popMatrix(); |
|
|
|
renderer.endDraw(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|