Switch branches/tags
start release-0003 processing-0265-3.4 processing-0264- processing-0264- processing-0264-3.3.7 processing-0263-3.3.6 processing-0262-3.3.5 processing-0261-3.3.4 processing-0260-3.3.3 processing-0259-3.3.2 processing-0258-3.3.1 processing-0257-3.3 processing-0256-3.2.4 processing-0255-3.2.3 processing-0254-3.2.2 processing-0253-3.2.1 processing-0252-3.2 processing-0251-3.1.2 processing-0250-3.1.1 processing-0249-3.1 processing-0248-3.0.2 processing-0247-3.0.1 processing-0246-3.0 processing-0245-3.0b7 processing-0244-3.0b6 processing-0243-3.0b5 processing-0242-3.0b4 processing-0241-3.0b3 processing-0240-3.0b2 processing-0239-3.0b1 processing-0238-3.0a11 processing-0237-3.0a10 processing-0236-3.0a9 processing-0235-3.0a9 processing-0235-3.0a8 processing-0234-3.0a7 processing-0233-3.0a6 processing-0232-3.0a5 processing-0231-3.0a4 processing-0230-3.0a3 processing-0229-3.0a2 processing-0228-3.0a1 processing-0227-2.2.1 processing-0226-2.2.1 processing-0226-2.2 processing-0225-2.1.2 processing-0224-2.1.1 processing-0223-2.1 processing-0222-2.1b1 processing-0221-2.0.3 processing-0220-2.0.2 processing-0219-2.0.1 processing-0218-2.0 processing-0217-2.0b9 processing-0216-2.0b8 processing-0215@10580 processing-0215 processing-0214@10377 processing-0214 processing-0213@10330 processing-0213 processing-0212@10308 processing-0212 processing-0211@10224 processing-0211 processing-0210@10194 processing-0210 processing-0209@10148 processing-0209 processing-0208@10071 processing-0208 processing-0207@9971 processing-0207 processing-0206@9934 processing-0206 processing-0205@9704 processing-0205 processing-0204@9329 processing-0204 processing-0203@8867 processing-0203 processing-0202@8839 processing-0202 processing-0201@8807 processing-0201 processing-0200@8447 processing-0200 processing-0199@8146 processing-0199 processing-0198@8119 processing-0198 processing-0197@7954 processing-0197 processing-0196@7917 processing-0196 processing-0195@7858 processing-0195 processing-0194@7788 processing-0194
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
9975 lines (6432 sloc) 350 KB
PROCESSING 3.4 (REV 0265) - 26 July 2018
Kind of a huge batch of bug fixes and updates.
We've had trouble on Windows when MS Security Essentials or Windows Defender
decides to defend your machine from our software, removing files from the
download and making Processing unusable. A few extra checks have been added
so that more helpful warnings can be conveyed when this happens.
The other important fix is better handling in the Contributions Manager
for sites that use https. This fixes Python Mode installation, and many
others that have recently started reporting "Could not find a ... in the
downloaded file" when installing a Library, Mode, Tool, or Example set.
We're also bumping the release to 3.4 because of a lot of additions,
plus some internal changes that have an impact on API.
[ the big ones ]
+ Show alternate error message on Windows when jnidispatch.dll or core.jar
have been removed by Windows Defender or Microsoft Security Essentials.
This has been a huge headache for us. We've repeatedly submitted the
software and asked Microsoft for help, but haven't had any luck.
If you run into this issue and would like to help, please submit the files
to Microsoft here:
Perhaps if there are enough reports, they'll understand this is affecting
a lot of people.
+ Contributed libraries/examples/etc that redirect to https URLs now working.
[ new features ]
+ It's now possible to make your own theme file for Processing. Copy the
theme.txt file from inside the Processing folder to your sketchbook
folder, and then edit away. For instance, to make a dark theme:
+ It's now possible to copy the text of the status bar. Click the clipboard
icon at the right-hand side to copy the text to the clipboard. To search
immediately, use shift-click.
The default search engine is Google, but you can modify that by altering
the 'search.format' line in preferences.txt
+ Added pyde as a supported extension, so double-clicking
on Python sketches will launch the PDE.
[ do you like data? ]
+ Added Double and Long versions of the data classes. Not sure if we'll
keep these, but we're trying them out.
+ Also add subset(long) and subset(double) to PApplet
+ Changed the internal Sort class to use int for comparisons for better
accuracy, especially when working with double and long values.
+ Consistently implemented write(PrintWriter) in the List and Dict classes
+ Added save(File) to the List and Dict classes
+ Prevent Table.sort() from throwing NullPointerException with empty cells
[ updates ]
+ Fixed up the Welcome dialog. When closing the window or hitting ESC,
the "show this" selection is recorded. Also clicking that text will
toggle the checkbox on/off, as users would expect.
+ Redesigned the Rename window to be less ugly. Now closes when ESC is
pressed, and the default action is set so hitting Enter will work properly.
+ Rewrite exec() to do threads, also handle fast/excessive output cases
+ Rewrite requestImage() to fix errors/slowness/concurrency problems
+ Refactoring inside the completion code
+ Now using Java 8u181.
+ Change lack of blendMode() to a warning rather than an error in PDF
+ Updated the copyright and year in the launch and About screen.
[ give gohai a hand, because he's all arm ]
+ A large number of changes and fixes for ARM submitted by Gottfried,
who also posted and interim releases with some of these
changes already present. Now we're back on track with 3.4.
+ Additional I/O improvements
+ Fix regressions in
+ OpenGL ES: Fix GLSL version number for 1.00
+ Add ADS1X15 Analog-to-Digital converter example
+ IO: pinMode() can now set pull-up and pull-down resistors on Raspbian
thanks to @xranby for 64-bit help
+ Several new examples
+ IO: New example sketch showing how to use a MPR121 capacitive touch sensor
fun tutorial by @msurguy forthcoming
+ IO: New example sketch showing how to use a BME280 environmental sensor
IO: New example sketch showing how to use a TSL2561 light sensor
IO: New example sketch showing how to use a PCA9685 Servo & PWM controller
...all contributed by @OlivierLD
+ IO: pinMode() got faster
+ IO: I2C now supports talking to slower devices, such as Arduino boards
+ Support for ARM Mali graphics was added to P2D/P3D
Thanks to seongwook from the forums for his help during bringup
+ P3D now supports up to 4 lights on Pi using their OpenGL driver
+ Serial library now supports Raspbian's port naming (such as "/dev/serial0")
+ Enable exporting of Windows applications on ARM
+ Clarify SimpleInput example
+ Various ARM-related updates
+ Make P3D work on Linux SBCs using ARM Mali graphics and their ES 3.1 driver
[ contributed by the community ]
+ Updates to Japanese translation
+ Added Russian translation
+ Make "loadXML(String)" handle "file not found"
+ Update java.lang.UnsupportedClassVersionError message
+ Semi-transparent colors do not display properly in PGraphics
+ Fixed a crash occuring while loading certain SVGs exported from Illustrator
+ Support PShape.contains() on GROUP objects
+ Improve implementation of PShape.contains() to take the CTM into account
[ bug fixes ]
+ Make sure the editor is updated after reloading changes (from Jakub)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.3.7 (REV 0264) - 13 March 2018
A rollup of several fixes from the last few months.
[ changes most likely to be noticed ]
+ Windows Defender blocks Processing 3.3.6. Not sure why this was happening,
but hopefully a new release should be all that's necessary to fix it.
+ Lots of fixes for the Net Library by Jakub
+ Include newlines at end of files (i.e. when saving .pde files)
Why do this?
+ Rename (refactor) dialog is unusable on high density screen
+ Detect errors from curved quotation marks (a headache when copying/pasting)
+ NullPointerException on close button with P3D and noLoop
+ Fix exception due to version parsing in Java 9
+ Fix line joins on triangles
[ somewhere in the middle ]
+ Fix NullPointerException in ContributionManager.deleteFlagged()
+ Fix scrub comments for empty block comment /**/
+ Fix error checker crash when className contains [ or ]
+ Table.insertRow() causes ArrayIndexOutOfBoundsException (with fix)
+ blendMode() with PDF isn't showing the warning about it not being available
+ textureWrap() not updating when changed during draw()
+ Cap frameRate() to 1000 in OpenGL
+ ARM tweaks for shaders on the Raspberry Pi
+ Fix 3D on contemporary versions of Linux
+ cursor() don't work after void noCursor() in P2D and P3D
[ changes least likely to be noticed ]
+ Fix JRE download issues
+ Update to Java 8u162
+ PdePreprocessor change is breaking current source
+ Output .java files in UTF-8 and force compiler to use UTF-8
+ Refactor to use a few Java 8 features
+ Remove "Pipe Organ" from exec() docs
+ Fix typo in Italian translation
+ Remove useless deprecation on PImage.mask(int[])
+ Make un/registering methods in PApplet thread-safe
+ set colorModeDefault to true by default
+ Minor bezierPoint() rewrite for performance
[ additions! new features! ]
+ Added setIndex() method to IntDict, FloatDict, StringDict
+ Added resize() to IntDict, FloatDict, StringDict
+ Fix entries() Iterator in IntDict, FloatDict, StringDict
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.3.6 (REV 0263) - 4 September 2017
A collection of mostly minor bug fixes that have accreted
since the last release back in June.
[ contributions, we love 'em ]
+ Add Italian translation
+ Wrong tab for missing brace
+ Fix typo in German translation
+ Movie Maker only works once
+ Add more build products to linux/.gitignore
+ Add issue template to the repo
+ Add workaround for window size = 0 crash
[ jakub, we love him ]
+ Fix comment/uncomment adding slashes at wrong indent
+ Add JavaFX runtime to error checker class path
[ gottfried, with gusto ]
+ Ironing out the new shell() command
+ Workaround issues with August 2017 release of Raspbian
+ Fix bugs in line vert shader
[ behind the scenes ]
+ Updated to Java 8u144
+ Fixed issue with call to remove value instead of key in mode contrib hash
(this was only in the code used by the command line mode loader)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.3.5 (REV 0262) - 23 June 2017
Fixes for a couple problems introduced in the last release.
[ everything that went bad ]
+ Console window was only remembering two lines of text
because of a name collision in the preferences handling.
+ Something went wrong with the 64-bit Linux release:
" cannot open shared object file: No such file or directory"
+ "Could not parse -1 for --display" message on some Windows machines
[ some new things hopefully going good ]
+ Fix a NullPointerException that showed up with textWidth() and OpenGL
+ Per request, use native file choosers by default on Linux. I'm told
that the default Linux file choosers have grown up in the last decade.
I'm trusting the person who is making that claim and making them default.
To get the old behavior in the Editor, change preferences.txt to say:
chooser.files.native = false
Or in your code, add this line:
useNativeSelect = false;
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.3.4 (REV 0261) - 3 June 2017
Several useful bug fixes and improvements. Some big, many small.
[ fixes you'll notice ]
+ Exported applications no longer report as "Damaged" on macOS Sierra
+ Prevent the console from freezing up when print() and println()
are used to print thousands of lines of output.
+ Apple broke key repeat in macOS Sierra, here's how to fix it:
+ Fix the keyPressed variable when multiple keys are pressed
[ some you probably won't ]
+ Clarify wording of error message regarding sketchbook location
+ Remove 'run sketches on display' error text that showed up even
when using Processing for the first time
+ Implement alternate 'ant app' target for macOS application debugging
+ Added a null check to sketch loading to prevent some issues such as
+ Handle edge case for set() being called with a 2D vector, on a 3D vector
[ incomplete additions ]
+ Add exec() with StringList options (documentation coming soon)
+ Begin work on a shell() function to do exec() via a shell
[ other contributions - thank you! ]
+ Add install/uninstall scripts for Linux and correct mime types for the PDE
+ IO library updates for ARM
+ Check $SUDO_USER on Linux for locating the sketchbook folder
+ Debugging the "files changed" detector in the Editor
+ Still more updates to the change detector
+ Warn user to use L when creating a number constant that won't fit into an int
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.3.3 (REV 0260) - 2 May 2017
Happy birthday to my Dad and baby brother!
Let's celebrate with a couple of bug fixes:
+ keyPressed not returning false once a key is released
+ Image tint() was broken in 3.3.x
+ Deal with loadBytes() regressions introduced by their rewrite
(was breaking p5jsMode because of its use of loadBytes(File)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.3.2 (REV 0259) - 25 April 2017
Broke a few eggs with that last omelette, and left a little eggshell behind.
This version takes care of a handful of revisions.
[ bug fixes, mostly for regressions in 3.3.1 ]
+ ArrayIndexOutOfBoundsException when using tint() or loadFont()
+ createInput() wasn't returning null for files that were not found
+ Assigning Pixels Vertically Flipped in P2D
[ useful updates, that hopefully aren't regressions ]
+ Improve loadBytes() performance
+ Add (far) more efficient file loading for loadBytes(File)
+ Add loadBytes(URL) variant that uses content length header for array size
+ keyPressed is false if one key is released while multiple keys are pressed
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.3.1 (REV 0258) - 23 April 2017
With Casey and Ben together in Boston for a conference, we managed to
wrap up a few things and prepare a new release. Highlights include:
+ The UI now supports Arabic with a new translation provided by Omar Hommos
+ Several bug fixes have been implemented for high-res display support
on Windows and Linux
+ Several updates from Gottfried for ARM devices like Raspberry Pi and CHIP
+ Lots of pixelDensity() and sketch scaling work has been developed by
Jakub Valtar and is in the current release, though we've not yet
activated these features entirely. Expect those in the 3.4 release.
And now on with the countdown:
[ bug fixes ]
+ Fix gap between tab headers and text area at 125% and 150% scaling on Windows
+ Some line heights were wrong on hi-dpi displays
+ Fix small tooltip text on high-dpi screens
+ Ugly button images at 125% and 150% scaling on Windows
+ Get rid of error message when exporting sketches with the video library
+ Fix preprocessing of code with double backslash in string or char literal
+ Fix breakpoints in inner classes
+ Fix preprocessor skipping one char after a block comment
+ Synchronize input event processing
+ Scrub comments: skip the second chracter in the escape sequence
[ additions & changes ]
+ Added Arabic translation
+ Added Jump to Declaration
+ Fix the JRE downloader and upgrade to Java 8 update 131
+ Add another warning for yet another a bad NVIDIA driver
+ Make the Error Table extend white to the bottom
+ Use built-in font for any non-Roman or CJK language
[ graphics & the core ]
+ Major work on window placement and pixel density by Jakub
+ Improve sum() functions in
Add sum() to IntDict and FloatDict
Add sumLong() to IntList, IntDict (to handle cases outside integer range)
Add sumDouble() to FloatList, FloatDict (to handle outside float range)
Throw exception when using sum() with numbers that are too large or small
+ createInput() and createOutput() now both use buffered streams by default
createInputRaw() does not, however
+ Don't derive the font again if the size is unchanged
+ fix temporary file handling for saveBytes(), saveStream(), etc
wasn't handling gzip output properly
also could have problems w/ names under length 3
[ gottfried's arms ]
+ Add support for 64-bit ARM boards
+ Hardware I/O updates for ARM
+ Fix MeshTweening vertex shader
+ ARM: Allow Raspberry Pi's Mesa GL driver to use up to 8 lights
...and revert it back again
+ Retry with multisampling disabled if creating a framebuffer
+ Report more error conditions in validateFramebuffer
+ Add more Raspberry Pi related fixes to JOGL
+ Unblock hardware-accelerated P3D on ARM Mali devices
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.3 (REV 0257) - 12 February 2017
This release adds the ability to the scale the UI or high-resolution
(known as HiDPI) screens on Windows and Linux. Sketches don't scale yet,
but this will at least make the Editor and Contribution Manager usable
again on more recent Windows and Linux laptops.
Note: the scaling feature is only meant to patch up problems on HiDPI
devices, it does not provide an all-purpose means for scaling UI elements
independent of the OS.
This release also attempts to fix several other Windows bugs, detailed
below. The "unconfirmed" fixes section is a handful of issues that I've
never been able to reproduce, but that should now be fixed. Please
confirm at the links listed to let me know if it's working.
This is release 3.3 instead of 3.2.5 due to the huge change to the PDE
for scaling, as well as minor API modifications (see below).
[ big fixes ]
+ PDE was too small on high-res Windows and Linux machines. If you're
having trouble with this, change the "Interface scaling" option in
the Preferences window. On Windows, it will attempt to auto-detect.
[ unconfirmed fixes ]
+ Visual artifacts on Windows 10 when using menus
+ Broken characters in the Welcome Page and the Contribution Manager
+ Add a dialog box to warn Windows users about NVIDIA driver problems
+ Blank window on startup where the "Welcome" screen should be
[ minor fixes ]
+ Prevent unnecessary 'file not found' errors in the console during Export
[ fixed earlier ]
+ Contribution Manager does not show all libraries until filter cleared
[ changes to core ]
+ StringDict(TableRow) constructor to create a dictionary from a table row
+ Allow lone double quotes in the midst of CSV strings. This improves
compatibility with spreadsheets exported from Google Sheets.
+ Return null (rather than NullPointerException) for PApplet.trim(null)
+ Make trim() work on column titles as well
+ Make Table.trim() also remove unused rows and columns. This will remove
extra rows or columns at the beginning as well, since that's what trim()
does to whitespace on strings.
+ Consume Unicode BOM (0xFEFF) in createReader() and Table parser
+ Return null for getString(), getJSONObject(), and getJSONArray()
when key is not present, more in line w/ other API
+ Several fixes for memory leaks from jdf
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.2.4 (REV 0256) - 29 January 2017
Just getting in as many bug fixes as we can before the end of days.
The majority of these are from Jakub Valtar, plus a handful of other
contributors are noted below. Read all the way to the end for fun
new features.
[ the pde & the editor ]
+ Detect changes to 'hosts' file in case users modify/remove localhost.
No sketch window would open after hitting Run if someone had monkeyed
with their /etc/hosts file.
+ Ctrl-J (for debugger) is inserting newline
+ Spaces not handled correctly in when installing "processing-java" on macOS
+ println(int(byte(245))) throwing error
+ 'web colors' next to each other fail to parse in certain situations
+ Pasting code from editor to empty editor produces Exception
+ possible infinite loop on modified externally
+ Report missing brace in correct tab, suppress other errors until fixed
+ Improvements to sketch launching and stopping
+ Syntax highlighting issues (fixed with #4761)
+ Sketchbook window wasn't updating when sketches added, renamed, etc
[ contribution manager ]
+ Set text style properly for Contribution Manager error message
+ Added the remove filter feature (Akarshit)
+ Several Contribution Manager fixes
+ Add missing equals() and hashCode() to Contribution
+ Contribution Manager does not show all libraries until filter cleared
+ Mode, requiring update, appears in Updates tab but not in Modes tab
also fixed w/
[ internal changes ]
+ Only require to be present for build
+ Move the DEBUG flag into an external file or preferences.txt.
Replace java.util.logging code with built-in logging.
+ Split GUI and non-GUI portions of console for earlier startup.
(Otherwise System.err/out not going to a file unless we have a GUI,
which means we couldn't debug before the GUI shows up)
+ Fix JRE download failure during ant build due to Oracle change
[ the core ]
+ Write exec() documentation
+ XML fixes for getChild() producing valid XML. Add xmlns to
elements procured from getChild(), and making sure newline
is added after XML header when formatting.
+ Adding missing docs and keywords for TableRow
+ PShape in Java2D wasn't respecting 'kind'
+ Sketches still running in the background after closing
(needed to allow JAVA2D to terminate when animation thread dies)
[ closing bugs in opengl ]
+ PShape array index out of bounds when using P3D
+ Disable modelX/Y/Z() in P2D because they don't exist in 2D
+ Fix typo in GLSL preprocessor
+ Keep Windows timer resolution high for OpenGL sketches.
Prevents frame rate in OpenGL hovering around 30 instead of 60.
[ the jakubfx renderer ]
+ FX: Prevent matrix stack overflow
+ FX: Reset transform to identity before drawing background
+ FX: Implement mouse wheel event
+ FX: Fix curveVertex drawing all curves together as one long curve
+ FX: Add exception handler which reports exceptions from user code
+ Unify mouse pressed/released events across renderers
[ new features ]
+ Add listPaths(), listFiles()
+ Add increment() method that takes IntDict to merge another dictionary.
Calling this increment() since it doesn't make sense in practice for
the other dictionary types, even though it's technically an add().
+ Added Entry class for iterating StringDict, IntDict, FloatDict
+ Added XML.print() method (prints with indent of 2)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.2.3 (REV 0255) - 7 November 2016
Lots of fixes to the Contribution Manager and a couple OpenGL tweaks.
[ contributions manager ]
+ If prettyVersion isn't present, just use version number
+ Ensure that is set before checking for contrib updates
+ Clicking "Update" button in contrib manager shows non-retina version of icon
Other instances of the double-size icon found, should be fixed now
+ Fix the library reporting scripts on the server
+ Missing version number putting 'null' in the UI
+ Major clean-ups to the Contribution Manager code
[ contributions to the manager ]
+ Up-to-date status disappears after filter is removed (contributed)
+ Updates tab blank after adding, removing, updating a contribution
+ Fixes the removal of redundant contribution and update related issues
[ another fix ]
+ Warn user to restart browser when it hangs on macOS
[ opengl improvements ]
+ Automatic detection of POINT and LINE shaders fails
+ Show warning when frameRate() less than 1 is called with P2D and P3D
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.2.2 (REV 0254) - 30 October 2016
Lots of bug fixes.
[ fixes ]
+ Find in reference for size() opens StringList.size()
+ Limit rollovers on EditorStatus to the text portion. Clicking the status
area when a URL was showing was problematic because it's also the separator
used to adjust the relative size of the two panels.
+ Switch to Java 8u111. Not using 8u112 because the build numbers are
different depending on the platform, and no 112 fixes are known useful.
+ Errant "Could not open the URL" when clicking on error messages
+ Fix extensions handling in CFBundleDocument code from appbundler
+ Update launch4j to 3.9, fixing a problem with exported applications
on Windows reporting "This application requires a Java Runtime Environment
1.8.0_74", when 1.8.0_101 or later were installed.
+ Minor String comparison fix for Tweak mode
+ Fix quoting problem in IntDict.toJSON()
+ Add getRenderer() to SurfaceInfo for Andres
+ Exceptions thrown in OpenGL apps when hitting the window's close box
+ Add getRowMap() function to Table
+ Go back to textMode(MODEL) is native font not available for textMode(SHAPE)
+ NPE thrown when using textMode(SHAPE) with a .vlw font
+ Add toJSON() method to the data classes (IntDict, FloatDict, StringDict,
IntList, FloatList, and StringList). Returns an object of one of those
six types as a JSON-formatted String. For something more like the old
toString() behavior, use print().
[ gottfried's goodness ]
+ Simplify font situation to make it possible to use vanilla JRE trees
+ Updates for ARM
[ andres can do anything ]
+ Automatic handling of screen FBOs breaks readPixels() for user-provided FBO
+ PGraphicsOpenGL: camera info not updated
+ Fix PShape, updateTessellation, matrix transformations
+ QUAD_STRIP as child shape draws extra lines
+ Remove extra glClear() calls
+ PShapes do not show up in PDF with P2D renderer
+ Some semi-transparent edges of sphere() meshes rendered in higher density
+ P2D and P3D not stopping with empty draw() blocks
[ other contributed fixes ]
+ Chinese translation updates
+ Spanish translation updates
+ Spanish "open sketch folder" fix
+ Contribution Manager showing 'null' for PeasyCam version
+ Call glGetProgramiv to retrieve program log length
+ JSONObject get() method is private
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.2.1 (REV 0253) - 19 August 2016
Fixes for a couple major bugs that showed up in the last release.
[ fixes ]
+ "Could not replace preferences.old" error message on startup
when using Processing for the first time.
+ Version 3.2 won't run from paths with spaces on Windows
+ Python Mode was crashing on startup
[ additions ]
+ When quitting an OS X sketch, sometimes it was necessary to quit
twice. Added some code to work around this; we'll see how it goes.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.2 (REV 0252) - 16 August 2016
This release includes a handful of fixes to deal with startup bugs,
plus several internal changes for how Modes are implemented.
For those semantic versioning enthusiasts keeping track at home, the version
has been bumped from 3.1.x to 3.2.x to denote the internal API changes.
[ bug fixes ]
+ Processing .jar files in CLASSPATH can cause startup crash
+ Remove java.ext.dirs on startup to avoid conflicts and startup errors
+ Add 2016 to the About screen.
+ Write preferences.txt using a temporary file (and save the previous
version as preferences.old)
+ Some Table cleanup based on other CSV parsing work
+ Can't render PGraphics object using image() within a PDF
[ contributed fixes ]
+ Use HTML to print (a contributed fix for a handful of printing issues)
+ NullPointerException in SketchCode.getDocumentText()
+ Error checker now adds 'public' to all default access methods
+ Fix resizing targets for async save
+ Make loadStrings() and loadJSONObject/loadJSONArray() error msgs consistent
[ changes ]
+ Implement template sketches
+ PApplet.main(Blah.class) now works (for easy refactoring)
+ Rewrite Util.listFiles() because it wasn't working properly
+ Add printStackTrace() method in PApplet that can be overridden
[ depeche modes ]
+ Add template support for Modes
+ Added getSketchbookTemplatesFolder() to Base
+ Move general PDE code out of JavaMode and into general base classes
+ Change default PdeInputHandler constructor slightly (added another
copy so that older Modes will still work properly)
+ Change PdeKeywords to PdeTokenMarker (please notify us if this
breaks anything).
+ Added Mode.requireExampleCompatibility() so that Modes can specify
whether example packages should specifically mention their Mode
in order to be visible when that Mode is in use.
+ Mode.getTokenMarker(SketchCode code) passes through to
no arg version if not overridden.
[ input method work from Tsuyoshi Fukuda (tyfkda) ]
+ Enable input method support by default on Japanese/Korean/Chinese systems
+ Set text color for InputMethod
+ Set sketch as modified when any character committed using input method
+ Insert characters by InputMethod at one time
+ Insert string when it is committed
+ Simplify conditional branch
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.1.2 (REV 0251) - 29 July 2016
Happy Fathom Fiesta Day! We'll be taking the afternoon off to enjoy
the summer, maybe you should take the afternoon off and dive into
a new Processing release?
[ pde fixes ]
+ NullPointerException in on startup that prevented
Processing from starting up on Windows machines. Network drive issue.
+ Bring back preference to hide the error checking. Error checking will
continue in the background because it's needed for parsing/preprocessing,
but some were complaining about the error checker messages.
+ Updates to Japanese translation
+ Make preferences button wider for Japanese
+ Fix logic for warning message when the Mode cannot be changed
+ Update to Java 8u102 build 14
[ api fixes ]
+ Rewrite CSV handling to take care of some parsing bugs and improve
performance. Note that the 'newlines' option is no longer necessary
when loading files that contain newline characters mid-field.
+ Prevent random(low, high) from returning 'high'
+ Fixed iterator remove() methods so they don't skip container elements
+ Added a check for length 0 arrays in expand()
[ graphics ]
+ Disable asynchronous saveFrame() by default. This can really improve
performance, but can cause weird glitches. Bring it back by using
hint(ENABLE_ASYNC_SAVEFRAME) in your code to blissfully and speedily
create image sequences.
+ Prevent NPE in loadImage() when called before setup()
+ Fix crash when calling getUniformLoc() called in PShader.set()
[ raspberry pi ]
+ IO: Fix drawing for SPIAnalogDigital examples
+ Update JVM warning text on Linux
+ Undo the 8u91 workaround, add Mesa warning for ARM
+ IO: We want motors, they said (implements SoftwareServo)
+ Add a temporary workaround for the CHIP to deal with cursor problems
+ Fix GLExceptions on Raspberry Pi when using offscreen PGraphics
[ fixed earlier ]
+ Debugger deadlocks when choosing "Step Into" on println()
+ Suggestions switch scope to first import
+ loadImage() immediately after saveFrame() foiled by async default
the hint() mostly works, but gross to use a hint frequently
+ Fix the Downloader so that builds work again
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.1.1 (REV 0250) - 16 May 2016
Happy Day-after-my-Mother-in-Law's-birthday! (After the last two releases
happened on holidays, I'm just gonna keep pushing the festive thing. Hard.)
Most importantly, this release fixes a handful of bug fixes for regressions
(a smart-sounding word for making dumb mistakes) in the last release,
plus a handful of other improvements we picked up along the way.
[ the big ones ]
+ Fix InvocationTargetException when using the command line
+ Block loadImage() and requestImage() while images still being saved
[ the editor ]
+ Out of date Modes no longer hand Processing 3 on startup,
and will cause less trouble when changing Modes
+ Undo is a little "jerky" in insert mode
+ "Replace" and "Replace All" do not undo in a single step
+ Comment/uncomment removes indenting
+ Remove poorly implemented "rectangular selection" support from the editor
+ Loader is not visible when opening the Updates tab
+ Make Comment/Uncomment trigger on numpad slash
+ Hex values throwing errors in 3.1
+ Fix up cmd-click/ctrl-click behavior, add preference to disable it
+ Make undo/redo mark all affected tabs as modified
+ Switch back to JRE 8u77 on ARM to fix GL video library performance
[ the core ]
+ Implement support for encoding= option in loadTable()
+ PShapeOBJ error String for missing MTL texture file
+ Shape (OBJ) import texture data is 0.0
[ you'll never notice ]
+ Fix 'ant clean' so that it actually... cleans.
+ Fix error messages from Javadocs
[ fixed but forgot to tell you ]
+ Complex text input issues (fixed in 3.0.2)
+ Allow Movie Maker to cope with bad files (fixed prior to 3.0?)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.1 (REV 0249) - 8 May 2016
Happy Mother's Day! I celebrated by kicking off a Processing release
while my beautiful wife and daughter took a well-deserved nap.
This release includes several bug fixes, while some of your donation dollars
were fed through Jakub Valtar to produce bug fixes and code improvements,
including some serious reworking of the error checker. Meanwhile, the rest
of the community pitched in with several additional fixes to keep this
caravan rolling, and Gottfried brought up the rear with fistfuls of
improvements for Raspberry Pi and ARM support.
[ contributed pde fixes ]
+ Grab bag of smaller, mainly ARM-related updates
+ IDE code disappearing due to a concurrency bug
+ Fix non-ARM Linux deb build process
+ Sketchbook window shows "Empty sketchbook" when sketchbook is... empty
+ Change the command line version on Windows to use the default encoding
+ Add support for symlinks to exported applications in Linux
+ Added Ukrainian localization
+ Load fallback font for Chinese, Japanese and Korean
+ Fix hint text for toolbar buttons when Chinese, Japanese, Korean in use
+ Added readBytes(max) to net library
+ Added readBytes(max) to serial library
+ Improve error message "The nested type cannot hide an enclosing type"
+ Multi-line comments ending in '**/' cause ArrayIndexOutOfBoundsException
[ jakub edits the editor ]
+ Update app to Java 8
+ More Java 8 updates
+ Update minimum JRE version for Windows
+ Update JDT to 4.5.2
+ Java Mode cleanup
+ Several bugs with tabs not working properly
+ File paths not decoding properly, causing a NullPointerException
in on startup for some people
+ Java Mode refactoring
+ Fix jump to variable declaration
+ Numbers in scientific notation not recognized as floats in 3.0
+ Adding .java files to sketch causes the Error Checker to weird out
+ "Show usage..." does not locate keywords on correct line
+ Threading fixes
+ Move PDEX listeners from JavaEditor to PDEX
+ control-clicks misbehaving
+ Fix listeners not firing on first preprocessing run
+ Remove some unnecessary calls from rename
[ gohaiv6 ]
+ Add automatic mipmap support to GLES2
+ Add a few IO library examples
+ Be more verbose with drawExceptions with cause null
+ Ignore memory options when exporting for ARM
+ Update JNA to 4.2.0
+ Add two Raspberry Pi related fixes to JOGL
[ core ]
+ Float/IntDict: minIndex() and maxIndex() return -1 when count is zero,
rather than throwing an exception
+ Couple bug fixes for sorting Float/IntDict
+ Add optional "stable" parameter to the Float/IntDict sort methods
+ Drastic (2x) performance increas for sorting Float/IntDict
+ Added print() and write(PrintWriter) methods to Table/TableRow
+ Several JavaFX fixes
+ cursor() and noCursor() not working on FX2D
+ Make sure PImage.parent is set in loadImage()
+ Change convention for directional lights in OpenGL-Binding for GLSL
+ Internal texture copy does not update immediately in GL
+ Font corruption issue in OpenGL
+ setStroke() does not work with imported OBJ Pshapes
+ blendMode() resetting with getGraphics()
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0.2 (REV 0248) - 13 February 2016
Happy Valentine's Day! Nothing says "I LOVE YOU" like a bouquet of bug fixes.
And nothing says, "I LOVE YOU TOO" like the sampler box of contributed fixes
and pull requests that the community has put together for me since 3.0.1.
[ editor contributions ]
+ Add "full screen" option to the Editor on OS X
+ Add install script for site for ARM
+ Search/replace shouldn't include the string being replaced,
otherwise it can get into an infinite loop.
+ 'Background Color when Presenting' not visible on Preferences window
+ Fix minor autoformatter bugs (enums not working)
+ Update Source Code Pro and Source Sans Pro fonts to the latest versions
+ Minor fixes for Java Mode
+ Add i18n support for the PopUp menu
+ Add Turkish to the list of languages
+ Make the error message for stack overflows clearer
+ Get rid of dt_socket message, making command line run a little better
+ Message when reference is find out on nothing selected
+ Better handling of quotes in command line args
+ Fix crashing bugs when user's name has non-ASCII characters
+ ARM updates to include GPIO numbers and images of wiring diagrams
+ Icon instead of an "X" for the "could not connect" message
+ Several fixes for Chinese/Japanese/Korean InputMethod support
+ Add 'downloading' indicator to the Contribution Manager
[ more editor ]
+ Move to Java 8u74, also fixes JavaFX issue.
+ Actually require OS X 10.8.5 (was set to 10.7). The Wiki said 10.8.3
was required for 3.0 (it is), but has since been updated to 10.8.5.
If you're gonna run Mountain Lion, at least make sure he's patched.
[ graphics contributions ]
+ Fill out the Javadoc for PMatrix
+ Have PSurfaceFX pay attention to the setVisible argument
+ Use xdg-open in PApplet#launch(String)
[ moar graphics ]
+ Fix another "Zero length string passed to TextLayout constructor" error
+ Add additional clarification for IDE users on where to call smooth()
+ Flipped Y-axis in JavaFX is now repaired (the JDK bug now fixed)
[ Andres fires an arrow of love into the cold heart of OpenGL ]
+ Stop button in OpenGL exported applications does not use preference settings
+ Export without a stop button using P3D or P2D
+ glClearDepthf() not available on older hardware
+ Drawing a sphere with shape() first changes sphereDetail from default
+ PShape.scale() affects strokeWeight differently in P2D and P3D
+ createShape(GROUP) + textured child + non-textured child = P3D render problems
+ pixelDensity() and createGraphics() with P3D
+ Friendlier message when running drawing commands outside animation thread
+ strokeWeight() not working properly with point() in P2D and P3D
+ exit() is not called in P2D/P3D
+ attrib*() function does not work well with PShape
[ "Jakub" is just Czech for "cupid" ]
+ Initialize sketch args before calling settings()
+ Workaround for JRE bug freezing the PDE during code completion
+ Prevent NPE because editor UI was not updated on AWT
+ Fix NPE when stepping into static method
+ Step button works correctly when SHIFT or ALT is pressed
+ More editor fixes
+ Tooltip over variable decl has wrong style and content
+ May have fixed this NullPointerException in initiateToolTip()
+ "String index out of range" error with bracket handling in the editor
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0.1 (REV 0247) - 23 October 2015
Lots and lots of bug fixes.
[ graphics fixes ]
+ curveVertex() does not work with FX2D renderer
+ Hide menu bar on OS X when FX2D is running full screen
+ Add quotes to the necessary parameters in the size() error messages
+ Editor menu is outside the visible screen with 800x480 display
+ Add a patch for FX2D menubar not hiding, root cause not sorted out
+ Fix depth sorter ordering when two triangles in a plane share vertices
+ Turn off fixed rate scheduling in OpenGL
+ Fix GLSL preprocessing issues with variable name mangling
+ cursor() fails to work as expected with P2D/P3D
+ Topics/Shader/Convay broken
+ Regressions wrt GLES2 support between b4 and b7
+ stroke glitches in P3D
+ Line loops incorrectly closed in P3D
+ pixelDensity() not working with createGraphics() and OpenGL
+ GL related crashes when closing the display window on Ubuntu (Intel)
+ GL related crashes when closing window on MacBook Air (Intel) running 10.9.5
+ Update to JogAmp JOGL 2.3.2
+ Output window cannot be set as non-resizable with the P2D or P3D renderers
+ setAlwaysOnTop() does not work in P2D and P3D on Mac
+ P2D and P3D windows behave strangely when larger than the screen size
+ Remove Gluegen & JOGL sources
[ not graphics fixes ]
+ NullPointerException in ContributionManager.deleteTemp()
+ Tweak Mode sometimes freezes while running, require a force quit
+ Tweak Mode: Some numbers ignored in second tab
+ Update Japanese translation
+ processing-java stealing focus even with --build flag
+ Documentation updates and other serial fixes
+ Include Example packs into update count
+ Editor objects are staying in memory
+ Library path for Error Checker and Suggestions
+ A serious error occurred while trying to create a new editor window
+ Export - fix Java not being embedded on 64bit
+ Add error checker document listeners to all tabs
+ Fix memory leak in Recent menu
+ Error checker update (also enables switch on String objects)
+ Fix occasional exception while editing text
+ Prevent preprocessor from crashing when setup() has no body
+ I/O library implementation and fixes for ARM
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0 (REV 0246) - 30 September 2015, 3pm ET
This one is huge.
This document covers (in detail) the individual changes between releases.
For an overview abut what's new, different, and exceptional in 3.0, read:
Most of the changes from the previous beta involve the final beautification
of the GUI, and the beatification of the error checker and auto-completion
[ gui updates and fixes ]
+ "Saving" messages never clear on "Save As"
+ Show number of updates available in the footer
+ Click the "Updates" item in the footer to open the Contribution Manager
+ Make breakpoints more prominent
+ Implement the side gradient on the Editor
+ Replace startup/about screen (1x and 2x versions)
+ Implement splash screen on OS X. Shout out to this article:
+ Make the left edge of the Console match the Error List
+ Windows suggests "Documents" as a new location for the 3.0 sketchbook
[ errors and warnings: the checking and completion story ]
+ error checker/suggestions fixes
+ Hide useless error in error checker
+ Error checker updates for toggle and listeners
+ If fewer lines in sketch than can be shown in window, show ticks adjacent
+ Distinguish errors and warnings in the error list
+ Clicking an error or warning should give the focus back to the editor
+ Fix placement and visual design when showing error on hover
+ Fix the design of the completions window, new icons, etc
+ Update status error/warning when changing the line
[ contribution manager ]
+ Contributions filter ignored after clicking Install
+ Exception in thread "Contribution List Downloader"
+ Grab bag of Contribution Manager fixes
+ ArrayIndexOutOfBoundsException freak out when clicking the header line
[ plumbing ]
+ Fix nasty file counting problem in the change detector
+ Clean up delete dir function
+ Don't follow symlinks when deleting directories
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0b7 (REV 0245) - 22 September 2015
It's 8:57pm and Jakub and Ben are still holed up at Fathom's studio in Boston.
Ben is wishing he was Jakub's age, as his wrists, neck, and back all feel
like a bag of broken pretzels after several hours/days/weeks/months of coding.
A bleary-eyed Jakub emerges from deep inside the error checker and completion
code, removes his headphones and grunts, "I think it's working."
[ changes and additions ]
+ Changed the Tool API to pass Base instead of Editor
[ error checking and auto-completion fixes ]
+ Huge rewrite of auto-complete and error checking code
+ Make preprocessor scope-aware
+ Red error underline is sometimes at wrong location
+ Using "new color()" instead of "color()" results in "color type detected"
+ Code editor wrongly detects errors for libraries in code folder
[ watcher bug fixes ]
+ "Your sketch has been modified externally" with encrypted OS X volumes
+ sketch modified externally with FAT32 volumes on OS X
+ Prevent re-prompting users when they say "no" to "sketch modified" message
+ Add more preferences for editor.watcher to help with debugging
+ Cleaning up the logic in the watcher
[ contribution manager fixes ]
+ Contributions Manager UI design
+ CM selected tabs are too tall
+ CM: Clicking item in Libraries list throws exception
+ CM: Libraries missing descriptions and Foundation credit
+ Clean up the header for the scrolling lists
+ Use real version of bold font, rather than the fake version,
in several locations.
+ Remove the "v" from the version numbers in the updates tab
+ Set the frame title
+ Remove tooltip that repeats the contents of the tab labels
+ Fix spacing of buttons relative to the scroll bar
+ Updates tab has ugly horizontal line at top
+ Get rid of fake italic subheads on the Updates page
+ Remove extra component borders and focus quirks
+ Don't focus the window on the search box on opening
+ Prevent "updating" to a still-incompatible version of a contrib
+ Tools are getting redundantly added when installing new Tool
+ After clicking 'install' it's still possible to click it again
+ CM list should be sortable by status and author name
+ "Update All" button appears to do nothing in library manager
[ miscellaneous bug fixes ]
+ JNA errors on startup when run from an account w/ non-ASCII characters
+ UnsatisfiedLinkError on startup "Access is denied" on Windows 10
+ SVG not highlighting as a keyword
+ Implement retina (2x) versions of all Contribution Manager icons
+ Show hover text when the mouse is over the 'debug' button
+ Update rollover label for buttons when pressing shift or alt
+ Replace the coffee cup icon for the Welcome window
+ ctrl-space first inserts space, then deletes it, with completion
+ Fix the bold text in the welcome window to not use fake bold
[ we still care about graphics, too ]
+ FX2D display is inverted in 3.0b6
+ surface.setLocation(x,y) not working with the default renderer
+ Make the PApplet regex cache LRU
+ Minor OpenGL improvements
+ Cannot re-enable stroke or fill of a PShape with P2D
+ setResizable() with OpenGL broke in 3.0b6
+ surface.setLocation() with OpenGL causing a freeze on Windows
+ selectInput/Output() is behind the drawing window (Windows)
+ MouseWheel count wrong (backwards) in P2D and P3D
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0b6 (REV 0244) - 11 September 2015
And I beheld when he had released the sixth beta, and, lo, there was
a great earthquake; and the sun became black as sackcloth of hair,
and the moon became as blood.
Aside from bug fixes, the FX2D renderer has received a lot of attention.
On the plus side, it's working really well. On the minus side, we're giving
up on making it the default for 3.0. The underlying JavaFX technology it uses
is just not ready for our use. It is, however, super fast and makes great
looking 2D sketches on retina devices. But it can be a little balky so we
don't want it to be the first experience that beginners have with Processing.
Especially if you're doing 2D on a retina Mac, you should definitely try FX2D.
We're at the limit of what we can do performance-wise with the default
(JAVA2D) renderer, so if you're having performance problems, try FX2D.
[ bug fixes and improvements ]
+ Deal with ConcurrentModificationException in Editor
"Error repainting line range" and ConcurrentModificationException
+ Major surgery performed to drastically reduce the memory footprint
and startup time for individual editor windows.
+ Remove old versions of processing-java when installing on OS X
+ Confusion when // tweak was used accidentally, changed to /// tweak
+ Don't allow breakpoints to be set on blank lines
+ Fixed a couple hard crashes back in alpha 10:
EXC_BAD_ACCESS inside AppleIntelHD5000GraphicsGLDriver when starting 3.0a8+
Hard crash on startup inside strlen call when using 3.0a8+ on OS X
Though the workaround re-introduces issues that had been fixed earlier:
+ Add the Contents/Java folder to java.library.path on OS X to fix
exported applications that use native libraries (i.e. Sound)
+ Add surface.setAlwaysOnTop(boolean)
+ Implement standard cursor types in OpenGL
+ Change value of constants PRIMITIVE, PATH, and GEOMETRY constants in PShape
This avoids a collision with entries in PConstants which causes
confusing errors or no errors to be thrown at all
+ Fix flickering cursor regression with Java2D on Windows introduced by
[ Jakub won't be here forever, but his contributions are eternal ]
+ Error/warning location visualisation not updating when editor resizes
+ "unexpected token" on anonymous instance of parameterized Comparator
+ Incomplete text rendering of strings with consecutive line breaks
+ FX - fix transformation stack NPE
+ FX - fix rad-deg conversion in rotate()
+ FX - basic pixel operations (get, set, load, update)
+ FX - align to pixel grid when drawing 1 px strokes
+ FX - keyChar and keyCode are super wonky and unlike AWT
+ FX - arc - infamous deg-rad conversion strikes again
+ FX - paths, contours, curves
+ FX - fix AIOOBE when pressing ESC on Mac
+ FX - framerate fix
+ FX - loadPixels, updatePixels, get and set optimizations
+ FX - keep track of whether pixels are up to date
+ FX - improve key events
+ FX - add FX2D keyword, remove JFX keyword
X JOGL - normalize enter key
+ FX - normalize enter key
+ Render text starting with space properly
+ FX - smooth for the main surface
+ OpenGL - clean up loaded and modified for pixels
+ FX - text stuff, move createFont() into PGraphics
+ FX - fix bug where fonts would share a tint cache
+ textFont() and textSize() are each calling one another
+ move createFont() to PGraphics
+ Fix PShape creation in P3D
+ keyTyped() not firing with P2D and P3D
+ Implement a way to disable automatic key repeat
implemented for OpenGL, where key repeat is now disabled by default
hint(ENABLE_KEY_REPEAT) will turn it back on
+ With the P2D and P3D renderers, a generic set of cursors are
used because the OpenGL renderer doesn't have access to the
default cursor images for each platform.
[ Manindra re-emerges ]
+ Code auto-complete not working with imported libraries
[ Google Summer of Contribution Manager ]
+ CM: Category dropdown alignment
+ finalize CM tab order
+ Several of those below were in beta 5...
+ CM - Focus is shifted out of the filter field when something is searched
+ CM - info panel text color
+ CM - Filter field display
+ Update buttom enabled when updates are present and background is set
+ Fix info panel text color and alignment in CM
+ Ready to add contributed example packages?
[ Dr. Colubri, I presume? ]
+ P2D: error calling surface.setTitle()
+ Error message with noLoop() and P2D renderer
+ Concurrency issues in OpenGL renderer prevent proper garbage collection
+ In P2D/P3D the background is cleared to black on each frame
+ cursor() command with PImage stopped working in 3.0 with P2D
+ Demos/Graphics/Wiggling regressed from 17 fps to 8.3 fps between a11 and b1
+ "Library not installed properly" message inconsistent in P2D/P3D vs. JAVA2D
+ PShape 3D: strange extra lines (another fix)
+ Line direction vectors are incorrectly transformed
+ Strokes in 3D PShapes are not properly connected
+ Setting surface properties hangs OpenGL sketches
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0b5 (REV 0243) - 24 August 2015
Fixing a handful of regressions in beta 4, and clearing out some of the
nooks and crannies as people report issues with the default download.
[ changes ]
+ Removed support for fixed-function pipeline in OpenGL. I'm told
this "brings us out of the 90s" and gets things a bit more up-to-date
and compatible across many platforms and varying device types.
If you're a beginPGL() and endPGL() fan, see the updated docs:
+ Remove legacy GL functions from PGL
+ Update LowLevelGL to use VBOs
[ bug fixes ]
+ Line selected for errors is off by one or two
+ NullPointerException in selectFolder() on OS X
+ Wrong positioning of circles in SVG shapes (regression from 2)
+ setFill() on PShape in Java2D throws ArrayIndexOutOfBoundsException
+ saveJSONObject() doesn't close the file
+ processing-java fixed for OS X 10.11 El Capitan
+ Prevent a prompt to install Xcode coming up on Export to Application
+ Live error checker complains about F instead of f after floats
+ NoClassDefError with CLibrary and getenv when switching to Android Mode
[ foundation $$ = bug fixe$ + improvement$ ]
+ keyTyped() not firing with P2D and P3D
+ rect() sizing in JavaFX
+ FX - Proper sketch sizing
+ FX - implement frameRate()
+ FX - Fix key typed
+ FX - Make key events little bit more sane
+ "Internal graphics not initialized yet"
+ NullPointerException in Demos > Graphics > Planets
+ PDE window leaks undisposed Timer objects even when closed
[ contributed fixes ]
+ Undo does not move to the correct location in the editor window
+ Undo sometimes causes the editor to go blank
+ Miscellaneous language improvements
[ google summer of code ]
+ Foundation libraries disapear from CM after restart
+ CM blue bar missing
+ CM column widths change with selection
+ Remove category dropdown from CM except when viewing libraries
+ Right-clicking popup menu closes instead of shifting its location
+ Use 1x or 2x icons in the CM
+ Shifted the text right a little bit
+ No underline and no blue color
+ Make auto-format into a compund edit
+ Focus is shifted out of the filter field after CM search
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0b4 (REV 0242) - 17 August 2015
Fixes for several long-standing bugs, plus some internal changes
to make the code slightly more usable by contributors.
For Tool and Mode developers, several functions have moved out of and into the Messages and Platform classes.
For instance, Base.isWindows() has moved to Platform.isWindows()
(seems almost logical, right?) We're not keeping deprecated versions
of these functions around since we're breaking other things in 3.0.
Library/Mode/Tool authors, there's a section for you at the end of
this page:
If there's anything that's not covered properly, please file an issue:
Meanwhile, Jakub Valtar is holed up at Fathom in Boston, fixing all of
the bugs. See "your contributions are funding graphics fixes," below.
[ bug fixes ]
+ Fix NullPointerException with some sketches that have no size() command
+ Fix reports of invalid OS X code signature on some machines
+ Canceling "create folder, move sketch, and continue?" will cause crash
+ Move Platform into its own class, also Messages and others
+ dataPath() not working when app is not run from app dir on Linux
+ "Zero length string passed to TextLayout constructor" message
+ improve speed of text(x, y, w, h) when using large strings with no spaces
+ filter(PShader) was broken in HDPI mode
+ Ctrl+R (Cmd+R) not restarting sketch when debug is enabled.
Hitting Run while a sketch is running should restart the sketch.
[ api/implementation changes ]
+ Several platform-oriented features have moved to Platform
i.e. Platform.isWindows(), Platform.openURL(), Platform.getJavaPath()
+ Base.showXxxx() and Base.log() have moved to Messages.showXxxx()
+ Make fields and functions in PdeKeywords protected
+ Added "EditorException", which is thrown when loading bad sketches
+ Pass command line arguments to sketches with processing-java
+ Implement add(x, y) and sub(x, y) in PVector
+ Add method to JavaMode for search path
[ google summer of code ]
+ Second round of arm patches (v5)
+ Third bunch of arm patches
+ Contribution Manager GUI updates
+ Sorting CM by the author name inplemented
+ CM needs minimum window size enforced
+ Deactivate install button when incompatible
+ CM "Updates" badge appears even when there are no updates
+ Ignore accented characters when filtering in the CM
+ Enable arrow keys for navigating lists in the CM
+ CM filter input glitchy
+ Set font correctly in Contribution Manager dialog
[ fixed earlier, spring cleaning ]
+ Closing the color selector makes things freeze (only Linux and Windows?)
+ Comment/Uncomment should ignore leading whitespace
+ Export unsaved sketch > agree to save prompt > export doesn't finish
+ Add disconnectEvent() to Server
+ False positive for mixing active/static mode in Tweak Mode 3.0 alpha 5
+ Determine shortcut for Export vs Use Selection for Find
+ PDE erroneously detects changes in non-sketch files
+ Proper handling of sketchPath() for OS X in exported apps
+ textWidth() incorrect with default (JAVA2D) renderer and default font
+ Error on size() when using FX2D due to stage inset issues
[ your contributions are funding graphics fixes ]
+ Remove alpha filler (hopefully no regression here)
+ Huge Java2D blending patch
+ Accuracy problems make alpha channel go to FE with image.copy()
+ Fix blue-channel bias on blend()
+ Improve blend() accuracy when using ADD
+ Upgrade OpenGL (remove support for fixed-function pipeline)
+ Improve OpenGL extensions checks on OS X
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0b3 (REV 0241) - 11 August 2015
You get a beta! YOU get a beta! *YOU* get a beta! Everybody gets a beta!
[ bug fixes & changes ]
+ Prevent 'examples' from showing as a folder in the sketchbook window
(instead only show it in the Examples window)
+ Don't show breakpoints when debugger is off
+ No setting breakpoints when debugger is off
+ Foundation library examples should appear under "Core" or "Foundation"
+ Use ctrl-pageup/down on Linux for prev/next tab
+ Library names not showing up correctly ("pdf" instead of "PDF Export")
+ Contributed Examples were using their folder name, not the 'name' field
from their properties file when shown in the Examples window.
+ Include name of sketch when asking user "Save sketch before closing?"
Did i18n changes for OS X and other platforms, though some languages
will need additional updates to be compatible.
+ Modify naming of contributed examples
+ Show a warning when map() prints a bad value
+ Implement a nf(float) function to support the changes in map()
+ Breakpoints don't 'jump' after hitting Enter on blank line
+ Implement focusGained(), focusLost(), and 'focused' variable in P2D/P3D
+ IndexOutOfBoundsException with pixelDensity(2) and P2D
+ Shaders output to bottom left corner rather than full window in 3.0b2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0b2 (REV 0240) - 9 August 2015
Several delicious bug fixes to repair things that cropped up in the first
beta release. Please keep the reports & code coming and help us get to 3.0.
[ bug fixes ]
+ "Add Library..." fails with "Could not write to temporary directory"
+ Make size(displayWidth, displayHeight) still run in a window.
Fixes "fullScreen() cannot be used here" message on startup.
In the past we were auto-detecting if it was the screen size,
and switching to full screen mode. But that's now removed because
fullScreen() is so easy, and full screen may not be wanted.
+ Cannot find "processing.core" library. Line 12 in tab sketch_150704a"
also happens with "import to com.jogamp.opengl.GL2"
Code still ran properly, but looked like errors in the editor.
+ Remove "pair is" debug messages from Welcome screen
+ Save Export to Application settings between uses
+ Fix NullPointerException in setVertex()
+ Toggling between noLights and PointLight in draw() behaving strangely
+ NullPointerException in Planets demo
+ Late breaking fix to repair Tweak mode
[ changes and improvements ]
+ Show contributed examples in the Examples window
+ Initialize the Find dialog with the current selection
+ Disable Export button when no platforms selected. In previous releases,
it would report "done exporting!" but nothing had actually happened.
+ Prevent Export with examples and untitled/unsaved sketches
+ Links in error bar are not selectable nor clickable
[ internal/development fixes ]
+ Building: make the download-jdk-macosx target work properly
+ Throw an error when using methods that require sketchPath outside setup()
+ Cleaned up the advanced OpenGL wiki page
+ cursor(CROSS) breaks when using surface.setTitle()
[ fixed earlier ]
+ blend() and copy() are not pixel accurate for copy/scale
Fixed somewhere between 0179 and 0184
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0b1 (REV 0239) - 6 August 2015
This is the big one! The first beta, which will now be the default download
on the site. That means we think this is the best release of Processing that's
currently available, and that nearly everyone should be using it. It doesn't
mean we've worked out all the bugs just yet, but hey, who has?
A still-in-progress rundown of the changes in Processing 3 is here:
2.x Modes, Tools, and Libraries will need to be updated for 3.x, so if you're
an author of these, see the notes in the link above. We're also planning some
sort of online Q & A / office hours / talk to Ben about what's changed session
to help folks along. We want to help, we just need to find the time.
And for those into the nitty gritty, or who enjoy lame jokes about esoteric
technical details, the detailed changes since 3.0 alpha 11 are below.
[ bug fixes ]
+ The new Welcome screen! was... completely broken
+ StringIndexOutOfBoundsException while preprocessing
+ Run/Stop/Debug buttons do not fire if the mouse moves during the click
+ Some contributions were listed multiple times
+ Do not filter Ctrl+Alt+? out as menu mnemonics
+ Fix delete tab shortcut in toolbar popup
+ Deleted tab still present in tab menu
+ Make PFont.size protected again
+ Tweak implementation of PVector.heading()
+ Fix problem with JAR loading inside createInputRaw()
[ changes, because not everything is a bug ]
+ Add new console/errors icons to the tabs in the footer
+ Get images working in the Welcome screen
+ Add getSurface() method ('surface' is protected in PApplet)
+ Remove 'contrib updates available' dialog box for now. A new version
is coming soon that will be better-integrated with the editor.
[ internal changes you'll probably never notice ]
+ Add message that says it's safe to ignore the tools.jar warning
+ Add "git pull" on processing-docs for "dist" target
+ Update to launch4j 3.8
[ contributions by our fine community ]
+ Fix contribution compatibility check
+ Update Spanish translation
+ Fix bug with tab sorting when adding new tabs
[ this summer, Google's paying folks to stay indoors & work on Processing ]
+ CM updates dialog box doesn't open CM
+ Adding CM ellipses only when text is long
+ Include mode imports when rewriting .properties file
+ Assortment of patches from gohai's arm-3.0 branch
[ Jakub joins Andres in a battle of wits and test of wills against OpenGL ]
+ Implement depth sorting! Use hint(ENABLE_DEPTH_SORT) and say goobye
to your 3D transparency woes!
+ Remove size() from setup() when copying to settings()
+ Remove mode parameters from createShape(), fixes parameter collision issues
+ Radius for rect not working on PShape
+ Bug in arc with createShape()
+ OpenGL sketch flickers when draw() is missing or empty
+ size() errors
+ rect() with stroke outline renders 1px wider and taller in P2D
behavior is correct, explanation provided
+ setVertex() not working in P3D and P2D
+ Add hint(ENABLE_BUFFER_READING) to handle stencil/depth buffers
+ ArrayIndexOutOfBoundsException error when enabling depth sorting in P3D
+ Fix curves - properly this time
+ Remove duplicate curve vertex
+ JOGL window size is now set properly
+ Device parsing on Linux is incorrect, causing "display 1 doesn't exist" msg
+ Flush geometry when lighting changes, otherwise lights apply to entire scene
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0a11 (REV 0238) - 16 July 2015
Hopefully the last release before we go to beta.
[ new additions ]
+ You'll be greeted by a Welcome screen. We haven't finished the text for
one of these yet, so you'll see some lorem ipsum (fake) text instead.
We'll wrap that up before the beta release.
[ breaking all of the things ]
+ For Tool and Mode authors, you'll need to make some (small) changes.
These aren't structural, but will require a rebuild of your code.
Our hope is that this will be the last round of changes for the 3.x
series, and that it's now safe to update your Modes and Tools to be
compatible with the final 3.x release. Changes in this release:
- Several classes have been moved to a new package.
The package was much too unwieldy and made it difficult
for people to hack on the PDE code.
- Several functions have moved out of Base and into Util (or Toolkit).
Most of these are file-related (removeDir() and others), but the
Base class had simply grown to a ridiculous size. It remains enormous
but is a little less ridiculous.
+ Removed the init() method from PApplet; it's no longer needed
[ fixing all of the things ]
+ Show warning when display spanning is turned off with fullScreen(SPAN)
+ Add note about headless exceptions that points to Github
+ Resize children[] so that getChildren() returns a correctly-sized array
+ clear() was broken (maybe related to #3317)
+ PGraphic ignores PNG transparency (regression from 3.0a5, same as #3378)
+ Move error messages out of PConstants
+ Remove launch(String) since it was calling itself, and anachronistic
+ Sketches with new fullScreen() method should grab focus by default
+ Sketches not getting focus with Java2D
+ draw() executes twice when noLoop() called in setup()
+ displayDensity() not functioning properly
+ surface.setXxx() handling
Methods for setResizable(), setVisible(), setTitle(), setIconImage()
+ Add the "don't use this" warning to the JFrame in PSurfaceAWT
+ ArithmeticException: / by zero when using fonts opened with loadFont()
+ SVG briefly broken for Java2D
+ Change how font metrics are pulled to fix text width issues
+ Check alpha when image extension is "unknown"
+ Add support for more Image types (BGR) with PImage(java.awt.Image)
+ Move Java2D and JavaFX classes to their own packages
[ multithreading is hard ]
+ Sketch not always showing with empty draw()
+ Static mode broken with Java2D on Windows and Linux
+ Sketch sometimes doesn't show with noLoop() on Linux
+ Window never shows with exported application on 64-bit Linux
+ Fix presentation mode
+ Re-enable the display menu in Preferences after display added
Previously, the checkbox menu stayed disabled (though it updated the list)
+ sketch.isReadOnly returns false for examples coming from multiple modes
+ Drag and Drop & "Add File" broken for .pde files in 3.0a10
+ Show "not compatible" error message in the manager
+ Add more code for handling low-level errors on startup
+ Update the "Supported Platforms" wiki page with current status
+ displayDensity() not functioning properly
+ Error message caused by curly bracket in a println string
+ Tweak mode broken (re: new settings() function)
+ Add build.xml prompt for OS X developers to download the JDK update
[ contribution manager ]
+ Change the .properties file syntax a little bit:
compatibleModesList -> modes
authorList -> authors
category -> categories
+ Send list of installed Libraries, Modes, Tools, and Examples on update
+ Disable contrib manager updates when "check for updates" is turned off
in Preferences. Also updated the FAQ to cover the changes.
[ pull requests, summer of code, and other community help ]
+ Use correct localized strings in
+ Dim edit menus as appropriate during selection/no selection/etc
+ Internationalize
+ Auto-completion does not seem to be working
+ Re-enable export to application with command line
+ Change undefined constructor error message for clarity
+ Mode problems window wasn't doing line breaks
+ Add missing internationalization in app/
+ Examples window shows contributed examples
+ Reworking the Contribution Manager according to Scott's redesign
+ Finish adding 'examples' contribs
+ Error during installation of any contribution
+ Significant work by Akarshit for Google Summer of Code
+ Fix NullPointerException in DepthSorter
[ retina/hidpi fixes ]
+ Make g.pixelDensity public inside PApplet (so accessible by sketches)
+ Add pixelWidth/Height to PApplet
+ Text looks blurry in GL Retina
+ Text not getting the correct font in Retina2D
+ Text is half size in PGraphicsRetina2D
[ andres loves opengl ]
+ Add attrib() method
+ The ortho() function seems broken
+ Errors with loading SVGs in P3D/P2D
+ Sketch window briefly appears on top left corner when using OpenGL
+ beginShape(POINTS) don't show up in P2D
[ fixed earlier ]
+ Sketch window is not placed at correct location when running a second time
+ Full screen needs to ignore prev location setting for frame?
+ save() and saveFrame() with 2X renderers fails
+ NPE when using image() created with createGraphics(PGraphicsRetina2D)
+ Closing OpenGL sketch from the PDE doesn't stop java.exe process
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0a10 (REV 0237) - 9 June 2015
Huge release! Knocking on the door for beta, this includes many changes
and improvements for how displays of all kinds (single, multiple, retina,
high dpi) are handled, plus smoothing, full screen, etc etc.
[ breaking things for the future ]
+ Added fullScreen() method to make it far easier to run sketches
using the full screen. Reference notes and explanation here:
+ smooth() and noSmooth() can only be used once per sketch, in setup().
See the changes, the explanation, and the discussion here:
+ Re-opened the Gates of Hell by adding chaining operations to PVector
+ Changed exec() and open() to use varargs. Changed open() to launch()
to prevent problems with Python Mode.
+ Replaced --full-screen command line option with --present to untangle
full screen versus the "Present" command that places blanks the rest
of the screen around a sketch.
+ ortho() function is being reworked to make it compliant
[ other changes and additions ]
+ Added new application and export icons. Mmm!
+ Add retina/high-res display support to OpenGL
+ Add pixelDensity(2) command to enable retina or high-dpi mode for
your sketch. Make things look beautiful and crisp on expensive hardware!
+ Added displayDensity() methods to get the pixel density for individual
displays. displayDensity() returns the density (1 or 2) of the default
(or currently selected) display, displayDensity(1) returns the density
of display 1. Guess how you get the density of display 2?
+ Add useful constructors to the Int/Float/StringList classes
[ bug fixes ]
+ Fix monitor numbering problems
+ Full screen doesn't work on second window w/o present mode
+ Full screen on OS X 10.9 has incorrect placement
+ "Run sketches on display" not working properly
+ Comments influencing code (preproc issues in parsing)
+ Sketch not appearing depending on arangement of external display on OS X
+ Sketch launching on second display that's not currently in use
+ strokeWeight() in setup() not working for default renderer
+ Retain original java.awt.Frame when it's available from PSurfaceAWT
+ Set frame icon images for Java2D (dock and cmd-tab)
+ Debug message showing up in 3.0a9 when dragging and dropping files
+ Rolled back to 3.0a5 version of appbundler due to crash on startup
This re-introduces a few bugs related to the serial library and
scrolling and any other changes later than 16 November 2015
[ andres vs opengl, episode eleventy three ]
+ set(0, 0, image) does not set alpha channel to opaque in P2D/P3D
+ GROUP shapes are broken in 3.0a9
+ Only a quarter of the sketch is appearing in 2x mode
+ Single transparent pixel at end of textures in OpenGL
+ Implement setImpl() instead of set() inside PGraphicsOpenGL
+ Strange extra lines with PShape 3D
+ BACKSPACE key is identified as DELETE in OpenGL renderers
+ More key issues in OpenGL
+ Set icon for OpenGL windows
+ save() and saveFrame() with OPENGL renderer fails
+ Errors in glsl code are only caught when set() is used
+ Strips when rendering spheres with lights and anti-aliasing
[ valuable contributions from the community ]
+ Several Greek translation updates
+ Add i18n for Archiver Tool and missing text
+ Fix case-related bugs in Toolkit.setMenuMnemonics()
+ Contribution manager scroll bar only shows up when needed
+ Progress bar added to Contribution Manager
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0a9 (REV 0236) - 19 May 2015
More work as we head toward beta. Mostly improvements to the GUI
and fixes for many bugs. So close to beta I can practically smell it.
[ changes ]
+ Implement more of the bottom half of the editor window GUI
+ Show screen dimensions in the Preferences window for display selector
+ Change how the variables/debug window works. Automatically
show the window when debugging, hide when not.
+ Enabling and disabling the debugger toggles the Step/Continue
buttons in the toolbar
+ Remove techie options from the Debug menu
+ Add more visual states to the toolbar buttons
+ Lots of internal cleaning
[ bug fixes ]
+ Implement Cmd-Q handler on Mac OS X to shut down sketches properly
+ Changing "background color when Presenting" causes Exception
+ displayWidth and displayHeight not set properly on startup
[ andres vs. opengl, episode 7 ]
+ Offscreen rendering broken in OpenGL renderers
+ Initial location of OpenGL window hides the title bar
+ OpenGL sketches do not terminate, have to be killed
+ Quitting P3D sketch throws an error
[ fixed in 3.0a8, confirmed later ]
+ "Step" not working properly
+ Cmd-click behavior on function/variable is firing when cmd-click not pressed
+ Full screen window on second monitor without using present mode
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0a8 (REV 0235) - 17 May 2015
Stabilizing the mess from 3.0a6 and 3.0a7. Read the release notes for
those versions (below) if you haven't already.
If you're using Eclipse or another IDE, be sure to read the "changes"
section below, for a change in how the size() command works.
[ fixes ]
+ size() sometimes erratic (i.e default size used) This was often
seen with large setup() functions, or on more esoteric platforms.
+ Command line "processing-java" was broken
+ Sketchbook window requires restart of Processing before updating
after sketchbook location change.
+ Replace & Find was reading "Find & Replace"
+ "One file added to sketch" message when two files added
+ pop() was not implemented correctly in String/Int/FloatList
+ Errors in file name case differences not correctly reported
+ Single Frame (no screen display) PDF broken
+ "Buffers have not been created" error for sketches w/o draw()
[ changes ]
+ Behind the scenes, the size() method is now moved out of setup()
and into a method named settings(). The settings() is called before
setup() and is the only place where size() can be used. If using
Processing without the PDE (i.e. with another IDE like Eclipse),
remove the size() method from setup() and instead place it like so:
public void settings() {
size(400, 400, P3D); // your size() command here
The rest of your code remains unchanged. The PDE does this
transparently, so 99% of people won't even notice this change.
However, it allows us to fix (and avoid) a lot of really nasty
complications that come from how Processing lets you switch
between 2D drawing and OpenGL and even something like PDF with
simple changes to the size() method.
We're trying "settings()" as the method name, but that may change
in a future alpha release. Once we hit beta, it will not change.
For those familiar with them, the sketchWidth(), sketchHeight(),
sketchRenderer(), etc methods should no longer be used. This new
implementation of the settings() method is a simpler solution.
+ Added SVG Export library (works like PDF Export). This has not
been tested heavily yet.
+ Replace Tweak Mode ColorSelector with JComponent version
+ Fairly major rewrite of createShape(), shouldn't affect anything,
but keep an eye out for regressions.
+ Add new String/Int/FloatDict constructors that take an array for
useful static/<init> initialization
+ Move svgz handling to PApplet, remove objz handling
+ Implement blendMode in FX2D
+ Added StringList(Object...) constructor to handle a grab bag of objects
+ Added appendUnique() to Int/Float/StringList to only add unique items
to a list. Replaces the following code, making "set" operations easier:
if (!theList.hasValue(value)) {
+ Inside main(), don't set 'args' to a zero-length array if no args
were passed in, instead leave 'args' null.
[ debugger ]
+ Debugger "String is null" error when hitting breakpoint
+ Change "method" to "function" in a few error messages
+ Error message for incorrect function arguments is wonky
+ String concatenation mistakes produce odd error messages
[ contributed fixes ]
+ Window size not passing into Tweak Mode
+ Keep the tab menu at the right-hand side
+ "Your sketch has been modified externally..." appears erroneously
+ Prevent breakpoints from causing a reload prompt
+ Added buffer to file detection time
[ akarshit contributions ]
+ Preferences window fixes for Linux
+ Clear error message in Contribution Manager after retrying
+ Add SOCKS proxy support to the PDE
+ Use system proxy by default
[ opengl by andres ]
+ Moved back to JOGL instead of LWJGL for OpenGL
+ OpenGL sketches work only after running a sketch with default renderer
+ static mode - no setup() / draw() - broken in OpenGL
+ Deal with some performance issues
+ Can't run sketches with offscreen PGraphics
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0a7 (REV 0234) - 26 April 2015
Read the notes in 3.0a6 for major changes! This is only a minor bug fix
release to take care of a few things that were broken in 3.0a6.
[ fixes ]
+ Fix bug that prevented the Preferences window from opening
+ Install/remove buttons not working in the Library/Mode/Tool Managers
+ Preferences window elements not sized correctly in 3.0a6
+ Fixed Find/Replace layout regressions in 3.0a6
+ Avoid minor memory leak in StringList.pop()
[ known issues ]
+ OpenGL sketches work on Windows (32- and 64-bit) only after running
a sketch that uses the default renderer
+ Other issues that are our highest priority for the next release:
+ Other high priority items to be fixed before 3.0:
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0a6 (REV 0233) - 25 April 2015
This is the big one! We've jettisoned PApplet as the base class so that
we can improve performance, reduce flicker, and have a better base from
which to build better, more modern graphics rendering. More of the
gory details for the PApplet/PGraphics changes can be found here:
Speaking of breaking things, we're on the road to a new GUI as well:
and that means all Modes and some Tools will need to be updated:
We've also made major changes to better integrate PDE X, Tweak Mode,
and other nice features for the default "Java" Mode. These will be the
center of the changes for 3.x, which is focused on improving the editing
and debugging experience in general.
Suffice to say, this is truly an ALPHA quality release. We're pushing it
out so that we can get more people testing it. If you want something more
stable, we recommend 3.0a5 (not 2.2.1, that thing is old!)
Library/Mode/Tool authors: Please help us get 3.0 ready by getting your
code ready for 3.0! Because 2.x and 3.x contributions are separate, you
can maintain separate versions if you like (or only support 3.x). You
can also specify the earliest and latest revisions of Processing that
your code supports, so that it's only installed with the correct version.
If anything is unclear, please file an issue. I've not had time to write
up all the changes yet (and some are still in progress), but what you see
in this release is representative of where we're headed for 3.0.
[ known issues ]
The full list is here:
but a few that you might be likely to run across:
+ install/remove buttons not working in the managers
+ static mode - no setup() / draw() - broken in OpenGL
+ sketch window is not placed at correct location when running a second time
[ general fixes and changes ]
+ Merge experimental into the main Java mode, move Java Mode to its own area
+ Deal with ctrl-alt-n regression
+ Don't add a ^M to files when writing
+ Add more bulletproofing to the save process
+ Text improvements for retina displays on OS X
+ Menu mnemonics (alt-f, etc) getting typed into the editor
+ Opening and closing preferences window prompts user to save unmodified sketch
+ Internal fixes and cleanups to TweakMode
+ Implement line numbers in the editor
+ Run button w/ debugger shouldn't require "continue" before actually starting
+ Change how platform-specific preferences are handled
+ Auto-insert after ANTLR @SuppressWarnings({ "unused", "unchecked", "cast" })
+ "Your sketch has been modified externally" appearing on OS X
+ Make sure the JRE downloads correctly before renaming
+ Update build scripts for Windows and Linux to use JRE downloader Ant Task
+ Moved to Java 8 because Java 7 will be discontinued
Requires Vista SP2 (let's just say 7), OS X 10.8.3, and Ubuntu 12.04
+ Update ECJ for Java 8 change
+ Update to launch4j 3.6
[ fixed earlier, not mentioned in revisions.txt ]
+ Move import suggestion to errors console
+ Server.stop() produces an error: socket closed
+ NPE when calling Client.ip() after the connection has been closed
[ who loves pull requests? I do. ]
+ Splash screen for Linux
+ Pressing PgDn in a code without scrollbar gives Exception
+ Add mnemonics for menus (alt-f to open 'file')
+ getCaretLocation() bug in package
+ Finish up debian package support
+ Replace ColorChooser PApplets with custom Swing components
+ Fix encodings, line endings, and mime types in the repo
+ Add control for dependencies (i.e. svg needs xml), needed for export
+ Lots of Auto Format fixes
+ Update name of sketch in the "Recent" menu
+ File change detection rewrite
+ Broken Windows build due to launch4j .jar not updated
+ Exported Linux sketches must be run from the sketch folder
+ only cleans up internal Clients when trying to write
+ Display download percentage when fetching contribution info
+ Recreating Client instance will cause an out-of-memory error
+ Greek translation and new fonts
+ Show tooltip when hovering over errors
+ Fix multi-touch horizontal scrolling on OS X
+ Refactor examples manager window
+ Fix ColorChooser cursor
+ Improve Spanish localization
+ Internationalization of editor error messages and Greek translations
+ Improve internationalization and localization in Greek
+ Fix for "Probably a ++ should go here" messages
+ Missing opening curly bracket error
+ Missing parenthesis error message
[ pulls from Joel ]
+ Add reference for installed tools and libraries to the Help menu
+ file missing prevents startup
+ Several new French translations
+ contributions.txt now gets deleted and recreated instead of overwritten
+ Contrib Manager does not stop parsing contribs.txt if an error exists
+ Offer to install libraries imported libraries that are not available
+ Make fatal errors terminate the pde
+ Java 8 method replace() used, removed
+ Closing a few unclosed BufferedReaders and InputStreams
[ Akarshit pulls away from the pack ]
+ Rewrite preferences window to use proper layout
+ Find/Replace dialog changed to GroupLayout
+ Issues with cut/copy shortcuts not working
+ IllegalArgumentException when clicking between editor windows
+ Newline after a very long line moves the visible area right
+ lerpColor() outside of setup()/draw() kills sketch
+ Use default colorMode() with lerpColor() outside setup()
+ textAlign(RIGHT) adds extra space to the right
+ rectMode() broken for createShape with JAVA2D
[ processing.core ]
+ Remove Applet as the base class.
+ Replaced JOGL with LWJGL. Ongoing JOGL support is unclear and LWJGL
seems to be more consistently maintained. Unfortunately, it trades
one set of quirks for another.
+ Renamed 2x (hidpi/retina) versions of renderers to JAVA2D_2X, P3D_2X, etc.
+ add warning message when a negative textSize() is used
+ loadXxxx() methods will truly follow redirects (including http -> https)
+ noSmooth() not sticking, has to be called again inside draw()
+ Sketch window dimensions off in Java2D
+ Dragging sketch window hides it
+ size(640,360 , P3D) doesn't work properly (fixed in 3.0a5)
[ more contributions! ]
+ saveFrame() doesn't save opaque PNG files
+ Fixes to SVG, implement percentages and some named colors
+ Add option to save JSON in compact form
+ Remove extra edges in sphere tessellation
+ Add exceptions for FloatList and IntList when using add() w/o enough elements
+ Video library is incompatible with 0233
[ ]
+ Ensure # of columns and titles lines up with Table(iterator) constructor
+ Add table header to saveTable() with HTML output
+ Remove extra spaces from HTML output
+ Make save() and write() consistent between JSONObject and JSONArray
+ Add indent=N to saveJSONObject/Array() methods
+ Add 'compact' to JSONArray (see PR for the add to JSONObject)
+ Add push() and pop() to String/Int/FloatList
[ sketch ]
+ Added E2D, an experimental/enhanced renderer that draws directly
to the Graphics context without an intermediate image. This greatly
speeds up performance (especially on retina/hidpi displays), but
prevents pixel access (no save(), saveFrame(), loadPixels(), etc).
It also causes some rendering hiccups (frame rate is not as smooth),
but that's why it's experimental.
+ Remove isGL(), is2D(), is3D(), displayable() from PApplet
(these were unintentionally auto-imported from PGraphics)
+ Remove pause variable from PApplet (was not documented)
+ Added copy() to PImage (to work like get(), ala PVector)
+ Added getFontRenderContext() to PGraphics
+ Add error message when doing loadFont() on an OTF
+ Memory usage insane increasing in 3.0a5
+ Remove set/get/removeCache() methods from PApplet, these should
have been marked //ignore in PGraphics all along
+ Fix/prevent flicker on startup
+ static mode - no setup() / draw() - broken in Java2D
+ Switch to using the EDT for launching sketch and talking to the OS
+ Roll back problematic full screen changes on OS X
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PROCESSING 3.0a5 (REV 0232) - 16 November 2014
Hello from the University of Denver! I'm here with Casey, Dan, Andres,
and Manindra working on 3.0. Chris Coleman and Laleh Mehran have been
hosting us on behalf of the EDP program. It all looks a bit like this:
[ changes ]
+ Removed the sound library. It's now available as its own library
from the Library Manager.
+ Change how languages are loaded, adding a local override.
+ Update to use JRE/JDK 7u72
+ Implement the active() method for Serial and Server
+ Detect CMYK JPEG images and return null
+ Fix XML.getString() with a default when no attrs are present at all.
It was causing a NullPointerException; this also fixes getInt(), et al.
+ Fix how dictionary classes return '0' for missing values. Add optional
second parameter so that it's possible to avoid the exceptions.
+ Fix how nulls are handled with Table.replace()
+ Add (simple) ODS writer to Table
+ Add addRows(Table) method (more efficient, one resize)
+ Support "header" option with ODS files
+ Show a warning when calling getVertexCount() on GROUP or PRIMITIVE shapes
+ Change code completion preferences a bit. It's still turned off by
default, but enable it and help us test!
[ bug fixes ]
+ Remove debug message printed to the console when the control key
is pressed, when using the new editor.
+ size(640,360 , P3D) doesn't work properly (strange spacing)