diff --git a/java/libraries/opengl/examples/Shaders/EdgeDetect/EdgeDetect.pde b/java/libraries/opengl/examples/Shaders/EdgeDetect/EdgeDetect.pde index 85288b2d5..46b18e946 100644 --- a/java/libraries/opengl/examples/Shaders/EdgeDetect/EdgeDetect.pde +++ b/java/libraries/opengl/examples/Shaders/EdgeDetect/EdgeDetect.pde @@ -1,8 +1,8 @@ // This example shows how to change the default fragment shader used -// in P3D to render textures, by a custom one that applies a simple +// in P2D to render textures, by a custom one that applies a simple // edge detection filter. // -// Press any key to switch between the custom and the default shader. +// Press the mouse to switch between the custom and the default shader. PImage img; PShader shader; @@ -10,7 +10,7 @@ PGraphicsOpenGL pg; boolean customShader; void setup() { - size(400, 400, P3D); + size(400, 400, P2D); img = loadImage("berlin-1.jpg"); pg = (PGraphicsOpenGL)g; @@ -23,7 +23,7 @@ public void draw() { image(img, 0, 0, width, height); } -public void keyPressed() { +public void mousePressed() { if (customShader) { pg.defaultShader(TEXTURE_SHADER); customShader = false; diff --git a/java/libraries/opengl/examples/Shaders/FXAA/FXAA.pde b/java/libraries/opengl/examples/Shaders/FXAA/FXAA.pde index 024ff89ba..76916aa89 100644 --- a/java/libraries/opengl/examples/Shaders/FXAA/FXAA.pde +++ b/java/libraries/opengl/examples/Shaders/FXAA/FXAA.pde @@ -5,9 +5,12 @@ // Press any key to enable/disable the shader. PGraphics canvas; +boolean drawing = false; PGraphicsOpenGL pg; PShader shader; boolean usingShader; +String message; +float msgLen; void setup() { size(1280, 800, P2D); @@ -19,7 +22,6 @@ void setup() { pg = (PGraphicsOpenGL) g; shader = pg.loadShader("fxaa.glsl", TEXTURE_SHADER); pg.setShader(shader, TEXTURE_SHADER); - println("FXAA shader is enabled"); usingShader = true; canvas.beginDraw(); @@ -28,27 +30,65 @@ void setup() { canvas.strokeWeight(15); canvas.strokeCap(ROUND); canvas.endDraw(); + + PFont font = createFont("Arial", 18); + textFont(font); + updateMessage(); + + drawing = false; } public void draw() { - canvas.beginDraw(); - if (1 < dist(mouseX, mouseY, pmouseX, pmouseY)) { - canvas.line(pmouseX, pmouseY, mouseX, mouseY); + if (drawing) { + canvas.beginDraw(); + if (1 < dist(mouseX, mouseY, pmouseX, pmouseY)) { + canvas.line(pmouseX, pmouseY, mouseX, mouseY); + } + canvas.endDraw(); } - canvas.endDraw(); image(canvas, 0, 0); + + drawMessage(); } -public void keyPressed() { - if (usingShader) { - pg.defaultShader(TEXTURE_SHADER); - println("FXAA shader is disabled"); - usingShader = false; +public void mousePressed() { + if (!drawing && width - msgLen < mouseX && height - 23 < mouseY) { + if (usingShader) { + pg.defaultShader(TEXTURE_SHADER); + usingShader = false; + } else { + pg.setShader(shader, TEXTURE_SHADER); + usingShader = true; + } + updateMessage(); } else { - pg.setShader(shader, TEXTURE_SHADER); - println("FXAA shader is enabled"); - usingShader = true; + drawing = true; + } +} + +void mouseReleased() { + drawing = false; +} + +void updateMessage() { + if (usingShader) { + message = "Anti-aliasing enabled"; + } else { + message = "Anti-aliasing disabled"; + } + msgLen = textWidth(message); +} + +void drawMessage() { + if (usingShader) { + // We need the default texture shader to + // render text. + pg.defaultShader(TEXTURE_SHADER); + } + fill(0); + text(message, width - msgLen, height - 5); + if (usingShader) { + pg.setShader(shader, TEXTURE_SHADER); } } - diff --git a/java/libraries/opengl/examples/Shaders/ToonShading/ToonShading.pde b/java/libraries/opengl/examples/Shaders/ToonShading/ToonShading.pde index c74fbffad..81eb02617 100644 --- a/java/libraries/opengl/examples/Shaders/ToonShading/ToonShading.pde +++ b/java/libraries/opengl/examples/Shaders/ToonShading/ToonShading.pde @@ -28,14 +28,16 @@ public void draw() { sphere(80); } -public void keyPressed() { - if (customShader) { - pg.defaultShader(LIGHT_SHADER); - customShader = false; - } - else { - pg.setShader(shader, LIGHT_SHADER); - customShader = true; +public void mousePressed() { + if (dist(mouseX, mouseY, width/2, height/2) < 80) { + if (customShader) { + pg.defaultShader(LIGHT_SHADER); + customShader = false; + } + else { + pg.setShader(shader, LIGHT_SHADER); + customShader = true; + } } }