mirror of
https://github.com/processing/processing4.git
synced 2026-06-16 04:26:26 +02:00
remove dead code, remove danger, rename methods to avoid mix-ups
This commit is contained in:
@@ -67,7 +67,7 @@ public interface PConstants {
|
||||
static final String OPENGL = P3D;
|
||||
|
||||
// Experimental, higher-performance Java 2D renderer (but no pixel ops)
|
||||
static final String E2D = PGraphicsDanger2D.class.getName();
|
||||
// static final String E2D = PGraphicsDanger2D.class.getName();
|
||||
|
||||
// Experimental JavaFX renderer; even better 2D performance
|
||||
static final String FX2D = PGraphicsFX2D.class.getName();
|
||||
|
||||
@@ -1,198 +0,0 @@
|
||||
/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
||||
|
||||
/*
|
||||
Part of the Processing project - http://processing.org
|
||||
|
||||
Copyright (c) 2015 The Processing Foundation
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation, version 2.1.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General
|
||||
Public License along with this library; if not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
package processing.core;
|
||||
|
||||
|
||||
/**
|
||||
* Experimental/enhanced renderer that draws directly to the Graphics context
|
||||
* without an intermediate image. This greatly speeds up performance
|
||||
* (especially on hidpi displays), but prevents pixel access. It also causes
|
||||
* some rendering hiccups (frame rate is not as smooth), but that's why it's
|
||||
* experimental.
|
||||
*
|
||||
* Works with both normal and hidpi, without need for an extra E2D_2X.
|
||||
*
|
||||
* This is not the final class name, and it's not clear in what form (or if)
|
||||
* this will ship with 3.0.
|
||||
*/
|
||||
public class PGraphicsDanger2D extends PGraphicsJava2D {
|
||||
// doesn't exist/not necessary because Java2D will do this automatically
|
||||
//static final boolean HIDPI = true;
|
||||
//static final boolean HIDPI = false;
|
||||
|
||||
|
||||
// public PGraphicsDanger2D() {
|
||||
// if (HIDPI) {
|
||||
// pixelFactor = 2;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
@Override
|
||||
public PSurface createSurface() {
|
||||
return surface = new PSurfaceDanger(this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void beginDraw() {
|
||||
//g2 = checkImage(); // already set g2
|
||||
|
||||
// if (HIDPI) {
|
||||
// g2.scale(2, 2);
|
||||
// }
|
||||
|
||||
// Calling getGraphics() seems to nuke the smoothing settings
|
||||
smooth(smooth);
|
||||
|
||||
checkSettings();
|
||||
resetMatrix(); // reset model matrix
|
||||
vertexCount = 0;
|
||||
}
|
||||
|
||||
|
||||
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
|
||||
|
||||
@Override
|
||||
public void loadPixels() {
|
||||
nope("loadPixels");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePixels() {
|
||||
nope("updatePixels");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePixels(int x, int y, int c, int d) {
|
||||
nope("updatePixels");
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@Override
|
||||
public int get(int x, int y) {
|
||||
nope("get");
|
||||
return 0; // not reached
|
||||
}
|
||||
|
||||
@Override
|
||||
public PImage get(int x, int y, int c, int d) {
|
||||
nope("get");
|
||||
return null; // not reached
|
||||
}
|
||||
|
||||
@Override
|
||||
public PImage get() {
|
||||
nope("get");
|
||||
return null; // not reached
|
||||
}
|
||||
|
||||
@Override
|
||||
public void set(int x, int y, int argb) {
|
||||
nope("set");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void set(int x, int y, PImage image) {
|
||||
nope("set");
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@Override
|
||||
public void mask(int alpha[]) {
|
||||
nope("mask");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mask(PImage alpha) {
|
||||
nope("mask");
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@Override
|
||||
public void filter(int kind) {
|
||||
nope("filter");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void filter(int kind, float param) {
|
||||
nope("filter");
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@Override
|
||||
public void copy(int sx1, int sy1, int sx2, int sy2,
|
||||
int dx1, int dy1, int dx2, int dy2) {
|
||||
nope("copy");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void copy(PImage src,
|
||||
int sx1, int sy1, int sx2, int sy2,
|
||||
int dx1, int dy1, int dx2, int dy2) {
|
||||
nope("copy");
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
public void blend(int sx, int sy, int dx, int dy, int mode) {
|
||||
nope("blend");
|
||||
}
|
||||
|
||||
public void blend(PImage src,
|
||||
int sx, int sy, int dx, int dy, int mode) {
|
||||
nope("blend");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void blend(int sx1, int sy1, int sx2, int sy2,
|
||||
int dx1, int dy1, int dx2, int dy2, int mode) {
|
||||
nope("blend");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void blend(PImage src,
|
||||
int sx1, int sy1, int sx2, int sy2,
|
||||
int dx1, int dy1, int dx2, int dy2, int mode) {
|
||||
nope("blend");
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@Override
|
||||
public boolean save(String filename) {
|
||||
nope("save");
|
||||
return false;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
protected void nope(String function) {
|
||||
throw new RuntimeException(function + "() is unavailable with E2D");
|
||||
}
|
||||
}
|
||||
@@ -49,7 +49,7 @@ public class PSurfaceAWT extends PSurfaceNone {
|
||||
Rectangle screenRect;
|
||||
|
||||
// 3.0a5 didn't use strategy, and active was shut off during init() w/ retina
|
||||
boolean useStrategy = true;
|
||||
// boolean useStrategy = true;
|
||||
|
||||
// Canvas canvas;
|
||||
Component canvas;
|
||||
@@ -85,9 +85,9 @@ public class PSurfaceAWT extends PSurfaceNone {
|
||||
// useStrategy = false;
|
||||
}
|
||||
canvas = new SmoothCanvas();
|
||||
if (useStrategy) {
|
||||
canvas.setIgnoreRepaint(true);
|
||||
}
|
||||
// if (useStrategy) {
|
||||
canvas.setIgnoreRepaint(true);
|
||||
// }
|
||||
|
||||
// Pass tab key to the sketch, rather than moving between components
|
||||
canvas.setFocusTraversalKeysEnabled(false);
|
||||
@@ -191,22 +191,21 @@ public class PSurfaceAWT extends PSurfaceNone {
|
||||
@Override
|
||||
public void paint(Graphics screen) {
|
||||
// System.out.println("painting");
|
||||
// validate();
|
||||
if (useStrategy) {
|
||||
render();
|
||||
// if (useStrategy) {
|
||||
render();
|
||||
|
||||
} else {
|
||||
// new Exception("painting").printStackTrace(System.out);
|
||||
// if (graphics.image != null) { // && !sketch.insideDraw) {
|
||||
if (onscreen != null) {
|
||||
// synchronized (graphics.image) {
|
||||
// Needs the width/height to be set so that retina images are properly scaled down
|
||||
// screen.drawImage(graphics.image, 0, 0, sketchWidth, sketchHeight, null);
|
||||
synchronized (offscreenLock) {
|
||||
screen.drawImage(onscreen, 0, 0, sketchWidth, sketchHeight, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
// } else {
|
||||
//// new Exception("painting").printStackTrace(System.out);
|
||||
//// if (graphics.image != null) { // && !sketch.insideDraw) {
|
||||
// if (onscreen != null) {
|
||||
//// synchronized (graphics.image) {
|
||||
// // Needs the width/height to be set so that retina images are properly scaled down
|
||||
//// screen.drawImage(graphics.image, 0, 0, sketchWidth, sketchHeight, null);
|
||||
// synchronized (offscreenLock) {
|
||||
// screen.drawImage(onscreen, 0, 0, sketchWidth, sketchHeight, null);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -313,12 +312,12 @@ public class PSurfaceAWT extends PSurfaceNone {
|
||||
}
|
||||
|
||||
|
||||
Object offscreenLock = new Object();
|
||||
BufferedImage offscreen;
|
||||
BufferedImage onscreen;
|
||||
// Graphics off;
|
||||
// Object offscreenLock = new Object();
|
||||
// BufferedImage offscreen;
|
||||
// BufferedImage onscreen;
|
||||
|
||||
|
||||
/*
|
||||
protected void blit() {
|
||||
// Other folks that call render() (i.e. paint()) are already on the EDT.
|
||||
// We need to be using the EDT since we're messing with the Canvas
|
||||
@@ -360,6 +359,7 @@ public class PSurfaceAWT extends PSurfaceNone {
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// what needs to happen here?
|
||||
@@ -1372,9 +1372,10 @@ public class PSurfaceAWT extends PSurfaceNone {
|
||||
public Thread createThread() {
|
||||
return new AnimationThread() {
|
||||
@Override
|
||||
public void render() {
|
||||
public void callDraw() {
|
||||
sketch.handleDraw();
|
||||
blit();
|
||||
//blit();
|
||||
render();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
||||
|
||||
/*
|
||||
Part of the Processing project - http://processing.org
|
||||
|
||||
Copyright (c) 2015 The Processing Foundation
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation, version 2.1.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General
|
||||
Public License along with this library; if not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
package processing.core;
|
||||
|
||||
import java.awt.Canvas;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.image.BufferStrategy;
|
||||
|
||||
|
||||
public class PSurfaceDanger extends PSurfaceAWT {
|
||||
|
||||
public PSurfaceDanger(PGraphics graphics) {
|
||||
super(graphics);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Thread createThread() {
|
||||
return new AnimationThread() {
|
||||
@Override
|
||||
public void render() {
|
||||
//sketch.handleDraw();
|
||||
blit();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected synchronized void render() {
|
||||
if (!canvas.isDisplayable()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Canvas c = (Canvas) canvas;
|
||||
if (c.getBufferStrategy() == null) { // whole block [121222]
|
||||
c.createBufferStrategy(2);
|
||||
}
|
||||
BufferStrategy strategy = c.getBufferStrategy();
|
||||
if (strategy == null) {
|
||||
return;
|
||||
}
|
||||
do {
|
||||
do {
|
||||
Graphics2D draw = (Graphics2D) strategy.getDrawGraphics();
|
||||
|
||||
// draw the Java2D feller here
|
||||
((PGraphicsJava2D) sketch.g).g2 = draw;
|
||||
sketch.handleDraw();
|
||||
|
||||
draw.dispose();
|
||||
|
||||
} while (strategy.contentsRestored());
|
||||
|
||||
strategy.show();
|
||||
|
||||
} while (strategy.contentsLost());
|
||||
}
|
||||
}
|
||||
@@ -236,7 +236,8 @@ public class PSurfaceNone implements PSurface {
|
||||
super("Animation Thread");
|
||||
}
|
||||
|
||||
public void render() {
|
||||
// broken out so it can be overridden by Danger et al
|
||||
public void callDraw() {
|
||||
sketch.handleDraw();
|
||||
}
|
||||
|
||||
@@ -291,7 +292,9 @@ public class PSurfaceNone implements PSurface {
|
||||
// try {
|
||||
// EventQueue.invokeAndWait(new Runnable() {
|
||||
// public void run() {
|
||||
render();
|
||||
// System.out.println("calling draw, finished = " + sketch.finished);
|
||||
//System.out.println("calling draw, looping = " + sketch.looping + ", frameCount = " + sketch.frameCount);
|
||||
callDraw();
|
||||
|
||||
// EventQueue.invokeLater(new Runnable() {
|
||||
// public void run() {
|
||||
|
||||
Reference in New Issue
Block a user