Skip to content

Releases: benfry/processing4

Processing 4.0 alpha 4

15 Jun 22:40
Compare
Choose a tag to compare

Revision 1273 - 15 June 2021

Happy birthday to my goddaughter Kelsey! Let's celebrate with another alpha release.

This should be a bit more stable than the last round. I've rolled back some of the more aggressive anti-AWT changes (bad for longevity, good for compatibility) so images in particular are now behaving better.

But enough of that, let's go to the phone lines:

What bugs have been fixed; why should I care?

  • Sketch window location is saved once again: re-running a sketch will open the window in the same location. This was broken for a while! #158, #5843, #5781

  • When using multiple monitors, new Editor windows will open on the same display as the most recently opened Editor window. #205, formerly #1566

  • A major Undo fix, this may even be the big one, but it's not confirmed. (Please help confirm!) #175

Were you too hasty with exorcising AWT?

  • cursor(PImage) broken everywhere because PImage.getNative() returns null #180

  • PImage.resize() not working properly. #200

  • copy() not working correctly. #169

Did you find any particularly niggling, but small issues?

  • Catch NoClassDefError in Platform.deleteFile() (still unclear of its cause) on Big Sur. #159, #6185

  • Fixed Exception in thread "Contribution Uninstaller" NullPointerException when removing an installed contribution. #174

  • If the default display is selected in the Preferences window, store that, rather than its number. It was discovered that plugging in a second display could bump the “default” display to number 2, even while it was still selected. Yay!

  • Sort out calling unregisterMethod() for dispose from dispose() makes for bad state situation. #199

How about contributions from the community?

  • Don't sort user's charset array when calling createFont(). #197, #198
  • Some exciting things are on the way for the documentation and web site. #191

  • Update Batik to 1.14. #179, #192, #183

  • Tweak the circle for number of updates based on Akarshit's initial attempt. #201, #4097

  • Make parseJSONObject() and parseJSONArray() return null when parsing fails. #165, #166

Is there anything new?

  • Added PVector.setHeading() for parity with p5.js. #193
  • The default font (what you get if textFont() isnot used) has been changed to Source Sans instead of Lucida Sans. I just couldn't take Lucida any longer.

Were there any internal changes I probably won't notice?

  • Updated to JDK 11.0.11+9

  • Update from JNA 5.2.0 to 5.7.0

  • Modernize the RegisteredMethods code to use collections classes w/ concurrency. #199

  • Set closed issues to automatically lock after they've been closed for 30 days. (This has no effect on open issues, only closed ones.) Actually this one you may have noticed if you had a lot of notifications turned on.

  • Slowly transitioning some of the older code to newer syntax (lambda functions, etc). This is not a priority for anyone else: it's being done slowly, and as a chance to do code review on some very old work.

  • Fix textMode(SHAPE) is not supported by this renderer message with SVG Export. #202, #6169

Processing 4.0 alpha 3

18 Jan 03:07
Compare
Choose a tag to compare

Revision 1272 - 17 January 2021

Happy Martin Luther King Day! (Or MLK Day Eve, if you're reading this on Sunday.)

Several bug fixes and updates in this release, the most significant being video capture on macOS should be working again, and several OpenGL fixes that come with an updated release of JOGL. (Thanks to Sven Göthel, who continues working on it after many years.)

Update - 18 January 2021 - The app was broken on Windows because of the… splash screen. The download link has been updated with a new zip that fixes the issue, or if you've already downloaded alpha 3, you can download the attached processing.exe and replace just that file.

Known Issues

  • The ugly surface.setResizable() workaround in the previous release is now properly fixed. 124
  • Haven't had a chance to test much with macOS running on M1 machines. Chances are this should run in Rosetta mode, but I've not had time to find out.

Fixes and Updates

  • Video was broken on macOS because of Apple's security changes.
  • Audio was also broken on macOS because of Apple security changes.
  • Fix NullPointerException in getSystemZoom() on startup in alpha 2. 143
  • loadJSONObject() and loadJSONArray() now return null if the given file was not found (in line with other loadXxxx() APIs. 6081
  • Update the splash screen to say 2021 before the pedants can hunt me down.
  • Contribution translation updates (thank you!)
    • Updates and fixes for the Portugese translation 133, 134, 147
    • Correct alphabetical order for the language list. 146
  • Remove zero width no-break space U+FEFF character with trim().
  • PShapeOpenGL.setAttrib() warning referenced setNormal() instead of setAttrib(). 141
  • Add var keyword to highlighting 114
  • Fix revision number in exported code 135

And More from Sam

  • Fix preprocessor spaces in the size() command to follow our guidelines. 136, 138
  • Move PdePreprocessIssueException to the test package. 130, 139
  • Fix regression where smooth(4) was showing the “smooth() can only be used inside settings()” error. 149, 152

Internal Additions

  • You can now create a “source” .jar file by typing ant source-jar inside the core directory. 118
  • Update Batik from 1.8 to 1.13 inside SVG Export library. Fixes incompatibilities with Java 11.
  • Automate macOS notarization in the build process (done in 4.0a2) 24
  • Show Tool incompatibilities with a message dialog, and clean up a little of the internal error handling.
  • Prevent “illegal line” message when loading library with 0xFEFF chars in a .properties file
  • Fixes to Platform code
    • Get rid of editor.laf.vaqua preference (use the editor.laf preference instead)
    • Move macOS-specific code out of DefaultPlatform and into MacPlatform
  • Clean up “Export to Application”
    • Turned off 32-bit and ARM exports (no longer supported)
    • Drop '64' from the folder name (everything 64-bit from now on)
    • Remove “big fat lie“ error spew on export
    • Too many .dll and .jar files were included
    • Updates and text changes to be a little clearer
    • Fixed links for Java 11
    • Set minimum version on Windows, fix JDK download URL

Processing 4.0 alpha 2

16 Sep 01:22
Compare
Choose a tag to compare

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

Processing 4.0 alpha 1

19 Jan 02:46
Compare
Choose a tag to compare

Revision 1270 - 18 January 2019

This is a massive update! With the help of Sam Pottinger, we're working to get Processing to run with Java 11. This will give us a more stable platform for the next few years.

In the process, there are also significant updates which include updated Java syntax support and lots of other long-awaited features.

We've started a Changes in 4.0 document to keep track of all the details.

We recommend using a different sketchbook location for 4.0, to avoid confusion with things that might be incompatible with your 3.0 work.

Sam Did a Lot of Work

  • This massive pull request has the changes that got things kicked off. It closes several issues and pull requests, including 5750, 5753, 4415, and others.
  • ANTLR has been updated from version 2 to version 4. The grammar has been updated for Java 8 and a new pre-processor created. 3054 and 3055
  • Support for Travis CI has been added. 2747
  • The macOS integration layer has been updated for Java 11. 5747
  • Nested generics now work properly. 4514
  • Several fixes for the build process. 12, 6
  • Update to JNA 5, and migrate code Native.load() calls. 7, 15
  • Fix console font spacing. 19, 20
  • Implement import static. 18, 5577
  • Fixing problems with Windows UI scaling. 21, 30
  • Fix display density detection and use GraphicsConfiguration. 32, 35, 34
  • Fix WARNING: Illegal reflective access by processing.app.ui.Toolkit to field sun.awt.CGraphicsDevice.scale warning on startup.
  • Replace macOS-specific fullscreen option for setResizable(). 36
  • Several tests have been added, and are called by default during ant dist. 38, 8
  • Update from Java 11.0.2 to 11.0.5, and eventually 11.0.6. 40, 39
  • Fix Java 11 incompatibilities inside PSurfaceFX. 5286
  • Fixed Table's use of deprecated isAccessible(). 33, 3

Other Contributed Fixes

  • Disable FBO when using Intel HD 3000 Graphics. 4104, 5881
  • rotateZ() was breaking in PShapeOpenGL. 28, 41

Cross-ported from 3.5.4

Known Issues

  • Only basic updates have been made to remove references to 3.x. 48
  • A complete list of issues can be found here