Releases: benfry/processing4
Processing 4.0 alpha 4
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 becausePImage.getNative()
returnsnull
#180 -
PImage.resize()
not working properly. #200 -
copy()
not working correctly. #169
Did you find any particularly niggling, but small issues?
-
Catch
NoClassDefError
inPlatform.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()
fordispose
fromdispose()
makes for bad state situation. #199
How about contributions from the community?
-
Some exciting things are on the way for the documentation and web site. #191
-
Tweak the circle for number of updates based on Akarshit's initial attempt. #201, #4097
-
Make
parseJSONObject()
andparseJSONArray()
returnnull
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
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
ingetSystemZoom()
on startup in alpha 2. 143 loadJSONObject()
andloadJSONArray()
now returnnull
if the given file was not found (in line with otherloadXxxx()
APIs. 6081- Update the splash screen to say 2021 before the pedants can hunt me down.
- Contribution translation updates (thank you!)
- Remove zero width no-break space
U+FEFF
character withtrim()
. PShapeOpenGL.setAttrib()
warning referencedsetNormal()
instead ofsetAttrib()
. 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 typingant source-jar
inside thecore
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 theeditor.laf
preference instead) - Move macOS-specific code out of
DefaultPlatform
and intoMacPlatform
- Get rid of
- 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
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)
insidesetup()
, you'll need to (temporarily) move that intodraw()
. 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()
intopopulateMenu()
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
inContributionManager.updateFlagged()
on startup. Now checks for directorymodes
andtools
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 toPApplet.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
- Show it in the console, which allows us to get rid of
- Move
selectInput/Output/Folder
toShimAWT
class - remove the
java.awt.Frame
object fromPApplet
- Move
loadImage()
intoShimAWT
desktopFile()
anddesktopPath()
methods are supported, unless we find they're trouble- Move
ShimAWT.loadImage()
to thePSurface
subclasses - Move all
java.awt
andjavax.imageio
out ofPImage
- Make the switch to
getModifiersEx()
instead ofgetModifiers()
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
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 deprecatedisAccessible()
. 33, 3
Other Contributed Fixes
- Disable FBO when using Intel HD 3000 Graphics. 4104, 5881
rotateZ()
was breaking inPShapeOpenGL
. 28, 41
Cross-ported from 3.5.4
- This release includes all updates found in Processing 3.5.4