diff --git a/core/src/processing/core/PApplet.java b/core/src/processing/core/PApplet.java index 7919d1ca6..b834e0ca2 100644 --- a/core/src/processing/core/PApplet.java +++ b/core/src/processing/core/PApplet.java @@ -40,11 +40,6 @@ import java.awt.Toolkit; import java.awt.color.ColorSpace; import java.awt.image.BufferedImage; - - - - - // used by loadImage() functions import javax.imageio.ImageIO; import javax.swing.ImageIcon; @@ -52,8 +47,9 @@ import javax.swing.JFileChooser; import javax.swing.JOptionPane; // used by desktopFile() method import javax.swing.filechooser.FileSystemView; -import javax.xml.parsers.ParserConfigurationException; +// loadXML() error handling +import javax.xml.parsers.ParserConfigurationException; import org.xml.sax.SAXException; import java.io.*; @@ -1914,6 +1910,7 @@ public class PApplet implements PConstants { if (width != this.width || height != this.height || !renderer.equals(this.renderer)) { + println(width, height, renderer, this.width, this.height, this.renderer); if (insideSettings("size", width, height, renderer)) { this.width = width; this.height = height; @@ -5688,7 +5685,7 @@ public class PApplet implements PConstants { return new XML(createReader(filename), options); // can't use catch-all exception, since it might catch the - // RuntimException about the incorrect case sensitivity + // RuntimeException about the incorrect case sensitivity } catch (IOException e) { throw new RuntimeException(e); @@ -10105,8 +10102,8 @@ public class PApplet implements PConstants { g = createPrimaryGraphics(); surface = g.createSurface(); - // if the PSurface calls setFrame() no need to create a fake frame - if (g.displayable() && frame == null) { + // Create fake Frame object to warn user about the changes + if (g.displayable()) { frame = new Frame() { @Override public void setResizable(boolean resizable) { @@ -10126,6 +10123,24 @@ public class PApplet implements PConstants { surface.setTitle(title); } + @Override + public void setUndecorated(boolean ignored) { + throw new RuntimeException("'frame' has been removed from Processing 3, " + + "use fullScreen() to get an undecorated full screen frame"); + } + + @Override + public void setLocation(int x, int y) { + deprecationWarning("setLocation"); + surface.setLocation(x, y); + } + + @Override + public void setSize(int w, int h) { + deprecationWarning("setSize"); + surface.setLocation(w, h); + } + private void deprecationWarning(String method) { PGraphics.showWarning("Use surface." + method + "() instead of " + "frame." + method + " in Processing 3"); diff --git a/core/src/processing/core/PSurfaceAWT.java b/core/src/processing/core/PSurfaceAWT.java index 649a76c4d..7f7b7f9f3 100644 --- a/core/src/processing/core/PSurfaceAWT.java +++ b/core/src/processing/core/PSurfaceAWT.java @@ -151,7 +151,7 @@ public class PSurfaceAWT extends PSurfaceNone { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - class SmoothCanvas extends Canvas { + public class SmoothCanvas extends Canvas { private Dimension oldSize = new Dimension(0, 0); private Dimension newSize = new Dimension(0, 0); diff --git a/core/todo.txt b/core/todo.txt index 953e65edb..23f00b971 100644 --- a/core/todo.txt +++ b/core/todo.txt @@ -30,10 +30,27 @@ X https://github.com/processing/processing/issues/3389 X draw() executes twice when noLoop() called in setup() X https://github.com/processing/processing/issues/3310 X broken since 3.0a7, but not in 3.0a5 +o pixelDensity(BEST)? (messes with pixels, but for most sketches, helpful) +X nixed by Casey for now +X surface.setXxx() handling +X https://github.com/processing/processing/issues/3388 +X setResizable, setVisible, setTitle +X setIconImage(java.awt.Image) -> take a PImage instead? +o removeNotify(), addNotify() +X setUndecorated(boolean) +X setting menubar will be surface-specific +X setLocation(int, int) and setSize(int, int) +X add the "don't use this" warning to the JFrame in PSurfaceAWT threading headaches X sketch not always showing with empty draw() X https://github.com/processing/processing/issues/3363 +X static mode broken with Java2D on Windows and Linux +X https://github.com/processing/processing/issues/3315 +X sketch sometimes doesn't show with noLoop() on Linux +X https://github.com/processing/processing/issues/3316 +X Window never shows with exported application on 64-bit Linux +X https://github.com/processing/processing/issues/3303 cleaning o possible addition for 'implementation' variable @@ -65,6 +82,10 @@ X https://github.com/processing/processing/issues/3379 X sketch window briefly appears on top left corner when using OpenGL X https://github.com/processing/processing/issues/3308 +contribs +X Fix NullPointerException in DepthSorter +X https://github.com/processing/processing/pull/3410 + fixed earlier X sketch window is not placed at correct location when running a second time X https://github.com/processing/processing/issues/3125 @@ -85,24 +106,15 @@ _ update wiki/docs to say "don't override sketchXxxx() methods" beta -_ pixelDensity(BEST)? (messes with pixels, but for most sketches, helpful) -_ surface.setXxx() handling -_ https://github.com/processing/processing/issues/3388 -X setResizable, setVisible, setTitle -X setIconImage(java.awt.Image) -> take a PImage instead? -_ removeNotify(), addNotify(), setUndecorated(boolean) -X setting menubar will be surface-specific -X setLocation(int, int) and setSize(int, int) -_ add the "don't use this" warning to the JFrame in PSurfaceAWT -X static mode broken with Java2D on Windows and Linux -_ https://github.com/processing/processing/issues/3315 -_ sketch sometimes doesn't show with noLoop() on Linux -_ https://github.com/processing/processing/issues/3316 -_ Window never shows with exported application on 64-bit Linux -_ https://github.com/processing/processing/issues/3303 +_ still some spinning when sketches break +_ settings() is probably not showing exceptions since we're back to the EDT +_ can't call handleSettings() on the anim thread since it sets the surface +_ so maybe the first part is on the EDT, but other threads run this stuff javafx +_ Error on size() when using FX2D due to stage inset issues +_ https://github.com/processing/processing/issues/3412 _ static mode sketches (draw once and halt w/o closing window) _ fix display handling, line up the device order with AWT _ https://docs.oracle.com/javafx/2/api/javafx/stage/Screen.html