mirror of
https://github.com/processing/processing4.git
synced 2026-06-16 04:26:26 +02:00
Updated shader examples on desktop
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user