Skip to content

Processing 4.0 alpha 2

Compare
Choose a tag to compare
@processing-bot processing-bot released this 19 Aug 06:43
· 2704 commits to main since this release

Revision 1271 - 15 September 2020

Several fixes for this round, plus working on the guts quite a bit to prepare for newer/faster/better rendering methods.

The minimum system version for macOS (for the PDE and exported applications) is now set to 10.13.6 (the last update of High Sierra). Apple will likely be dropping support for High Sierra in late 2020, so we may make Mojave (10.14) the minimum by the time Processing 4.x ships.

Known Issues

  • If you're using P2D or P3D on macOS, and have surface.setResizable(true) inside setup(), you'll need to (temporarily) move that into draw(). We had to do an ugly hack at release time due to issue 124. The ugly hack also involves the window flickering once when it first opens in this situation. We should have that fixed for the next release.

Bug Fixes

  • Break buildMenu() into populateMenu() method to delay Debugger init 73
  • Fix broken macOS build 83
  • Bump JDK to 11.0.8, then rolled back to JDK 11.0.6 again 121, 123
  • Make macOS notarization part of the build process 24
  • NullPointerException in ContributionManager.updateFlagged() on startup. Now checks for directory modes and tools directories and read/write access on startup 6034
  • PDF was broken on getImage() call 62, commit

Changes for AWT

To make way for more advanced rendering options, the exorcism of AWT from the base classes inside core has begun. More about that here: https://github.com/processing/processing4/wiki/Exorcising-AWT

  • Remove all usage of AWT from PApplet 55
  • Make edits to core so that AWT can be disabled and LWJGL can run commit
  • Add --disable-awt option to PApplet.main()
  • Fix for precision issues with PDF 5801
  • Implement displayDensity(int), it's been returning the main display's value
  • Show “displays have separate spaces” warning message when the param is unset
    • Show it in the console, which allows us to get rid of JOptionPane
    • Catalina seems to have it un-set, but the default is the same
  • Move selectInput/Output/Folder to ShimAWT class
  • remove the java.awt.Frame object from PApplet
  • Move loadImage() into ShimAWT
  • desktopFile() and desktopPath() methods are supported, unless we find they're trouble
  • Move ShimAWT.loadImage() to the PSurface subclasses
  • Move all java.awt and javax.imageio out of PImage
  • Make the switch to getModifiersEx() instead of getModifiers() 4
  • Fix PImage.save() breakage due to AWT changes above (saving to PNG was broken in anything but the default renderer) 80

Sam was at it again

  • Zoom dialog fonts based on user scale setting 111, 125
  • Resolve rewrite of pixelDensity to settings in preproc 58, 60
  • Resolve PDF renderer parse issue in preproc 66, 68
  • Bump JOGL 2.4 to the new release candidate (20200307) 85
  • Remove debugging printout from Open Recent 78, 79
  • Fix broken tests 92, 93
  • Refactor out preproc.issue 96
  • Debug button in the toolbar is currently broken 94, 95
  • Fix WARNING: Illegal reflective access by processing.opengl.PSurfaceJOGL” on getContextCapabilities() 50, 76
  • Migrate JSSC to sampottinger/jssc 71, 75
  • Rewrite size call for all renderers 90, 91
  • Switch to JFileChooser on Mac with VAqua 88
  • Cut/Copy/Paste while saving a sketch on macOS was going to the editor, not the save dialog 77
  • Implement the basics of Dark Mode for the Mac 89
  • color as return type was broken 104, 105
  • Automated (jenkins) build broken because ant 1.10.7 download no longer available 106, 107
  • Processing IDE interface too small on high-res Windows displays 102
  • Ensure not trying to use Toolkit zoom before ready 103

Other Contributed Changes

  • Remove some redundant boxing and casting 51