Processing 4.0b3
Revision 1278 – 15 January 2022
New colors in the UI! We're still making changes to the design of the UI, but this release includes a new theme engine that makes it possible to select interface colors from a set of options, as well as more control over choosing your own schemes. Check out Tools → Theme Selector for the magic.
We've also moved to Java 17, fixed lots of bugs, added a new default color scheme, and implemented better support for multiple windows with OpenGL.
We even updated the loading screen to include 2022 in the copyright notice.
Fixing the bugs that won't fix themselves
-
Added an option to “Disable HiDPI Scaling” on Windows for users that were having trouble with the editor caret (cursor) showing up in the wrong position, or text in the interface (on the tabs in particular) looking oddly jagged. #226, #231
-
The “Disable HiDPI Scaling” option is a temporary workaround, with ongoing development taking place at #342. There's also a console warning if Processing detects that your display may have issues, however it's nearly impossible to do this with certainty. As a result, we can't enable the option by default, because it would make things worse for users who don't need it. Fixing this issue requires spending a lot of time testing different Windows systems, resolutions, monitor setups, etc.
-
Too much writing to the console (from both System.out and System.err) causing the software to lock up completely. #338
-
Got rollovers working again for the Toolbar buttons. Somewhat comically, these seem to have broken at some point during the 3.x development process, and nobody noticed.
-
Fix a problem where the default font would misbehave after
textSize()
was called. Turns out the problem was that the wrong font was being used in the first place. But also added a warning for users when unsupported characters are used with the default font. #303, #4956 -
listFiles()
andlistPaths()
with an extension specified were not properly matching directories. -
Fix for
disableStyle()
with 2D shapes inP3D
. -
Allow
GEOMETRY
(not justPATH
) withcontains()
in PShape. Thecontains()
method is still imperfect, but it's just as bad with polygon shapes as path shapes. -
The Open/Save dialog box was crashing on Linux. Can't reproduce with this release, which uses Adoptium OpenJDK 17, so fingers crossed that it's resolved. #306
Known Issues, the thorns that remain in our side
-
The included version of the documentation is for 3.0, not the newer 4.0.
-
The display scaling issues on Windows need to be resolved without folks having to use Preferences. #342
Major internal work to support UI themes
-
As mentioned above, several new themes are available from the “Theme Selector” option in the Tools menu. Selecting a theme will create a
theme.txt
file in your sketchbook that sets the interface colors. -
If you make changes to the
theme.txt
file in your sketchbook, you can select Tools → Update Theme to see those changes reflected in the interface. If there's notheme.txt
file in your sketchbook, it will create atheme.txt
file in your sketchbook, which you can edit. After you've saved your changes, select “Update Theme” again to see the updates. -
Selecting a new theme will resave your
theme.txt
file under a new name (theme.001
,theme.002
, etc.) -
Now using custom scrollbar widgets in the Editor so that it can better match the rest of the interface.
-
Auto-generating toolbar and tab icons from SVG files based on theme colors.
-
Implement automatic update for changes to
theme.txt
in the sketchbook. -
More documentation about all of this soon, which will live here.
Hark, a sound from the West, and it is Sam
-
Error when calling
smooth()
onPGraphics
#272 -
Detect if calling special methods on
PApplet
or not (and restore unit tests) #288 -
Move Mockito to a new version. #287
Behold, a sound from the East, and it is Andrés
-
Finalizing support for multiple windows with OpenGL. #312, #313
-
Implement buffer object streaming for
P2D
andP3D
and finalize attribute API inPShape
. #314
The community continues pitching in
Maintaining this 200-year-old house
-
Use UTF-8 for
readString()
andwrite()
in net client. Avoids platform-specific behavior; Java 18 also making UTF-8 the default. #336 -
Cleaning up the Create Font dialog while tracking down #278. Removed
Serif
,SansSerif
,Monospaced
,Dialog
,DialogInput
from Create Font. Also sorting the list of font names, and skipping fonts that start with.
or#
because they're supposed to be hidden from users.