caution: the beverage you're about to enjoy is extremely hot. this
file is a list of changes between each release. this is not a general
reference of how to use processing, because the information for older
releases will be super crusty. 


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0135 - 21 November 2007

Fairly innocuous but helpful bug fix release.

[ bug fixes ] 

+ Fixed modelX(), modelY(), and modelZ().
  http://dev.processing.org/bugs/show_bug.cgi?id=486
  Also wrote documentation for modelX(), modelY(), and modelZ().

+ Brought back mipmapping for OpenGL (this helps textures look 
  better when they're resized significantly). Turns out that I was
  on a goose chase, that things were working properly in rev 0125.
  http://dev.processing.org/bugs/show_bug.cgi?id=610

+ Fixed copy() so that it doesn't need an updatePixels() call when 
  used with OPENGL and JAVA2D. You should only have to call
  loadPixels() and updatePixels() when you're actually messing with 
  the pixels[] array of an image (or the main drawing surface).
  http://dev.processing.org/bugs/show_bug.cgi?id=681

+ Improved how fonts are handled in the preferences file to ensure
  against errors. Some strange things popping up with Processing
  not starting up properly and giving ominous "Fatal Exception" or
  "Failed Startup" messages. Though it's still not clear how the file
  was getting corrupted (whether operator error or something that 
  a recent Java release is doing).
  http://dev.processing.org/bugs/show_bug.cgi?id=688


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0134 - 17 November 2007

Several bug fixes in this release, and one major change: all text 
files loaded and saved with Processing are now considered UTF-8
format. This prevents problems when moving files between different
platforms or locales. For instance, this means that any file used 
with loadStrings() should now be in either plain ASCII format, or
UTF-8 coded if not ASCII.

[ bug fixes ] 

+ Reverted back to using JOGL 1.0 instead of 1.1 because of 
  incompatabilities that it caused. A release of JOGL 1.1.1 
  appears to be imminent, and we'll change to that once it's ready.
  In the meantime, applet export with OpenGL is working again.

+ Fixed a problem with SVG files that use "px" when specifying the 
  width and height (this includes Adobe Illustrator CS 3).
  http://dev.processing.org/bugs/show_bug.cgi?id=667

+ Fixed a problem with "Save As" under Linux. A bug in the native
  Java "Save" dialog was not properly handling cases where the user
  hit "enter" to accept a new name. Changed to use the Swing
  dialog on Linux instead.

+ Changed to another version of RXTX that should be compatible
  with Mac OS X 10.5. This version also removes the requirement for
  running macosx_setup.command. Thanks to Dave Mellis of the Arduino
  project for the help.
  http://dev.processing.org/bugs/show_bug.cgi?id=227
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Electronics;action=display;num=1193459849

+ Add an extra redraw call to update the screen after resize events 
  on Mac OS X, even when noLoop() is used.
  http://dev.processing.org/bugs/show_bug.cgi?id=664

[ changes ] 

+ Removed shortcut for "Rename", and changed "New Tab" back to 
  Ctrl-Shift-N, because it was causing problems on some 
  non-English keyboards.
  http://dev.processing.org/bugs/show_bug.cgi?id=665

+ Dozens of documentation updates to video, array functions, the
  default behavior for close & quit, etc.

+ Added a noLights() method for P3D and OpenGL.  
  http://dev.processing.org/bugs/show_bug.cgi?id=666

[ upcoming ] 

+ The hint() and unhint() methods are a bit goofy. The unhint() 
  method will probably be removed or another solution pursued.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0133 - 26 October 2007

An important bug fix that was breaking "Export to Application" with
OpenGL sketches, plus some smaller fixes.

[ bug fixes ] 

+ Fix problem with "Export to Application" with OpenGL sketches.
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=OpenGL;action=display;num=1193142573

+ Fix problem that occurred when user canceled the "Create the 
  folder, move the sketch, and continue?" message.
  http://dev.processing.org/bugs/show_bug.cgi?id=658

+ Make the ESC key cancel rename when renaming a sketch or a tab.

+ Make Cmd-W (or Ctrl-W) close a running applet window.

+ Fix background() with beginRaw() and P3D.

+ Fix hint(ENABLE_DEPTH_SORT) when used with begin/endRaw()

[ changes ] 

+ Add focus requests to PApplet in the hope of improving
  focused state of applets when they open.
  http://dev.processing.org/bugs/show_bug.cgi?id=645

+ Updated reference for new menu/toolbar setup.

+ Add notes about ClassVersionErrors to the reference.

+ Notes about mousePressed() and noLoop() to the reference.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0132 - 22 October 2007

The bug fixes continue. Didn't plan to release so soon, but found a 
problem where sketches were being marked as untitled, forcing users
to save to a new location (and causing confusion in the process).

[ bug fixes ] 

+ Fix bug introduced in 0131 where sketches opened from the toolbar
  into an untitled window were marked as untitled themselves.

+ Disallow the user from renaming unsaved sketches.

+ Fix problems with JAVA2D image drawing not properly handling RGB
  images, or tint() not working properly in JAVA2D.
  http://dev.processing.org/bugs/show_bug.cgi?id=351

+ Significantly improve memory requirements for handling tinted 
  images with the JAVA2D renderer.

+ Fix inconsistencies between tint() and fill() with P3D and OPENGL.
  From now on, tint() is always used to color images, and fill is 
  ignored when textures are in use. Prior, P3D ignored both fill() 
  and tint() settings with textures, and OPENGL used the fill color.
  http://dev.processing.org/bugs/show_bug.cgi?id=222

+ Fix a problem with fill in P3D where no color would be applied to
  textures (especially when the color was unchaged across the shape)
  http://dev.processing.org/bugs/show_bug.cgi?id=169
  http://dev.processing.org/bugs/show_bug.cgi?id=90


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0131 - 22 October 2007

More bug fixes, and ironing out the New/Open behavior. 

[ bug fixes ]

+ Fixed "java.lang.NoClassDefFoundError: quicktime/std/StdQTException"
  error when using video code on Windows with releases 0126 and later.
  http://dev.processing.org/bugs/show_bug.cgi?id=654

+ Finally fixed problems with the net library, where disconnecting
  a client would hose the server. Also cleaned up some other nastiness
  in the networking code.
  http://dev.processing.org/bugs/show_bug.cgi?id=537
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=LibraryProblems;action=display;num=1180713192
  http://dev.processing.org/bugs/show_bug.cgi?id=538

+ Fixed hint(DISABLE_DEPTH_TEST) with OpenGL.

+ Fix minor bug in saveStream() (not a documented function).

[ changes ] 

+ When used from the toolbar in a Processing window, New and Open will
  replace the sketch in the current window. When used from the menu
  (or via key commands) they'll open a new window. This seems to be a 
  better in-between from our old sketchbook model, and the way most
  applications behave.

+ On Mac OS X, a blank sketch will open after the last sketch is 
  closed. On Windows, closing the last sketch will quit the program. 
  These default behaviors can be overridden in the Preferences dialog.
  There is no way to have a menu bar without an open window in a 
  Java application, which is what's expected for Mac OS X apps. 
  (Java comes from the X11 world, where menu bars are inside windows)
  This split behavior (with a preference to override) is our best 
  attempt at a compromise. 
  http://dev.processing.org/bugs/show_bug.cgi?id=634

+ Added support for full-screen anti-aliasing with OpenGL. This is
  enabled via the hint() mechanism because it has several tradeoffs
  and its behavior across video cards varies. Use the options
  hint(ENABLE_OPENGL_2X_SMOOTH) or hint(ENABLE_OPENGL_4X_SMOOTH)
  immediately after the size() command to get lovely smooth results.
  Read the caveats in the documentation for hint(). Thanks to Mike
  Creighton and others who figured out this method earlier.
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=OpenGL;action=display;num=1175552759
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=OpenGL;action=display;num=1164236069

+ Updated the JOGL release to 1.1.0 (with 1.1.1 probably on the way 
  in the next few days or weeks).

+ Add gluegen-rt back to the applet export for OpenGL.

+ Added documentation for hint() and unhint().

+ Removed auto-delete of empty sketches from the sketchbook. This is
  no longer necessary with the regular New/Open/Save model, so it's
  best to leave it out, rather than have it go awry in some way.

+ Added a disconnectEvent() for the net library Client class, which 
  is fired whenever a client...disconnects.

+ Made a few more fields public in the Client and Server classes.
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Syntax;action=display;num=1116056805


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0130 - 20 October 2007

Bug fixes for 0126-0129. If you haven't read revisions.txt for
those versions, please do so, major changes were introduced.

+ Fixed major issue introduced in 0128 that screws up size() 
  and the default renderer. The renderer was being reset after
  setup(), so any commands used inside setup() would not stick.
  http://dev.processing.org/bugs/show_bug.cgi?id=646
  http://dev.processing.org/bugs/show_bug.cgi?id=648
  http://dev.processing.org/bugs/show_bug.cgi?id=649
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1192873557
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1192731014

+ Fix problem with new keywords.txt file missing some constants.
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1192873557

+ Close sketch window when its parent editor is closed. This was
  leaving lots of running sketch window boogers around when 
  switching between lots of sketches.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0129 - 18 October 2007

Fixes two issues from release 0128. 

+ Variables for width and height not always set properly
  http://dev.processing.org/bugs/show_bug.cgi?id=642

+ Brought back the background() methods that take alpha when used
  with createGraphics(). They're necessary because it's the only 
  way to clear the pixel buffer with transparent color.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0128 - 16 October 2007

This release contains major changes to how size() is handled. 
It fixes two major bugs, but because size() is so fundamental, 
it may cause problems on other systems. Please test!

[ bug fixes ] 

+ Window sometimes fixed at 100x100 pixels. I *think* I've managed
  to track this guy down and finally kill it. 
  http://dev.processing.org/bugs/show_bug.cgi?id=197

+ Fix problem where background was not being set when using 
  the default (Java2D) renderer and with OpenGL.
  http://dev.processing.org/bugs/show_bug.cgi?id=454

+ Sometimes the draw() method would be called twice: no more.
  http://dev.processing.org/bugs/show_bug.cgi?id=587

[ changes ] 

+ Removed a lot of code (mostly reflection API mess) related to 
  making processing.core work with Java releases earlier than 1.4.
  This is probably the first time processing.core has gotten
  *smaller* in a while. This includes changes to PFont, the 
  cursor commands, the sort() methods, and some others

+ Removed versions of background() that take an alpha value. 
  Not sure why these were implemented in the first place. If you
  want background() with alpha, draw a rectangle. The problem is
  that supporting alpha for background() introduces several 
  inconsistencies with other renderers, for instance OpenGL. 
  Do you clear the zbuffer when the alpha is too low? How about
  the other buffers?

+ The sort() methods are now static.

+ Change to JDK 1.4 imports rather than Java 1.1 imports in the 
  preprocessor.

+ Fix so that Mac OS X dist script doesn't require root password.

[ additional bug fixes in 0127 ] 

+ Several bugs were fixed with createGraphics() in the last release, 
  but not all the bug reports were noted. Here are more:
  http://dev.processing.org/bugs/show_bug.cgi?id=160
  http://dev.processing.org/bugs/show_bug.cgi?id=428
  http://dev.processing.org/bugs/show_bug.cgi?id=482
  http://dev.processing.org/bugs/show_bug.cgi?id=530
  http://dev.processing.org/bugs/show_bug.cgi?id=527


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0127 - 14 October 2007

This release is primarily bug fixes. ** Be sure to read important 
messages about release 0126 if you have not already **

[ core bug fixes ]

+ Fix pixel operations in OpenGL (get, set, copy, blend, loadPixels, 
  updatePixels, background and the rest).
  http://dev.processing.org/bugs/show_bug.cgi?id=91

+ Fix major createGraphics() issues:
  http://dev.processing.org/bugs/show_bug.cgi?id=594
  http://dev.processing.org/bugs/show_bug.cgi?id=468
  Though not all of them:
  http://dev.processing.org/bugs/show_bug.cgi?id=641  

[ pde bug fixes ]

+ Mark sketches as modified when adding files, so that they are
  saved properly.

+ Replace untitled windows with opened sketches (rather than 
  closing the old window and opening a new one)

+ Re-enable the Update Check in the PDE (was disabled in 0126).

+ Add option to not close the environment when closing the last
  window. Instead, it will open a blank sketch. This is because 
  it's not possible to keep a Java program open without a Frame
  (or rather, to have a menubar without a Frame in a Java app).

+ Several updates to the keywords.txt file, syntax highlighting
  should now be much more up to date.

+ Added reference for new versions of the XMLElement getChild() 
  and getChildren() functions that use paths. 

+ Add reference for new match() method.

+ Fix animation example to use nf().


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0126 - 9 October 2007

** This should be considered more of an alpha quality release. Please 
give it a try, but We won't be making this the default download unless 
no problems are found. The model for opening and saving sketches has
changed completely. This is dangerous because if there are bugs it
can mean lost data. Use carefully, but please test! **

The biggest change to this release is that Processing now supports
multiple sketches open at once. This means that we've dispensed 
with the single window setup, and have a standard File menu (New, 
Open, Close, Save, Save As). A blank sketch is treated as an Untitled
document, and asks that you confirm its name the first time that 
it's saved. New sketches open in their own window. The sketchbook
model is still in place, serving as the default location for sketches
when they are saved the first time, but in the six years since 
we first released Processing, the single window setup has made less
and less sense.

That said, there are a handful of bug fixes in this release as well, 
and a few API changes for cleanup that happened as we worked on the
Processing book and the forthcoming "Visualizing Data" book.


[ ide changes ] 

+ Regular new/open/close/save/saveas model for files. Menus have been 
  moved around a bit, and Examples and Sketchbook now have their own 
  section under the File menu.


[ api changes ] 

+ Added getChild(name/path), getChildren(name/path) to the XML library.
  These allow you to grab sub-elements of a particular XMLElement by 
  their name instead of by their index. You can also specify a path
  to a particular element (a series of XML element names separated by 
  slashes) so that you can grab an item several levels deep. The 
  getChild() method grabs the first matching name, the getChildren()
  method returns an array of XMLElement objects. For the XML heads out 
  there, think of it as a poor man's XPath. A very poor man. Proper 
  documentation forthcoming in a future release.

+ Added MIN_FLOAT, MAX_FLOAT, MIN_INT, and MAX_INT as built-in 
  variables. Syntax highlighting and proper documentation coming later.

+ Added unregisterXxxxx() methods for libraries, thanks to ewjordan.
  http://dev.processing.org/bugs/show_bug.cgi?id=312

+ Files with .gz extension (when opening or saving) will be automatically
  gzip uncompressed (or compressed). That means loadStrings("blah.txt.gz")
  will magically decompress without any additional help. And that
  saveStrings("blah.txt.gz", data) will compress while saving. This works
  for all API functions. To use the old openStream() method, and avoid
  the GZ business, use openStreamRaw().

+ Disable mipmapping to fix memory leaking problem with OpenGL. 
  Bug #150 was fixed, then resurrected in the same release cycle.
  A better solution (that doesn't leak memory) is coming soon.
  http://dev.processing.org/bugs/show_bug.cgi?id=610

+ Added a match() method. This is a very simple way to use regular
  expressions (regexp) in your code. Calling match(data, regexp) 
  will return an array of any matched items (things in parens in
  the regexp). If you aren't familiar with regular expressions,
  this will make sense once the documentation for it has properly
  been added. This requires Java 1.4, see the "status" section below.

+ The sort() method that takes String[] arrays now ignores case, 
  which is usually the desired behavior when sorting strings.


[ bug fixes, additions, improvements ]

+ Repaired a problem with library export that cause export to break 
  in recent releases.
  http://dev.processing.org/bugs/show_bug.cgi?id=625

+ Fixed readStringUntil() in the net library.
  http://dev.processing.org/bugs/show_bug.cgi?id=606

+ Added proper icon image for Find, Preferences, and other windows.
  http://dev.processing.org/bugs/show_bug.cgi?id=627

+ Fixed problem with ctrl-, typing a comma in the editor on Linux.

+ Fix drag & drop on Linux. This also has led to Java 1.5 being included
  with the Linux download, because D&D in Java 1.4 was badly broken.
  http://dev.processing.org/bugs/show_bug.cgi?id=595

+ Implement "Show Sketch Folder" and open() for Linux.

+ Ask user for confirmation when replacing files with Sketch -> Add File.

+ Show confirmation in console when Sketch -> Add File succeeds.

+ Mac OS X now has the standard "window modified" indicator (a dot 
  inside the close box) that indicates that changes are unsaved.

+ Improve the speed of the sketchbook menu rebuilding. In most 
  situations, the menu will be rebuilt asynchronously (so that it does
  not hold up the rest of the program).

+ Fix problem with the version of str() that takes arrays.


[ doc updates ] 

+ Fixed some errors in the changes.html file that were out of date.

+ Lots of additional notes and tidbits in the reference.


[ status ]

+ Also FYI... We're giving up on Java releases earlier than 1.4. 
  We don't have the means to test for them, and we're simply better
  off targeting a larger percentage of users given our resources.
  Processing has evolved a lot from its early days as a fast 
  Java 1.1 graphics library, where we need to simplify things for
  ourselves by relying on Java 1.4 support across the board. 
  More about this change later.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0125 - 15 July 2007

Enormous number of bug fixes and additions. Many thanks to ewjordan 
and fjen, who also contributed fixes for this release.


[ api changes ] 

+ Changed the constructors for the Capture class to be more consistent 
  with the rest of the video library. The following constructors:
  Capture(PApplet parent, int width, int height)
  Capture(PApplet parent, int width, int height, int rate)
  Capture(PApplet parent, String name, int width, int height)
  Capture(PApplet parent, String name, int width, int height, int rate)
  have been changed to:
  Capture(PApplet parent, int width, int height)
  Capture(PApplet parent, int width, int height, int rate)
  Capture(PApplet parent, int width, int height, String name)
  Capture(PApplet parent, int width, int height, String name, int rate)
  This version is not particularly consistent:
  Capture(PApplet parent, int width, int height, int rate)
  though we'll be leaving it in because it was used so heavily.

+ The split() method has been altered to avoid inconsistency. In fact,
  it has split itself into two methods. Har har har.
  split(String s), has been removed, use splitTokens(String s) instead.
  split(String s, char c) remains unchanged.
  split(String s, String delim) is now splitTokens(String s, String delim)
  The new model is that split() breaks a String into pieces given a single
  delmiter, which can be a single character or many characters. For instance,
  split("Something<BR>in<BR><BR>HTML.", "<BR>") 
  now produces the array "Something", "in", "", "HTML". 
  The split() method breaks the String whenever it sees the delimiter, 
  so a <BR> next to another <BR> produces an empty String. 
  On the other hand, splitTokens() takes a list of possible delimiters, 
  and will consume one or more of any of them. For instance:
  splitTokens("really, messed ,up with ,,, commas,", ", ");
  will produce the array "really", "messed", "up", "with", "commas".
  Because any group of comma or space characters (and in any order) 
  will simply be consumed as a single break.

+ The casting functions, e.g. int(), float() boolean(), and friends
  have now been streamlined a bit to only cover casts that actually
  make sense.

+ Blending modes have been finalized for 1.0, thanks to the help
  of Dave Bollinger, who contributed code to complete the set:
  http://dev.processing.org/bugs/show_bug.cgi?id=132  
  See the reference for blend() for more details. Thanks Dave!

+ The constant CENTER_RADIUS is now simply RADIUS. Both still work, 
  but CENTER_RADIUS should be avoided.

+ The constants for ENTER, TAB, et al. are now char values, 
  rather than ints.

+ The framerate() method in the movie library has been renamed to 
  frameRate().

+ Addition from Tom Hulbert to add setDTR() to the Serial library.

+ Where possible, more methods inside PApplet have been made static.
  This may break some library code (the OCD library is one example)
  until it's updated for 0125. We'll try to add a more informative
  error message about this in 0126.


[ additions, improvements ]

+ Significant improvement to text and images in OpenGL mode. 
  Now using mipmaps to interpolate large and small images.

+ The println() method with arrays now prints the array indices next 
  to each element, making it a bit more useful. The print() method
  no longer supports arrays, since that was a bit silly.

+ Major rework of the open() command. This function behaves differently
  on each platform. On Windows, the parameters are sent to the Windows 
  shell via "cmd /c". On Mac OS X, the "open" command is used (type 
  "man open" in Terminal.app for documentation). On Linux, it first tries
  gnome-open, then kde-open, but if neither are available, it sends the
   command to the shell without any alterations. For Java users, this 
  is not quite the same as Runtime.exec(), because the shell command 
  is prepended. The method exec(String[]) is a shortcut for 
  Runtime.getRuntime.exec(String[]). This function was also modified 
  for Mac OS X and Linux support, and to better handle spaces in 
  command names.

+ textAlign() now supports a second parameter that handles vertical 
  alignment of text. The second parameter can be TOP, CENTER, and 
  BOTTOM. 

+ Added min() and max() for float and int arrays.

+ At Casey's urging, the "Color Picker" is now called the 
  "Color Selector". 

+ Fix up MovieMaker from Dan Shiffman, also add the library to 
  the reference pages.

+ Re-architect SVG to properly inherit fill/stroke/etc from parents
  <g> object can specify fill/stroke for everyone below
  need to discern between having a fill specified and one not being present

+ Fix Find/Replace button placement, also add Replace & Find Next option
  http://dev.processing.org/bugs/show_bug.cgi?id=68

+ Make "Find In Reference" and "Show Sketch Folder" work with Linux


[ bug fixes ]

+ Fix long-standing memory leaking problem with OpenGL images
  http://dev.processing.org/bugs/show_bug.cgi?id=150

+ Fix problem where sketches were not showing up in Linux
  http://dev.processing.org/bugs/show_bug.cgi?id=282

+ Size of sketch different in setup() and draw() on Linux
  http://dev.processing.org/bugs/show_bug.cgi?id=341

+ Changing the shortcut keys for switching tabs to instead use 
  ctrl/cmd + alt + left/right, identical to Firefox on Mac, PC and Linux. 
  Also fixes a bug that caused French keyboards to have problems since 0123.
  http://dev.processing.org/bugs/show_bug.cgi?id=480

+ Improve support for loading TGA (Targa) images. Upside-down and 
  non-RLE encoded images should be supported better in this release.
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1171576234

+ Properly refresh code when using an external editor (regression)
  http://dev.processing.org/bugs/show_bug.cgi?id=515

+ The DXF export library no longer attempts to format its output because 
  it was causing problems on systems that use , instead of . for their
  decimal separator character.
  http://dev.processing.org/bugs/show_bug.cgi?id=495

+ PImage.save() method now fixed to work properly with get()
  http://dev.processing.org/bugs/show_bug.cgi?id=558

+ Fix OpenGL crash with hint(ENABLE_DEPTH_SORT)
  http://dev.processing.org/bugs/show_bug.cgi?id=560

+ Fix NullPointerException in Create Font with "All Characters" enabled 
  http://dev.processing.org/bugs/show_bug.cgi?id=564

+ registerSize() was registering as pre() instead of size()
  http://dev.processing.org/bugs/show_bug.cgi?id=582

+ Fix problem with set() and the JAVA2D renderer
  http://dev.processing.org/bugs/show_bug.cgi?id=522

+ Set modified to true on endDraw() so that images update properly
  http://dev.processing.org/bugs/show_bug.cgi?id=526

+ Prev/Next tab conflicting with typing brackets on French keyboards
  http://dev.processing.org/bugs/show_bug.cgi?id=480

+ PDE does not refresh code when using an External Editor
  http://dev.processing.org/bugs/show_bug.cgi?id=515

+ Fix from fjen for the  preprocessor to handle L added to 'long' values
  http://dev.processing.org/bugs/show_bug.cgi?id=492

+ Only rebuild sketchbook on "save as" or "rename" of sketch
  http://dev.processing.org/bugs/show_bug.cgi?id=357

+ Ignore ._ files from Mac OS X when reading jar and zip files

+ When running externally, kill the sketch window

+ Deal with user cancel issues with Capture settings


[ reference and web ]

+ Significant updates to the examples

+ Update JavaDoc reference to include the XML library and Candy

+ Several fixes from fjen to applet.html for exported applets
  Added auto-install of cab file inside applet.html
  http://dev.processing.org/bugs/show_bug.cgi?id=181
  Fix character encoding problems with HTML
  http://dev.processing.org/bugs/show_bug.cgi?id=474
  Generate XHTML-1.0-strict (standards compliant) code 
  http://dev.processing.org/bugs/show_bug.cgi?id=490


[ ewjordan bug fixes ]

+ Workaround for accuracy issues with P3D. (rect() was changing
  size as it changed position, or lines skipping pixels)
  http://dev.processing.org/bugs/show_bug.cgi?id=95
  http://dev.processing.org/bugs/show_bug.cgi?id=267

+ Improve strange texture warping in P3D by adding a slower,
  but more accurate means of drawing textures through use of
  hint(ENABLE_ACCURATE_TEXTURES)
  http://dev.processing.org/bugs/show_bug.cgi?id=103

+ Polygons parallel to z-axis not always filling with nonzero x or y
  http://dev.processing.org/bugs/show_bug.cgi?id=547


[ java ] 

+ Java 1.5.0_10 is no longer the default download at java.com, 
  so OpenGL applets should be more likely to work properly.
  http://dev.processing.org/bugs/show_bug.cgi?id=513

+ Apple has released a Java update, which brings Java 1.4.2 on OS X
  up to release 1.4.2_12. Subsequently we have updated the version of
  Java included with the Linux and Windows releases to 1.4.2_12.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0124 - 4 February 2007

Bug fix bonanza! Something to distract our American audience from 
football, television commercials, and drinking.

[ editor ] 

+ Minor improvements to preprocessor and compiler error messages.
  Did my best to suggest something more useful than things like
  the "expected RCURLY" or "RPAREN" crap.
  http://dev.processing.org/bugs/show_bug.cgi?id=12
  http://dev.processing.org/bugs/show_bug.cgi?id=13
  http://dev.processing.org/bugs/show_bug.cgi?id=15

+ Copy custom applet.html file on "Save As" 
  http://dev.processing.org/bugs/show_bug.cgi?id=485

+ Create the "Documents" folder on OS X if it doesn't exist already. 
  (Problem for some lab machines with strange home directory setups)

+ With the shift key pressed, handle next/prev line with up/down arrow

+ Fixed minor issue with { and } on the same line
  http://dev.processing.org/bugs/show_bug.cgi?id=484

[ core & libraries ] 

+ With smooth() turned off, shouldn't be smoothing image on resize. 
  This was inconsisten between OS X and Windows. Now fixed.
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Programs;action=display;num=1164753510

+ Speed up image drawing with JAVA2D (the default) renderer

+ ambientLight(r,g,b) no longer ambientLight(r,g,r)
  http://dev.processing.org/bugs/show_bug.cgi?id=465

+ A fix from Dave Bollinger for the POSTERIZE filter (thanks Dave!)
  http://dev.processing.org/bugs/show_bug.cgi?id=399

+ background(0, 0, 0, 0) was resetting stroke, smooth, etc.

+ OpenGL background() calls now work with begin/endRaw().

+ Fix QTSession.open/close problem in Capture.list()
  http://dev.processing.org/bugs/show_bug.cgi?id=472

+ The default backgroundColor changed to #cccccc instead of #c0c0c0.
  It was always intended to be CC, not sure how it got to be C0.

+ Show an error message when trying to use size(w, h, OPENGL)
  with Java 1.5.0_10, which doesn't work with JOGL because of a Sun bug.
  http://dev.processing.org/bugs/show_bug.cgi?id=513

+ Hopefully a fix for the "No disk in drive" error on some Windows machines
  when the PDF library is used. I haven't been able to reproduce this 
  problem, so I can't gauge whether it's fixed.
  http://dev.processing.org/bugs/show_bug.cgi?id=478

+ Fix bug in copy() that caused part of image to be replicated.
  http://dev.processing.org/bugs/show_bug.cgi?id=372

[ features ]

+ smooth() now improves image smoothing when used with the JAVA2D renderer.

+ Change P3D to smooth images more nicely (bilinear was disabled).

+ Added a version of trim() that handles an entire array.

+ Removed contract(), one can use expand() and subset() instead.

+ Added optional second parameter to loadImage(), that can be used to 
  specify the file extension if it's not part of the URL.
  i.e. loadImage("http://someserver.com/blah/fancy.cgi?234234", "jpg");
  http://dev.processing.org/bugs/show_bug.cgi?id=500
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Syntax;action=display;num=1165174666

+ Removed unlerp/relerp, use map() and norm() instead.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0123 - 30 November 2006

Bug fixes for regressions found in 0122.

+ Fixed an issue where drawing inside setup() didn't work, and any
  "basic" mode applications didn't draw anything.
  http://dev.processing.org/bugs/show_bug.cgi?id=463

+ Remapped the home/end keys on Windows/Linux to be their proper 
  assignments as per the Windows UI guidelines (lacking any sort of
  Linux UI guidelines...) Mac OS X is still stuck with begin/end
  of document, because Apple says so. Don't like it? Complain to the 
  guy in the jeans and turtleneck.

+ (Should be a) minor change to QTSession.open() and QTSession.close() 
  for the video library. 


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0122 - 28 November 2006

Lots of bug fixes and two new libraries.

[ features ] 

+ Michael Chang's "Candy" SVG Importer has been expanded significantly 
  and added as a "core" library. We are grateful to Michael for his
  contribution to the project. 

+ A simple XML library (processing.xml) has been added. It is based on
  NanoXML, and requires documents to be very strictly formatted, and
  doesn't support some XML features. 

+ For both of these new libraries, they are intentionally minimal 
  implementations. A full XML library or a full SVG import/export 
  library would be quite significant in size. We think it's instead
  helpful to have libraries that can be included as part of an applet, 
  meaning that they should be no larger than around 20-30k. If you 
  don't need the compact size, you can use a larger XML library, 
  or something like Apache's Batik to handle SVG import.

[ bug fixes ] 

+ Lots of work done to improve the formatting, and also make the
  key combinations work more appropriately for the various platforms.
  For instance, HOME and END keys now move to the beginning or end
  of the document, while ctrl-left and right (cmd-left and right on mac) 
  moves to the beginning or the end of a line. Outdenting when a brace
  is used and some other quirks have been ironed out more. 
  Shift-backspace now also produces 'delete', which is a useful thing
  found in many programming text editors. Also text selection and arrow 
  issues like http://dev.processing.org/bugs/show_bug.cgi?id=349
  This is one of several fixes that improve the use of the arrow keys
  along with cmd/alt-right/left and others. In general, the editor 
  has been mostly brought up to spec for how keys work. 

+ Fixed the menu shortcuts for next and previous tab:
  http://dev.processing.org/bugs/show_bug.cgi?id=402

+ Fixed a problem where clicking the close box of Processing, then hitting
  "Cancel" when asked to save changes, would close the window anyway.
  http://dev.processing.org/bugs/show_bug.cgi?id=440

+ Changed "Format for Discourse" to "Copy for Discourse", which just 
  copies the code directly to the clipboard so it can easily be
  pasted into the forum. The UI was too goofy before.
  http://dev.processing.org/bugs/show_bug.cgi?id=447

+ Forgot to mention, there was a fix added in revision 0120 that
  prevented files dragged into a sketch from bouncing back to the 
  desktop on Mac OS X. (It formerly gave the impression that the 
  file was not properly added to the sketch).

+ noiseSeed() was only working once, and only before noise() was used.
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1162856262

+ lerpColor() now honors the current color mode. Also added support
  for lerpColor(c1, c2, MODE) where MODE is RGB or HSB.
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Suggestions;action=display;num=1160096087

+ Fixed a regression in P3D/OPENGL that prevented points from drawing
  in some areas of the screen.
  http://dev.processing.org/bugs/show_bug.cgi?id=444

+ Fixed earlier but not announced: gray backgrounds in PDF export
  http://dev.processing.org/bugs/show_bug.cgi?id=324


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0121 - 6 November 2006

Adds printing, fixes a last-minute createGraphics() regression in 0120, 
and some other minor tweaks.

[ features! ] 

+ Printing a tab is now supported (but with caveats)
  http://dev.processing.org/bugs/show_bug.cgi?id=27
  The"Page Setup" dialog doesn't work very well because Java seems 
  to suck at printing, and sucks differently on different platforms:
  http://dev.processing.org/bugs/show_bug.cgi?id=435
  Also, only the current tab is printed:
  http://dev.processing.org/bugs/show_bug.cgi?id=28

+ Added background() with alpha parameters, but only for use with 
  graphics created by createGraphics(). Also, it replaces the pixels
  with pixels that have that alpha, it's not like drawing a semi-
  transparent rect() onto the screen. For instance, to make a drawing 
  surface transparent again, use background(0, 0, 0, 0). Using
  background(0, 0, 0, 128) will replace the background with black
  pixels that are 50% transparent, it will not fade the existing 
  image toward black, use a rect() for that.

[ bug fixes ] 

+ size(), beginRecords(), beginRaw(), and createGraphics() were broken 
  for file-based renderers in 0120
  http://dev.processing.org/bugs/show_bug.cgi?id=434

+ Fixed overly fat buttons on OS X due to a previous workaround that's
  no longer a problem because we're using (testing?) the Quaqua L&F.
  http://www.randelshofer.ch/quaqua/

+ Fixed a bug with 'hidden' code causing an error inside rebuildMenu()


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0120 - 5 November 2006

Several long-standing bugs fixed in this release.

[ bug fixes ]

+ Fix several issues with filling shapes generated by beginShape(), 
  particularly when used with bezierVertex() and curveVertex().
  http://dev.processing.org/bugs/show_bug.cgi?id=97

+ Fix a regression that appeared in 0116+ that prevented curveVertex()
  and bezierVertex() shapes from filling properly.
  http://dev.processing.org/bugs/show_bug.cgi?id=390

+ Fix problem that prevented polygons perpendicular to the z-axis 
  from filling properly:
  http://dev.processing.org/bugs/show_bug.cgi?id=111

+ "Cancel" has returned to the "Save Changes?" dialog box.
  http://dev.processing.org/bugs/show_bug.cgi?id=32

+ Fix several problems with createGraphics()
  http://dev.processing.org/bugs/show_bug.cgi?id=419
  http://dev.processing.org/bugs/show_bug.cgi?id=92

+ Fix modelX/Y/Z for PGraphics3D and PGraphicsOpenGL, 
  which has been broken since beta
  http://dev.processing.org/bugs/show_bug.cgi?id=386

+ Lots of issues with createFont(), PDF rendering of fonts, and 
  hint(ENABLE_NATIVE_FONTS). Also added lots of notes to the reference
  based on frequently asked questions.

+ maintain selection, current tab, and scroll position on "save as"
  http://processing.org/bugs/show_bug.cgi?id=86

+ Fixed issue where ambientLight(r, g, b) was instead ambientLight(r, g, r)
  http://dev.processing.org/bugs/show_bug.cgi?id=412

[ functional improvements ]

+ With the PDF library, text no longer defaults to raw shape outlines. 
  Details (and a means to revert to the old behavior) in the reference:
  http://processing.org/reference/libraries/pdf/

+ Trying the Quaqua Look & Feel on Mac OS X with the hope of things 
  looking better. Not sure if we'll keep this. The main issue it fixes
  is that it improves the Swing dialogs for file choosers, however
  another workaround was found for that, so now it mostly just improves
  the "Save changes?" dialogs.

+ Trying the GTK+ Look & Feel on Linux. The old default (Metal) from
  Java was truly dreadful.

+ When "Auto Format" produces a warning, no code will be changed. In some
  cases, this was mangling code, so to be safe, it's been disabled.
  Near term, we'd like to swap out Auto Format with new code altogether.

+ Using createGraphics() now properly creates an empty, completely 
  transparent drawing surface that can be written to a file. The alpha
  channel will also be written for the file if using a file format
  (such as PNG) that supports transparency.

If this is the first release you're using since 0115 or earlier, 
please read the section below that contains the release notes for 0116. 


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0119 - 10 October 2006

Mostly minor bug fix release.

+ Fixed support for .java files, which haven't been working since 0116+
  http://dev.processing.org/bugs/show_bug.cgi?id=405

+ Rename the "Capture" example to avoid problems with Export
  http://dev.processing.org/bugs/show_bug.cgi?id=408

+ Added workaround for Java 1.5 issue where openStream(), and therefore 
  loadImage(), were throwing a different exception than Java 1.4.
  http://dev.processing.org/bugs/show_bug.cgi?id=403

+ Added saveStream() and unlerp() methods as testing for the API. 
  Documentation will probably be limited to the developer's reference.

If this is the first release you're using since 0115 or earlier, 
please read the section below that contains the release notes for 0116. 


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0118 - 1 October 2006

This release fixes two major bugs that are minor fixes. 

1. Repairs problems with exported applets that use the OpenGL library.

2. Fixes an issue with size(w, h, PDF, "blah.pdf");

This version was re-released after the PDF bug was found in the midst
of posting the OpenGL fix. 

If this is the first release you're using since 0115 or earlier, 
please read the section below that contains the release notes for 0116. 


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0117 - 1 October 2006

This release fixes a problem with release 0116 that made exported
sketches much larger than necessary because extra files were included.

If this is the first release you're using since 0115 or earlier, 
please read the section below that contains the release notes for 0116. 


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0116 - 28 September 2006

This is a major release. It contains a million billion bug fixes, 
as well as several API changes as we try to firm up the API for 1.0.

          *** PLEASE READ ALL THESE NOTES CAREFULLY ***
          ***     YOUR CODE NEEDS TO BE UPDATED!    ***

If you don't want to update your code yet, and are just trying to get
your coursework done, you may want to stick with release 0115.

+ The reference has received major updates. The contents of the FAQ
  have now been integrated into the reference. The remaining page
  of the FAQ has more details about where everyone went:
  http://processing.org/faq.html

+ framerate() is now called frameRate(), for better API consistency.
  It didn't make sense to have a frameCount variable and a framerate()
  method as its misshapen cousin. 

+ The default frameRate is now 60 fps. This will prevent some odd
  quirks with sketches running faster than they need to and throttling
  the resources of your machine. To disable this, you can set the 
  frameRate arbitrarily high.

+ beginShape() has changed. LINE_LOOP and LINE_STRIP have been 
  removed because they are redundant, and not consistent with the 
  rest of the API. beginShape(POLYGON) is no longer recommended, 
  simply use beginShape() with no parameters when drawing an
  irregular shape. Code examples:

  OLD SYNTAX:
  beginShape(POLYGON);
  // call vertex() several times
  endShape()

  NEW SYNTAX:
  beginShape();
  // call vertex() several times
  endShape(CLOSE);

  endShape() with the CLOSE parameter will make the stroke on your
  shape continue back to where the shape started. This is the same
  way that POLYGON and LINE_LOOP worked.

  OLD_SYNTAX:
  beginShape(LINE_STRIP);
  // draw with vertex()
  endShape();

  NEW SYNTAX:
  noFill();
  beginShape();
  // draw with vertex();
  endShape();

  In the above case, noFill() must be called, and the CLOSE parameter 
  to endShape() is not used, because the last point should not come 
  back to meet the original point.

  OLD SYNTAX:
  beginShape(LINE_LOOP);
  // draw with vertex()
  endShape();

  NEW SYNTAX:
  noFill();
  beginShape();
  // draw with vertex();
  endShape(CLOSE);

  For the LINE_LOOP example, endShape(CLOSE) is used to specify close the
  shape. noFill() must also be called, so that the shape is not filled in.

  The two main problems with the old API were 1) LINE_LOOP was simply a 
  POLYGON with no fill setting, this made for a strange inconsistency.
  2) there was no way to draw a non-closed POLYGON shape. 

  Using beginShape(POLYGON) doesn't make much sense when you're drawing 
  a line, so this is one more reason that beginShape() with no parameters
  is recommended.

+ The single pixel blend() methods have been removed, they were 
  overkill. Also, the blend() function that blends a color, instead
  of image data, is now called blendColor().

+ Along with blendColor(), a lerpColor() method has been added.
  It works just like lerp()... but with colors!

+ writer() and reader() are now createWriter() and createReader().
  These weren't really documented, so the change doesn't officially
  "count" per se, but maybe someone was using 'em.

+ toInt() and toFloat() are now parseInt() and parseFloat(), 
  to change to JavaScript syntax. Not sure if anyone was using these.

+ Text with the JAVA2D setting no longer uses native fonts by default,
  which means they'll be slower and uglier. See the reference for
  textFont() for details and how it can be addressed.

+ Threading has been modified signficantly. Some of these changes 
  had to be undone at the last minute, so further changes are coming.
  The changes will fix several strange InterruptedException problems.


[ major changes to PGraphics and its subclasses ] 

+ The PGraphics classes have all been reworked and renamed.

  - PGraphics is an abstract class on which additional PGraphics
    subclasses can be built. It is an abstract class, and therefore
    cannot be invoked directly. 

  - PGraphics2D (P2D) contains the former contents of PGraphics that 
    are specific to 2D rendering. This will be P2D once it is complete.

  - PGraphics3D (P3D), formerly PGraphics3, remains mostly unchanged.

  - PGraphicsJava2D (JAVA2D), formerly PGraphics2, is the renderer 
    used when you call for size(width, height, JAVA2D). It remains 
    the default renderer when none is specified. It is slower but 
    more accurate than the others.

  - PGraphicsOpenGL (OPENGL) is the new name for PGraphicsGL.

+ Do not use "new PGraphics" to create PGraphics objects.
  Instead, use createGraphics(), which will properly handle connecting
  the new graphics object to its parent sketch, and will enable save()
  to work properly. See the reference for createGraphics:
  http://processing.org/reference/createGraphics_.html

+ For the same reasons as above, createImage(width, height, format) 
  should be used instead of "new PImage" when creating images:
  http://processing.org/reference/createImage_.html

+ PImage objects default to ARGB instead of RGB format. This is 
  helpful for using createImage() or createGraphics() to generate
  a transparent surface. Be sure to use PNG or another format that
  supports alpha.

+ beginFrame() and endFrame() are now beginDraw() and endDraw(). 
  Use these around drawing commands to a PGraphics created by
  createGraphics(). The defaults() method should not/need not
  be called, just beginDraw() and endDraw().
  

[ other additions and enhancements ]

+ Added an option to Preferences that sets the available memory 
  http://dev.processing.org/bugs/show_bug.cgi?id=233

+ Added a menu option to switch between tabs
  http://dev.processing.org/bugs/show_bug.cgi?id=55
  however, there's a problem where it sometimes stops working:
  http://dev.processing.org/bugs/show_bug.cgi?id=402

+ The OpenGL library has been updated to use the "final" release 
  of JOGL 1.0, released September 2006, rather than beta 4, found
  in release 0115. 

+ The flag in PApplet.main() formerly called --present-stop-color 
  is now simply --stop-color. A flag named --hide-stop has also 
  been added, to prevent users from quitting out of a present mode 
  application. see the faq on details for capturing ESC as well.

+ Altered mouse behavior so that mouse positions update only on 
  mouseMoved and mouseDragged. this also fixes a macosx bug that 
  caused mouseX/Y values to be bizarre because mouseExited() 
  gave weird positions (workaround for apple bug).

+ The "Export Folder" Tool has been removed, if temporarily.

+ "Archive Sketch" now prompts for a sketch name, it was awkward
  trying to dig the sketches out of the sketchbook folder.

+ added constant for DXF so recordRaw(DXF, "blah.dxf") can be 
  used instead of recordRaw("processing.dxf.RawDXF", "blah.dxf")

+ Make all array functions work on arrays of all types:
  expand, append, contract, subset, splice, concat, reverse
  http://dev.processing.org/bugs/show_bug.cgi?id=115

+ Added alpha parameter to color/stroke/tint/fill for use with
  web colors. i.e. fill(#FF8800, 30) is now valid.

+ Removed image(filename) and textFont(filename) et al. These made a 
  brief appearance for the last release, but were not a good idea.

+ URLs with ampersands now supported on Windows, thanks to toxi.
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1149974261

+ Only update mouseX and mouseY when mouse is moved and dragged. Fixes 
  certain kinds of sketches, and also avoids a Mac OS X bug that causes
  sketches to jump as you move the mouse to the edge of the window.
  http://dev.processing.org/bugs/show_bug.cgi?id=170


[ bug fixes ]

+ noLoop() no longer causes an InterruptedException with OpenGL
  http://dev.processing.org/bugs/show_bug.cgi?id=164

+ Fix transparency on images (was broken in 0115)
  http://dev.processing.org/bugs/show_bug.cgi?id=350

+ save() and saveImage() with TIFF files works again.
  http://dev.processing.org/bugs/show_bug.cgi?id=378

+ Fix issue where processing applets would run extremely fast 
  after having been starved of resources where there framerate dropped.
  http://dev.processing.org/bugs/show_bug.cgi?id=336

+ createFont() now works with applets.
  http://dev.processing.org/bugs/show_bug.cgi?id=101

+ Fixed Find/Replace "focus" issues.

+ loadImage() should be returned to its former speed.
  http://dev.processing.org/bugs/show_bug.cgi?id=392

+ Fixed loadImage() problem with some types of files.
  http://dev.processing.org/bugs/show_bug.cgi?id=279

+ Only use Java ImageIO when necessary, it was causing trouble.
  http://dev.processing.org/bugs/show_bug.cgi?id=376

+ Ignore files that start with . or ._ because they were a problem
  with Mac OS X, especially used with thumb drives.

+ Fix bug where smooth() was shut off by some fonts and JAVA2D
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1148362664

+ Added stricter controls to prevent opening sketches that contain 
  illegal characters in their title.

+ Movie playback no longer tinted blue on Intel macs
  http://dev.processing.org/bugs/show_bug.cgi?id=313

+ Movie playback now works inside applets!
  http://dev.processing.org/bugs/show_bug.cgi?id=44
  http://dev.processing.org/bugs/show_bug.cgi?id=231

+ Make tweaks to openStream for URL handling and checking root
  of sketch folder, rather than just the data/ folder.
  http://dev.processing.org/bugs/show_bug.cgi?id=389

+ Prevent settings() from changing the size of a Capture object.
  http://dev.processing.org/bugs/show_bug.cgi?id=366
  Fix submitted by Hansi Raber, thanks!

+ When using external editor, code is updated on export.
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1158549785

+ Make background() ignore transformations in JAVA2D
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1147010374

+ Fix obscure openStream() problem caused by Sun's idiocy
  http://dev.processing.org/bugs/show_bug.cgi?id=359


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0115 - 11 May 2006

Greetings from the advanced processing workshop in the beautiful city 
of Barcelona. 

+ When using Java 1.4 and later, you can now write to several formats 
  other than tga and tiff. If Java 1.4 is installed and the extension 
  used is supported (usually png, jpg, jpeg, bmp), then those methods 
  will be used to write the image. 
  http://dev.processing.org/bugs/show_bug.cgi?id=165
  More detailed information is available in the save() section 
  of the developer's reference:
  http://dev.processing.org/reference/core/javadoc/processing/core/PImage.html#save(java.lang.String)

+ loadImage() also supports image loading in the same manner, 
  though it's not recommended for projects that export to the web. 
  Again, more detailed information is in the developer's reference:
  http://dev.processing.org/reference/core/javadoc/processing/core/PApplet.html#loadImage(java.lang.String)

+ The image loading and saving issues were covered by Bug #165.
  http://dev.processing.org/bugs/show_bug.cgi?id=165

+ loadImage() now works with TIFF and Targa images created by Processing. 
  It will probably not support TIFF or Targa files created by other programs. 
  Use PNG or another image format if you want to load images.
  http://dev.processing.org/bugs/show_bug.cgi?id=260

+ fixed issue with beginRaw() that made the stroke of objects appear with
  no transformations (even though the fill was properly transformations) 
  http://dev.processing.org/bugs/show_bug.cgi?id=339

+ removed debugging messages from loadPixels() and PGraphics2.save()

+ fixed error message that prevented DXF from being used with OpenGL

+ added arraycopy(from[], to[], count)

+ renaming a sketch now rebuilds the sketch menu (accidental regression
  as the result of a bug fix and moving some code around)
  http://dev.processing.org/bugs/show_bug.cgi?id=332

[ issues ]

+ You cannot set the level of compression when writing JPEG:
  http://dev.processing.org/bugs/show_bug.cgi?id=342

+ TIFF writing does not support images that are ARGB or ALPHA format.
  http://dev.processing.org/bugs/show_bug.cgi?id=343


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0114 - 19 April 2006

A few minor bug fixes and added a basic implementation of depth sorting
for triangles when used with P3D or OPENGL.

- hint(ENABLE_DEPTH_SORT) will enable simplistic depth sorting of 
  triangles, so that they look a little better when transparency is 
  used. The implementation is hokey, and doesn't look great in a lot
  of cases. The proper fix is much more complicated so I'm releasing 
  this version until I have a chance to fix it properly.
  http://dev.processing.org/bugs/show_bug.cgi?id=176

- added createGraphics(width, height, "renderer"); 
  this is mentioned in the FAQ but was not implemented.

- fix set() and background(PImage) for JAVA2D. 
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Syntax;action=display;num=1145108567

- removed "max texture size" and "ignoring illegal line" error
  messages that were accidentally left in the previous release.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0113 - 14 April 2006

OpenGL applet export! 

+ It is now possible to export applets that use the OpenGL library.
  http://dev.processing.org/bugs/show_bug.cgi?id=166

+ Added an option in preferences to export applets as separate jar files. 
  When selected, core.jar and any other libraries in use won't be copied
  directly into the sketch jar file, instead they be kept intact. 
  http://dev.processing.org/bugs/show_bug.cgi?id=62

+ added a fix for open() on Mac OS X submitted by chandler


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0112 - 13 April 2006

Lots of OpenGL bug fixes, and some big OS X fixes too.

+ Changed macosx_setup script for the new version of RXTX on OS X, 
  you'll need to re-run this script if you used a previous version 
  of Processing. You may also need to remove the contents of 
  /var/spool/uucp or at least its contents if they exist. Please 
  report on whether this works and whether you needed to remove 
  the older version of the folder, so the script can be updated.
  http://dev.processing.org/bugs/show_bug.cgi?id=315

+ PSound has been removed. Getting sound to work with Java is a total
  headache, and therefore something better left to a library. The
  Sonia and Ess libraries will both provide better audio support.

+ Fix nasty issue that caused images to take over one another with OpenGL.
  For instance, when using video input and text in a sketch, some letters
  of text would become images from the video camera. 
  http://dev.processing.org/bugs/show_bug.cgi?id=322

+ Fixed issues that would cause saveFrame() to be ridiculously slow
  on OS X. Another nasty one that took me forever to reproduce.
  http://dev.processing.org/bugs/show_bug.cgi?id=189

+ Fix lighting issues with that were introduced in revision 0109. 
  http://dev.processing.org/bugs/show_bug.cgi?id=316 

+ Now checking maximum supported texture sizes for the video card
  when using OpenGL. It will now throw a RuntimeException to avoid
  a possible BSOD if you try to make an image that's too large.
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Contribution_3DOpenGL;action=display;num=1137130317
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Contribution_3DOpenGL;action=display;num=1144651735


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0111 - 28 March 2006

Bug fix release for more of this OpenGL stuff. Also includes a
Universal Binary version of the Serial library so that the Intel
Macs can now handle serial.

[ more bug fixes ] 

+ Fixed issues security issues with endian check in PGraphicsGL.
  This should pave the way for OpenGL applets with the new
  PGraphicsGL, though it's not yet possible to do them automatically.
  http://dev.processing.org/bugs/show_bug.cgi?id=309

+ Fix to prevent lights in OpenGL mode from throwing a 
  BufferOverflowException.

+ Switched to an older version of the JOGL libraries so that we can
  use the versions signed by Sun, further enabling OpenGL in applets.

+ Couple of minor fixes to the color picker
  http://dev.processing.org/bugs/show_bug.cgi?id=308

+ More additions to the FAQ about the state of the various platforms

+ The example using spotLight still puts up an INVALID_VALUE error,
  but this seems to be a problem in the code, not PGraphicsGL. 
  Something in the newer JOGL just seems to be more finicky about the
  values it's being fed. 


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0110 - 22 March 2006

This version updates the OPENGL rendering mode to a newer version of
the JOGL library. Most importantly, this version is a Universal Binary
that works on Intel machines running Mac OS X. 

Some notes about this release: 

+ This new OpenGL setup has not been tested very much. Basically
  I got things working and thought I was so cool that I just had
  to post the new release.

+ Even though it will be easier to do because of the new JOGL, 
  support for the OPENGL renderer in applets is still unavailable.
  http://dev.processing.org/bugs/show_bug.cgi?id=166

+ The main reason for the lack of applet support is simply that 
  I haven't yet had time to try to get this to work. An enterprising 
  individual might give this a shot if they have a chance to look
  into how this is done with the new JOGL (known as JSR-231). There
  are .jar files for jogl that will be exported with a p5 applet 
  that are signed by Sun. Note that the version for Mac OS X does
  *not* support Intel Macs. The .jnilib files were built on my own, 
  but the .jar files were left intact because of the signing.
  
+ The release of JOGL is the nightly build dated 22 March 2006.

+ Lots more fixes for OpenGL are on the way, next on deck are
  fixes for a lot of texture mapping (and image drawing) issues.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0109 - 21 March 2006

Lots of bug fixes, in particular for Windows QuickTime and the 
shell script for Linux.


[ bug fixes ] 

+ fix more issues with QuickTime on Windows. yet again, this should help 
  the WinVDIG stuff, especially when using QuickTime 7.
  http://dev.processing.org/bugs/show_bug.cgi?id=299

+ change how the linux shell script works to better support situations
  where a parent folder of the processing app has spaces in the name.
  http://dev.processing.org/bugs/show_bug.cgi?id=298

+ fix the "strokeCap not available in P3D" error (again)
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1134011764

+ fix the weird error message that comes from loadImage("") 
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Programs;action=display;num=1136487954

+ fixes contributed by willis morse to deal with memory wastefulness.
  these should help speed up some types of OPENGL and P3D mode sketches, 
  thanks willis!

+ only create a single instance of the find/replace window, was 
  creating excessive numbers of windows with multiple finds.
  http://dev.processing.org/bugs/show_bug.cgi?id=307

+ disabled resizing of the color picker window so that it doesn't
  inadvertently disappear.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0108 - 15 March 2006

A couple minor bug fixes but mostly fun additional features in this 
release. 


[ additions ] 

+ A DXF file exporter. Lines and triangles from P3D or OPENGL 
  rendering modes can be sent directly to a DXF file. More information
  and an example can be found in the developer's reference:
  http://dev.processing.org/reference/everything/javadoc/processing/dxf/RawDXF.html

+ A color picker has been added to the Tools menu. Using the keyboard 
  shortcuts, you can copy/paste the values for the colors and paste 
  them into your program. (We didn't do any sort of auto-insert of
  colorMode() or fill() or stroke() code cuz we couldn't decide on a 
  good way to do this.. your contributions welcome).

+ We've decided to include versions of image and textFont that take
  a filename instead of requiring a call to loadImage(). This is less 
  efficient than using loadImage because there's no way to unload it 
  from memory, but it's useful for beginners.

  void image(String filename, float x, float y)

  void image(String filename, float x, float y, float c, float d)

  void image(String filename,
             float a, float b, float c, float d,
             int u1, int v1, int u2, int v2)

  void textFont(String filename)

  void textFont(String filename, float size)

+ The discourse formatter tool posted to the discourse board by owd 
  has been added to the Tools menu. We're distributing it for now 
  while "Tools" menu features are in testing.


[ bug fixes ]

+ a weird set of exceptions would show up whenever a file was dragged
  to the sketch window on macosx. it didn't usually cause any trouble,
  but the nasty error messages are now gone.

+ fix for the capture settings dialog submitted by hansi
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=VideoCamera;action=display;num=1139376484

+ fixes to the local version of the FAQ and a handful of additions.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0107 - 2 March 2006

More tweaks to "Save" to try an iron out further bugs, though these 
are more minor than the others.

+ cut/paste from the context menu (right-click) in the editor wasn't
  properly setting a sketch as modified.

+ set/unset the sketch's modified state as undo happens.
  http://dev.processing.org/bugs/show_bug.cgi?id=248


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0106 - 1 March 2006

Fix for another major bug where sketches don't save properly if you 
use the "Save" menu command (also ctrl-S, or cmd-S on the mac). 

Also a minor bug with vertices greater than 512 in P3D and OPENGL 
would crap out.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0105 - 27 February 2006

Fixes some additional issues with beginRaw/endRaw and OpenGL. 
Had to do an additional release for a course that's using these
features, so this revision should be used instead of 0104, 
since nobody has really downloaded 0104 yet.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0104 - 27 February 2006

Fix for major bug where "Save Changes on Quit" was being ignored. 
http://dev.processing.org/bugs/show_bug.cgi?id=276

Other changes include: 

+ Processing.app is now a universal binary for Mac OS X. The version 
  of jikes being used is also now a universal binary. However, OpenGL 
  and the Serial library still will not work on Intel-based Macs:
  http://processing.org/faq/platforms.html#mac

+ Fixed issues with LD_LIBRARY_PATH for applications exported for Linux.
  http://dev.processing.org/bugs/show_bug.cgi?id=234  

+ No window is opened when using the PDF renderer, this is useful in 
  situations where very large images are being created at it used to
  freak out the OS.

+ Fixed an obscure font metrics issue with OpenGL and createFont().

+ A handful of additional internal changes for recordRaw() have been 
  added to support writing out 2D and 3D data.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0103 - 18 January 2006

Fix for a bug specific to Mac OS X (may affect Windows as well) that
prevented fonts from being used with PDF rendering. 

Issue description and the patch that was applied can be seen here:
http://www.mail-archive.com/itext-questions@lists.sourceforge.net/msg20234.html

Releasing for all platforms to get things back in sync.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0102 - 15 January 2006

Windows-only release to repair issues that prevent Processing from 
working properly when the PATH, CLASSPATH, and QTJAVA environment 
variables have spaces or quotes. 

references: 
http://dev.processing.org/bugs/show_bug.cgi?id=112
http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114040731
http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114153542


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0101 - 14 January 2006

Something I said about quick releases to follow...

0101 fixes a bug in 0100 that prevented output from working properly 
when the size() command was used to specify PDF rendering.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0100 - 13 January 2006

This is a pre-release of the PDF generating code. There will be a couple 
other quick releases to follow in the coming days, and this shouldn't be
considered a "stable" release since it's not been tested heavily, but we
wanted to post it for the people who'd like to try it out.

To use it the pdf library, select Sketch -> Import Library -> pdf. 
And then choose one of the following methods:

+ to render everything out to a file:

  void setup() {
    size(400, 400, PDF, "filename.pdf");
  }

  void draw() {
    // draw something good here
  }

  void mousePressed() {
    exit();  // important!
  }

  this will create a sketch that draws only to a file. successive frames
  will be drawn on top of one another. when you're finished, call exit(), 
  for instance, inside mousePressed() or a keyPressed() event.
  this will still open a window of size 400x400 but not draw into it. 
  future releases won't open the window, since it doesn't work properly 
  with sizes larger than the screen size (as might often be the case when
  rendering to a file).

+ if you want to record just a single frame, use beginRecord() and
  endRecord() inside draw:

  void draw() {
    beginRecord(PDF, "frame-####.pdf");
    // your awesome drawing happens here. 
    endRecord();  // saves the file
  }

  this can also be triggered by a mouse press. the #### will cause a
  four digit "frame" number to be inserted into the filename.

+ if you want to record the entire thing to a file at the same time as 
  drawing to the screen (i.e. save out an interactive drawing), do this:

  void setup() {
    size(400, 400);
    // etc
    beginRecord(PDF, "everything.pdf");
  }

  void draw() {
    // do your worst
  }

  // this needn't be mousePressed, but you need to call this somewhere
  // when you're done, to ensure that the pdf file properly closes.
  void mousePressed() {
    endRecord();
  }

Caveats with PDF rendering: 

+ anything bitmapped works very poorly. so it's no good for images.

+ use createFont() with a truetype font (some opentype also work) to
  make fonts work properly. any font that shows up in PFont.list() 
  should work. if you don't use createFont(), they'll likely show up 
  bitmappy and gross like images. the shape of the characters may be 
  weird in some cases, there seems to be a java bug with cubic vs. 
  quadric splines. looking into a workaround if necessary. 

+ rendering from 3D isn't yet supported, but coming soon. 

+ exit() is really important when using PDF with size()


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0099 - 18 December 2005

A general usability-oriented release. The most major thing is some
additional support for auto-indenting of blocks (things inside curly
braces) and being smarter about indents on new lines. Other than that, 
it's a lot of bug fixes. If there are errors in the auto-indenting, 
you might want to just move back to 0098.


+ better auto-indent code. it's not complete or perfect, but should
  make the editor a little less annoying for general use.

+ ctrl-up and ctrl-down move up or down to the next empty line
  (holding down shift will also select the area)

+ a /* without an ending */ was crashing with a NullPointerException 
  or OutOfMemoryError or just plain locking up.
  http://dev.processing.org/bugs/show_bug.cgi?id=16

+ let user know where offensively named sketches are located
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1134466565

+ make windows respond to ctrl/cmd-w and esc more consistently

+ make buttons in toolbar highlight as their actions are taking place
  (i.e. make the export button stay lit while the export is completing)
  http://dev.processing.org/bugs/show_bug.cgi?id=242

+ processing should no longer fill the temporary directory with extra
  folders. iron out other console and build related issues.

+ fix obscure bug with hidden files when using an external editor

+ fix an issue with autoformat showing up out of range
  http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1134720763

+ support for ComponentListener to handle calling size() when 
  a PApplet is resized by a layout manager or other means.
  http://dev.processing.org/bugs/show_bug.cgi?id=209
  this still doesn't work with opengl, however.

+ calling size() while app is running had some weirdness
  http://dev.processing.org/bugs/show_bug.cgi?id=243  


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0098 - 1 December 2005

Not heavily tested, a release primarily for Casey to fix some issues
he was running into with while writing the book. A handful of bug
fixes I figured I'd post for the more adventurous, before adding
anything more complex to it.

Not as necesary a release as the others but has some useful fixes and
I'll need to know whether or not there are any regressions before the
next "big" release.


[ bug fixes ] 

+ fixes for linux shell script for "export to application" 
  http://dev.processing.org/bugs/show_bug.cgi?id=234
  thanks to x771771 at fixless.com for the report and fix.

+ more edits are now a compound edit, so hitting "Undo" after "Auto
  Format" will undo to the previous state, instead of first going to a
  blank screen and requiring a second "Undo." this is particularly
  noticeable when bugs in Auto Format cause code to be mangled, and
  hitting undo would "delete" the code entirely (a second undo would
  fix things, but not everyone figured that out). 
  http://dev.processing.org/bugs/show_bug.cgi?id=139

+ several fixes to "Auto Format", however many more bugs uncovered in
  the process. unfortunately the code was contributed and then
  abandoned by its original author, making it difficult to maintain.
  http://dev.processing.org/bugs/show_bug.cgi?id=109
  http://dev.processing.org/bugs/show_bug.cgi?id=110
  http://dev.processing.org/bugs/show_bug.cgi?id=235
  http://dev.processing.org/bugs/show_bug.cgi?id=236

+ better bug handling with auto format. if an exception occurs, 
  auto format should return without mangling your code.

+ once again fixed a bug where width and height were set to zero in
  static mode apps. hopefully fixed properly this time:
  http://dev.processing.org/bugs/show_bug.cgi?id=198

+ fixed a bug where play() wouldn't play a sound the second time
  unless stop() had been called on it.


[ changes ] 

+ updated to java 1.4.2_10 on windows and linux. the former version
  was 1.4.2_08, though _10 will be out of sync with macosx which is 
  currently at 1.4.2_09. 

+ updated notes in the javadoc about how the preprocessor works.

+ made auto format more verbal in reporting errors and differences to
  the editor. won't change anything unless actual changes occur, and
  if an misbalanced parenthesis situation occurs, it's reported as an
  error.


[ api changes ] 

+ recordShapes() and recordShapesRaw() will be record() and
  recordRaw(), though they remain mostly unimplemented.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0097 - 29 November 2005

"Export to Application" is here! See the FAQ for more details:
http://processing.org/faq/bugs.html#application


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0096 - 26 November 2005

bug and api fix release. mostly minor things but useful to avoid
several quirks that showed up in rev 0095.


[ fixes ]

- fixed a bug that prevented movies from opening properly in 0095. 
  http://dev.processing.org/bugs/show_bug.cgi?id=216

- lots of tweaks to openStream(), and all the loadXxxx() functions. 
  + web server logs should no longer be spammed with quite so many 404s
    from p5 applets looking for files in their data folders.
  + the open and load functions now handle subfolders inside the data 
    folder. subfolders in the data folder are now included on export. 
    http://dev.processing.org/bugs/show_bug.cgi?id=218
    http://dev.processing.org/bugs/show_bug.cgi?id=65
  + instead of halting the applet, a missing file (i.e. with loadImage()
    or loadStrings()) will return null and print an error to the console. 
    this is better for people who know how to deal with null values, 
    but hopefully the others will actually read the console to see the
    error otherwise, because the end result will be a NullPointerException.

- deal with some issues where applets weren't running or were closing
  immediately in revision 0094/0095.
  http://dev.processing.org/bugs/show_bug.cgi?id=210
  http://dev.processing.org/bugs/show_bug.cgi?id=204

- when loading a PNG image, set the image to ARGB if it has an alpha 
  channel. also fix a bug in the GIF image alpha channel checking.
  http://dev.processing.org/bugs/show_bug.cgi?id=217

- fixed a text block wrap problem when a manual break character (\n)
  was used: http://dev.processing.org/bugs/show_bug.cgi?id=188

- remove some unnecessary applet resizing that was happening whenever
  an applet was loaded. this would sometimes cause the wrong window
  size to be used by appletviewer, or cause applets to start at their
  correct size, then resize to 100x100, and then resize to their correct
  location once setup() was complete.


[ api ] 

- hint(DISABLE_DEPTH_TEST) will disable the zbuffer in P3D or OPENGL.
  re-enable with noHint(DISABLE_DEPTH_TEST);

- added methods for libraries to be able to get sketch folder paths.
  the variable 'folder', which was changed to 'path' for rev 0094 is
  now called 'sketchPath', and won't change again. see the javadoc 
  reference on dev.processing.org for more details on this and the
  additional functions:
  + sketchPath() returns the path to a file in the sketch folder.
  + dataPath() returns the path to a file inside the data folder.
  + createPath() will take any path and make sure that the 
    interstitial folders exist. this is used by saveFrame() and 
    savePath() to make sure that the parent folders exist. 
    for instance, saveFrame("image/blah.tif") will use createPath() 
    to ensure that the folder "image" exists inside the sketch folder.
  + savePath() is like sketchPath() but uses createPath() to make 
    sure that it's save to save there.
  this will probably break the libraries again, but hopefully with 
  this change, they should stop breaking going forward.

- changed unhint() to noHint() to match the rest of the api.
  i don't think anyone was using this so hopefully it won't affect 
  anything.


[ misc ] 

- macosx release is now packaged with as a .dmg instead of a .sitx
  http://dev.processing.org/bugs/show_bug.cgi?id=116

- added reference category to the bugs db so that reference issues
  can be handled there as well.

- added MAYSCRIPT="true" to default applet html (for javascript)
  http://dev.processing.org/bugs/show_bug.cgi?id=211


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0095 - 2 November 2005

single tweak to undo a failed bug fix in 0094.


[ bug un-fixes ]

- width, height are set to zero in static mode apps. there was an
  attempt to fix this for rev 0094, but that backfired and broke more
  things than it fixed, so the change has been removed and i'm
  re-releasing as 0095. the bug has now been filed for a later release:
  http://dev.processing.org/bugs/show_bug.cgi?id=198


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0094 - 31 October 2005


[ additions ] 

- drag and drop! you can now drag and drop a file to the editor 
  window to add it to the sketch. if you drag and drop a sketch file 
  (a .pde file whose parent folder is named the same thing), 
  that sketch will be opened.
  http://dev.processing.org/bugs/show_bug.cgi?id=21

- item added to the tools menu that allows building all sketches
  underneath a particular subfolder. this won't be part of the base
  tools once the tool api is done (meaning that it won't be in the 
  menu by default), but it's there for now. 
  http://dev.processing.org/bugs/show_bug.cgi?id=117


[ bug fixes ] 

- stdout.txt and stderr.txt are no longer written to the processing
  folder, which will prevent errors for lab users. 
  http://dev.processing.org/bugs/show_bug.cgi?id=177

- console text selection no longer immediately de-selects
  http://dev.processing.org/bugs/show_bug.cgi?id=180

- removing quotes from QTJAVA path if they exist (this may have fixed
  some issues?)

- fix bug that was causing font sizes not to be set on opengl
  http://dev.processing.org/bugs/show_bug.cgi?id=174

- apply fix from toxi to make targa file i/o less picky

- width/height now properly set in "static" mode apps

- g.smooth no longer always false in opengl
  http://dev.processing.org/bugs/show_bug.cgi?id=192


[ semi-obscure api tweaks ]

- in PApplet, "folder" has been renamed to "path" to match savePath().

- added dataPath(String filename) to return the full path to the
  give filename within the data folder

- new api is in the process of being added for shape recording.. 
  more on this in future releases.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0093 - 14 October 2005

First release in a while with lots of bug fixes for the video library
(QuickTime 7), OpenGL, and Jikes on Linux.


[ big fixes ] 

- david mellis contributed some code to help prevent the editor from 
  locking up when a lot of println() statements were used in a sketch.
  thank you! http://processing.org/bugs/show_bug.cgi?id=19

- sometimes saving sketches or launching processing was really slow
  when sketchbook folders grew large, or thousands of frames from 
  saveFrame() were in a sketch folder. this has been fixed. 
  http://dev.processing.org/bugs/show_bug.cgi?id=84

- some Java 1.4 code snuck into the core library, breaking applets
  whenever Java 1.3 was in use (Firefox or IE on the Mac, for
  instance). this is now fixed. 

- new version of jikes for linux which should prevent the library 
  issues: http://dev.processing.org/bugs/show_bug.cgi?id=47

- basic support for QuickTime 7 is now included, if you have problems,
  please report them to the bugs database:
  Mac OS X: http://dev.processing.org/bugs/show_bug.cgi?id=172
  Windows: http://dev.processing.org/bugs/show_bug.cgi?id=171

- applications that use OpenGL should run better due to an update of
  the JOGL library. 


[ other bits ] 

- lots of additions to the FAQ and updates to dev.processing.org

- lots of help from fjen on improving the bugs database

- added a link to the FAQ from the Help menu

- added menu shortcut for "show sketch folder" 

- faster blur code contributed by toxi, along with filter(ERODE) 
  and filter(DILATE). thanks toxi!

- initial support for textMode(SHAPE), which will render fonts as
  triangulated vectors that will eventually allow for exporting vector
  text from OpenGL applications.

- PGraphics.save() no longer inserts the prefix to the applet folder,
  allowing it to be used for absolute paths. (use saveFrame() or the
  savePath() function if you want to save frames to the sketch
  folder). 



. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0092 - 30 june 2005

release to support casey's workshop, but not announced publicly.

- thanks to toxi, RLE-compressed .tga images are now the default

- fix to make copy() a little faster in 2D

- native fonts are now used with JAVA2D if they're installed on the
  host machine. this means faster, higher quality rendering for fonts.
  will require running "Create Font" again, however.


[ api changes ]

- loadMatrix() now handles getting good matrix values into 
  g.m00, g.m01 etc across all renderers

- accessible variables from PGraphics3 can now be found in the main
  graphics object, so it's possible to use g.cameraX, etc.

- text now has an inherent position, so after drawing some text, a
  call to text("blah"); will draw the text "blah" right after the last
  text that was just drawn.


[ internal stuff ] 

- PApplet.main() is now Java 1.3 compliant

- move font placement back into PGraphics

- lots of changes to font control and font format updated once again



. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0091 - 6 june 2005


[ major bug fixes ] 

- european users rejoice: using processing from a user account with
  non-ascii characters in the user name no longer causes a problem on
  windows

- error messages should be improved a bit when libraries or a code
  folder are in use


[ minor bug fixes ] 

- keys in the editor now properly work while shift is down

- printing too many chars to the console (32,000 of them) no longer
  makes things choke

- linux first checks to see if jikes is properly installed and built
  for the current distro

- better error message when Capture.list() fails

- if sketchbook goes missing, default to a new location rather than
  dying completely

- improvements to running applets from the command line.. shouldn't
  require --present option anymore

- fixed a weird bug where curveVertex() had trouble with > 128 points

- hitting escape now quits present mode

- the runner stop button color wasn't being read from the preferences
  file properly

- "java 1.3 required" message when running in a 1.1 browser was broken


[ minor api change ] 

- createFont() functions cleared up a bit, they've changed from:
  createFont(name, size)
  createFont(name, size, charset)
  createFont(name, size, smooth)
  createFont(name, size, charset, smooth)
  in previous releases to now look like: 
  createFont(name, size)
  createFont(name, size, smooth)
  createFont(name, size, smooth, charset) 
  (docs may not yet be updated)


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0090 - 9 may 2005

- fix for yet another undo bug fix that can cause code to be destroyed

- fix for the selection ugliness that was causing an ugly yellow gap, 
  contributed by david mellis - thanks david!

- some additional fixes for sketch renaming and updating the ui properly

- addition of an "arraycopy" function that mirrors System.arraycopy, 
  details will be in a version of the reference arriving soon.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0089 - 8 may 2005

fix for a late breaking undo bug that made things really nasty.
also removed the Thumbs.db files in the reference and examples.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0088 - 7 may 2005

lots of bug fixes in this release based on feedback on the discourse 
board, thanks to everyone who's been reporting things. 


[ tab madness ] 

- better at handling errors across multiple tabs 

- undo now works properly between tabs (undo used to be cleared 
  when changing a tab, or on each error)

- when using multiple tabs (but no .java files or code folder or libs)
  things will still run inside p5, meaning they'll start up more quickly

- renaming a .java file now includes the .java in the name, so that 
  you don't accidentally make the file a .pde file


[ tools ] 

- auto format has been replaced by code long since contributed by 
  martin gomez. thanks to martin, things should improve significantly. 
  better yet, if there are problems, we can yell at him about em!

- archive sketch saves before archiving, hopefully reducing confusion


[ export ] 

- new default html for exported applets

- shows a processing loading image instead of sun's awful starburst 
  java coffee cup. like applet.html, this can be customized by placing 
  a file inside your sketch folder called 'loading.gif'


[ core/api ] 

- ceil(), floor(), and round() now return ints instead of floats

- master gain error in PSound won't make the sound unusable, it'll just
  shut off the ability to control volume. (a java 1.5 problem?)

- fixed createFont() for built-in fonts


[ minor fixes ] 

- errors (exception stack traces, for the technical)  properly show up
  across multiple lines.. sometimes they used to get spammed onto a single 
  line, making them difficult to read.

- run-expert.bat was unintentionally a little too expert, and required
  editing before use.


[ platforms ] 

- windows and linux java have been updated for java 1.4.2_08

- windows java download includes the proper files for handling 
  non-european systems


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0087 - 2 may 2005

not tested as thoroughly as rev 86, gonna wait 24-48 hours before 
setting this as the default download. 

+ the reason for this release: dragging the sketch window should no 
  longer make things lock up. also found several bugs that were 
  probably contributing to the problem.

+ more file creating and saving fixes:

  - new tab with a .java file was giving an error
    http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115059069;start=0
  
  - "save as" with a read-only sketch wasn't letting you use the 
    same name as the old one.

  - other small tweaks to new tab/save as/rename error messages

+ check for updates happens only once daily, rather than nagging 
  you on each startup


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0086 - 1 may 2005

fixes for a couple major bugs in the beta release. 


[ large ] 

- "Save As" bugs fixed, along with some others found in "Rename"

- fixed an error that caused applets to require Java 1.3

- camera should no longer be backwards


[ medium ] 

- fixed the smashed text in the preferences window 

- saveFrame() fixed once again

- color() wasn't properly changing with colorMode(HSB)

- Linux: serial and net libraries weren't included in the last release

- fix to make the environment run on Mac OS X 10.2

- caret and scroll position is now saved when switching tabs


[ small ] 

- fov on camera() changed to use radians

- lookat() has been removed, because its functionality is 
  duplicated by camera().

- no longer throws an error with beginShape/endShape calls
  that have no vertex() calls in-between

- added an error for people who try to use textMode(RIGHT)

- updated the Windows and Linux downloads to include Java 1.4.2_07

- removed requirement that fink be installed before building on the mac

- lots of changes to the faq 


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0085 - 19 april 2005 - beta

- camera() was missing from PGraphics

- tweaks to openStream() for image loading

- basic triangle and line clipping in P3D from simon (!)

- finalized the faq listing


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0084 - 19 april 2005

we're one release away from beta. reference and examples need another
update, and the faq page needs a rundown of all the changes yet, but
hopefully we're done with the code, barring any showstopper bugs.

changes for this release:

- added run.options to preferences that will allow you to set the
  amount of memory allocated to sketches run externally.

- stability improvements to processing.exe from simon. 

- additions to the faq pages (the readme and bugs files are gone,
  replaced with the 'faq' folder)

- all the dreaded "save as" bugs are now fixed

- "Create Font" works once again

- more lighting fixes from simon

- point() again works in 2D mode

- text with a z coordinate is working again


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0083 - 17 april 2005

- new reference and examples in this release. please test!

- readme.txt and bugs.txt have been removed in favor of a single FAQ,
  which contains the appropriate information, and will be mirrored as
  the FAQ on processing.org as well.

- what he hope is the finalized lighting api for beta/1.0

  + because lights are in object space, they are considered more
    like a shape in this release. they are not retained and must
    be "drawn" each time you run through draw(). 

  + to enable a simple ambient and directional light, place inside draw:
    public void lights();  

  + ambientLight(float r, float g, float b) 
    adds an ambient light based on the current colorMode.

  + directionalLight(r, g, b, vx, vy, vz);
    sets up a direction light along vector vx, vy, vz

  + spotLight(r, g, b, x, y, z, vx, vy, vz, angle); 
    sets up a spotlight at a position, with a direction and an angle

  + lightFalloff(constant, linear, quadratic) 
    will change the falloff for any lights that follow. 
    default setting is lightFalloff(1, 0, 0)

  + lightSpecular(r, g, b) 
    sets the specular color for any lights that follow.

  + ambient(), emissive(), specular() set the material properties
    of shapes. they take the same form as fill() and stroke(). 

  + shininess(float shiney) takes a float from 0..1 to specify
    the level of shininess for the current material

- video camera api should now be finalized:

  + we're still debating on whether to rename Camera to something
    else. we just can't think of a good name.

  + that whole thing with passing null or "" to the camera constructor
    was really silly. now either one will just give you the default
    video input device. 

  + added settings() which will show the settings dialog

  + source() takes parameters TUNER, COMPOSITE, SVIDEO or COMPONENT
    to select the input source.

  + format() takes parameters NTSC, SECAM or PAL

  + crop(x, y, w, h) (uses the current imageMode from the parent
    applet) will crop the video before putting it into its PImage. 
    this is almost always used internally because qt likes to add
    black bars to the image, but you can now specify your own 
    settings to crop things further

  + noCrop() will remove any cropping, providing a speed increase.

  + there may be bugs.. things were sometimes hanging on my machine 
    when there were errors 

- link() now works when running as an application. also added
  open(String filename) which will attempt to launch an application 
  using the shell, or open(String args[]) which will do the same
  with several command line args.

- nfc() joins the nf() family to format integers and floats with commas.

- linux version returns, with several fixes, and now handles 
  (warns about) libstdc++ incompatabilities with jikes


The last remaining things before Beta:

- make sure there isn't any super badness in the current version

- fix the "save as" bugs

- "create font" is somewhat broken in this release


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0082 - 6 april 2005

- casey has updated the examples, reference, and keywords.

- default lighting now works.. lights() and noLights() should properly
  make things look 3D and pretty... this is all thanks to simon. there 
  are a ton of features that come along with this, but we're testing
  them and finalizing the api first before announcing them.

- default window height is no longer insufficient (after prefs were
  deleted on windows, on the next run the window was smashed)

- "sto" is now "stop" while in present mode

- it looks as though the opengl libraries weren't properly added in
  the last release. no more.

- added an extra requestFocus() for opengl

- added ryan's grow box design for osx


known problems

- P2D still badly broken (no lines, etc)

- flicker still likely in java2d.. the applet and graphics threads
  aren't playing nicely with each other

- stop button still broken.. had it fixed for a minute but a bunch 
  of other problems reappeared. 

- dragging the applet window around will usually halt it (especially
  with opengl)

- println() is super slow

- moving the main p5 window to another screen just gets thrown out, 
  to prevent a case where a second display is unplugged. this will 
  change in a future release to properly record its previous position
  and what monitor it was on.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0081 - 4 april 2005

* major api changes in this release *

we're nearing the end of our general f-ing with the api, but we've
once again broken things. this time, we've moved around how renderers
work. 

- depth() is gone, and so is the renderer menu, in its place, we
  have a new method for specifying how you want to render. 

  so now, size(200, 200) this allocates a 2D buffer to draw into, 
  using the Java2D engine or the original 1.1-compliant engine depending 
  on whether or not you're using Java 1.3 or higher.

  or this gets the original processing 2D renderer:
  (which is often better for pixel operations, though is currently quite
  borked.. lines and whatnot don't work properly)
  size(200, 200, P2D);

  this provides the original processing 3D renderer:
  size(200, 200, P3D);

  and this loads (drum roll) opengl:
  size(200, 200, OPENGL);

- gl.glXxxxXxx no longer works, because the base applet is just a 
  regular PApplet, not a PAppletGL. this is a bummer but a small
  price to pay for all the goodness that comes with the way that
  the new size() function works. in order to get the gl object to 
  draw to, use the following ugly piece of code. 
  GL gl = ((PGraphicsGL) g).gl;
  you may also want/need to add the following import statement 
  (did you know we support imports? not sure if this was mentioned
  back around 70 or whenever they were implemented)
  import net.java.games.jogl.GL;

- the applet placement, sizing, and window issues should now be sorted
  out completely. no more windows showing up in weird places or applets
  being offset strangely within them.

- present mode has been rewritten to use java's proper full screen api.
  no more ghetto full screen with menubar on osx. should be more stable
  than it was in the past. also note that things running in presentation
  mode will run using an external java vm, rather than inside the 
  environment itself.

- processing itself requires java 1.4. it's sort of required it for a 
  little while, but this is now made explicit in the code. if you're lucky
  a new erorr dialog will pop up and tell you to install a newer version 
  if you try running under 1.3 or whatever.

- background(PImage) should now be working in opengl

- saveFrame() path bug fixed

- preferences madness
  + preferences panel is now a modal dialog, and doesn't hide the 
    editor window in the weird way it used to. 
  + you can also click the link to the preferences .txt file and it'll 
    open in whatever your default text editor is on your machine.
  + editor font size is now a preference that can be set from the 
    prefs window.
  + fixed a bug where prefs were applied even if you hit cancel.

- lots more internal fixes and tweaking that we'll be documenting 
  soon (i.e. the new renderer setup means pluggable renderers, or 
  PApplet has lots of fancy command line options like --present)


* other bits to note *

- it should also be noted again that java 1.1 stuff is almost 
  completely unusable in this release. the PApplet class temporarily
  contains some 1.4-specific code (which will be removed) and the
  graphics engine still doesn't work. so this version isn't useful
  for exporting things to the web.

- there are a bunch of bugs with save & save as... quirky things 
  about folders not winding up in the right place and whatnot. 
  looking to fix these this week

- release 82 (or 83?) will be all about getting proper 3D lighting,
  camera, and geometry working. simon's done some amazing work.

- if anyone's looking at the cvs, you'll need to do a 
  "cvs update -d -P" because the folder structure has moved around
  for this release.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0080 - 2 April 2005

bug fix and api tweaking release... um yeah.


- examples have finally been updated in this release, please test!

- keywords have also been updated

- when exporting an applet, you can now include a description in the
  applet text. the format is a javadoc comment, where the first line
  should contain /** and the final line */ so the following would work:
  /**
   * You can't rock Processing like I can rock Processing.
   */
  and that text would automatically be embedded in the exported html 
  page. like a javadoc comment, the text can (and should) be any valid
  html since it's just gonna get embedded right in the page.


graphics

- fixed opengl bug that was causing some color components to flip on the mac

- removed mask(PImage someImage, PImage theMask)
  just use someImage.mask(theMask) instead

- filter(BLUR) and filter(BLUR, float radius) rock
  donated code from quasimondo that does a gaussian blur on an image

- set(x, y, argb) and set(x, y, PImage) now work inside opengl

- copy(PImage, x, y) has become set(x, y, PImage)

- blend(), copy(), and filter() now work for opengl

- textureMode(NORMAL_SPACE) -> textureMode(NORMALIZED)
  textureMode(IMAGE_SPACE) -> textureMode(IMAGE)

- goodbye sphere(x, y, z, r), you're inconsistent with the api


text changes

- textMode(ALIGN_LEFT) -> textAlign(LEFT)
  textMode(ALIGN_RIGHT) -> textAlign(RIGHT)
  textMode(ALIGN_CENTER) -> textAlign(CENTER)

- textSpace(SCREEN_SPACE) -> textMode(SCREEN)
  textSpace(OBJECT_SPACE) -> textMode(OBJECT)

- text() in a box is now fixed again (sometimes a word would hang
  outside the box)

- textFont(font) now sets the font to its "natural" size by default
  (the size used for "Create Font")

- font.size is an int that contains the original size of the font


forgot to mention for previous releases:

- point() should be working in opengl again

- to make a copy of an image, just use get(), which is the same as
  get(0, 0, image.width, image.height)

- copy(PImage, x, y) has been replaced by set(x, y, PImage) for better
  parity with the get() methods.

- macosx users can once again scroll downwards in the console, 
  thanks to the little bar with the line numbers

- arc() was made to behave more properly


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0079 - 31 March 2005

* horizontal toolbar! new colors! current line number indicator! *

cosmetic fixes only in today's release. we lost our internet connection
last night before i could post rev 78 for windows, so if casey returns
from his meeting soon enough, we'll also post a rev 79 for windows (and 
just skip 78 since we didn't get to it).

- you must delete your preferences.txt file for this release, 
  otherwise things are gonna look super ugly.
  on macosx: ~/Library/Processing/preferences.txt
  on windows: Documents and Settings/username/
              Application Data/Processing/preferences.txt

- the ui is now blonde... casey decided that it was time to go horizontal 
  with the toolbar buttons. drunk with power, he wound up re-coloring
  everything while he was at it. as a result your prefs need to be nuked
  the first time you run with this release.

- added a status bar at the bottom of the screen that displays the 
  current line number (or range). this is an interim solution until
  we can put in real line numbers, but hopefully this does the trick
  for a while, since the text editor component we use doesn't support
  line numbers. 

- ctrl-O added for the "Open" menu item. don't get too wild.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0078 - 30 March 2005

this release includes a large number of fixes for the 2D graphics engine. 
nothing has changed in the processing 3D engine (what you get when you 
call depth()), however the OpenGL renderer now supports loadPixels(), 
updatePixels(), saveFrame(), get(), and pmouseX/Y.

around the corner are big fixes to 3D when simon finishes the new 
lighting model. he's moving through it pretty quickly so we hope to have
it in a release shortly.


major things still not solved since last release:

- still lots of threading/flickering strangeness

- applet not being placed properly inside its window

- things sometims not starting up (gives a cryptic error in the console)

- text inside a rect is slightly broken

- you can't do per-vertex coloring of lines in 2D

- everything else not covered here that was broken in 77...


api changes:

- fun things: some of the filter() stuff in PImage now works:
  + filter(GRAY) will convert a PImage to grayscale. 
  + filter(INVERT) will invert an image
  + filter(POSTERIZE, int levels) will posterize to that many levels
  + filter(THRESHOLD) or filter(THRESHOLD, float midpoint)
    will give you a black and white image, with optionally settable
    midpoint (a value from 0 to 1)
  + coming soon is filter(BLUR) and filter(BLUR, float radius)...

- strokeCap/strokeJoin constants for MITERED is now MITER, BEVELED is BEVEL, 
  and PROJECTED is now PROJECT.

- as of 0077, font.width() works differently. it returns the width of
  a one point font, not the font at its current size. the font api
  built into PGraphics/PApplet now consists of:

  public void textFont(PFont which);
  public void textFont(PFont which, float size);
  public void textSize(float size);
  public void textLeading(float leading);
  public void textMode(int mode);
  public void textSpace(int space);
  public float textAscent();
  public float textDescent();
  public float textWidth(char c);
  public float textWidth(String s);

  instead of using PFont.width() or PFont.ascent() to get the size of
  text, you should use textWidth() or textAscent() in PGraphics/PApplet
  which will return values based on what was set in textSize().

- bezierVertex has changed. instead of four calls to bezierVertex, 
  you should instead use:
  vertex(x1, y1);
  bezierVertex(x2, y2, x3, y3, x4, y4);
  this helps iron out some inconsistencies that you get with the wrong
  number of bezierVertex coords. it also prevents you from having to 
  double up the final coordinate to draw the next segment.

- got rid of CONCAVE_POLYGON and CONVEX_POLYGON since they never really
  came into full use.


bug fixes: 

- curveVertex works again.

- lines of text were getting mashed together both horizontally and
  vertically. the font stuff was moved around a lot in 0077 and so
  this made a mess of things.

- backwards rectangles and ellipses are now drawn properly. (i.e. 
  rectangles where (x2 < x1) or (y2 < y1), or ellipses with a 
  negative width or height).

- same thing for backwards images, note that an image drawn backwards
  won't actually flip the image or anything nutty like that.

- the file open dialog on macosx now lets you open files ending 
  with all caps .PDE instead of .pde

- imageMode() was broken

- loadPixels, updatePixels, save, and saveFrame were totally broken 
  and now they work in both the Java2D and OpenGL renderers.

- patched in the latest version of jogl to hopefully fix some of the
  overly chatty error messages.

- SCREEN_SPACE text is working again

- tint() is now working properly, except that it ignores colors (but
  accepts alpha) with PGraphics3 (processing renderer with depth())

- arc was broken and inconsistent, now fixed.

- several bug fixes inside Camera and Movie.

- PImage.get() had a bug where it wouldn't properly read data as
  you neared or crossed any of the edges of the image.

- bug in the gl renderer that had images drawing the wrong size/shape.

- default strokeCap and strokeJoin now set.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0077 - 1 March 2005

* PLEASE READ THIS INFORMATION BEFORE POSTING TO THE BETA LIST *

this is another release where processing has undergone massive
changes. hopefully it is hopefully more stable than 75 and 76, 
and i'm ready to take bug reports again.


changes/important notes:

- whenever you use 3D in this release, you must use the depth() command
  inside of setup (preferably just before or after size()). having
  tried to keep the 2D rendering together, it's just become too messy
  and error prone to continue. 

- after editing the pixels[] of an image, you must use the new method
  updatePixels(). this became necessary because of the Java 2D
  renderer as well as OpenGL. it's unfortunate, but it's all we can
  do. so after messing with pixels[] for the main surface, or doing
  the same with an image, call updatePixels() to mark the entire image
  as modified, or call updatePixels(x, y, w, h) to update just a
  portion (this is currently no faster, but later will represent an
  optimization). 

- you'll also need to use loadPixels() on any PGraphics object 
  before reading its pixels and messing with its pixels[] buffer.

- using size() with actual numbers, as opposed to variables, is
  strongly recommended. there's no reason to use size(WIDTH, HEIGHT)
  because the variables width & height can be used for the same
  purpose after size() has been called. this helps the "export"
  command and also becomes very important with opengl.

- rendering... this release represents a significant change to how
  rendering is handled. all of the graphics has been split into
  multiple classes, which are: 

  PGraphics     2D rendering with Java 1.1 
                this is the old renderer, but it has been semi-disabled
                in the current release. this means that things won't 
                draw properly (or at all) in 2D in most web browsers 
                (where the java plugin is not installed). this renderer
                will no longer support smooth() and noSmooth().

  PGraphics2    2D rendering for systems using Java 1.3+ 
                this is used dynamically whenever the applet detects
                that it is running on a Java 1.3+ system. 
                it is an entirely new, and *complete* renderer based
                on Java2D. this was a shortcut to get a renderer that
                worked properly on the vast majority of machines in
                our target audience (courses, beginners, developers) 
                until i have time to complete the 1.1 renderer (so
                that exporting to the web works again). basically, 
                i've sold out, in hope of ever reaching 1.0.

  PGraphics3    3D rendering in Java 1.1
                this is loaded when the depth() command is executed
                inside of setup(). any applet requiring 3D must now
                explicitly state depth() inside setup(). the renderer
                is composed of the 3D components from the old
                renderer, although it's using sumea sami's newer
                triangle rendering, meaning that things are much
                faster than before (although textures are a little
                fuggly). there are no plans to support smooth() in 
                this mode. for smoothing, use the OpenGL renderer.
                stroke caps/joins will also probably not work in this 
                mode (lines are 2D objects, how do you put a stroke
                on a 3D object?), but that hasn't yet been fully
                determined.

  PGraphicsGL   OpenGL renderer for use in Java 1.3+ 
                jogl requires java 1.3, and this rendering option can
                just be selected from a menu. this handles both 2D
                and 3D and will actually ignore the depth() command
                (though you should still use it with opengl apps for
                good practice). 

  PMethods      an interface for plug-in file-based renderers.
                for instance, to write a postscript renderer, one
                need only implement the "PMethods" interface with
                your class. then, at the beginning of draw(), use:
                recordFrame(psRenderer);
                which will echo all rendering calls to that
                class until the end of the frame. this handles
                writing to files, we won't be supporting plug-in
                visual renderers in Processing 1.0 (unless you want
                to use this to open up a separate window or something
                weird like that)

  if you're curious, or filing a bug report, you can always check what
  the current rendering engine is by using: println(g.getClass());

- very exciting: strokeWeight(), strokeCap(), strokeJoin() et al 
  now work when using 2D and using Java 1.3 or higher. these will 
  eventually work in Java 1.1 for 2D as well. 

- the new renderers may change the speed of some things significantly. 
  for instance, using text on java 1.3 when depth() hasn't been called
  (PGraphics2) may be far slower than before. or using images in the same
  situation may require much more RAM. on the other hand, smoothed shapes
  and general drawing in the same situation might be much faster.

- i'm trying to think of a means to switch between the java 1.3 version 
  of the 2D api and the 1.1 version in case people want to force use of
  the old one (once it's working again). we'll see.

- presumably the separation of the rendering engines also means that
  one could post a web applet that doesn't include the 3D rendering
  code if your applet is only 2D (or vice versa).

- pmouseX and pmouseY have returned and are better than ever.

- firstMouse boolean variable added, which is set 'true' when the
  mouse gets its first legitimate mouse coordinate. naming for this
  var will likely change in a future release.

- arc() command has been added. it's just like ellipse:
  arc(x, y, w, h, start, stop); 
  and uses ellipseMode() for its placement.

- circle() has been removed. it was a dumb duplication with ellipse().
  it's not as though we have a square() function to go with rect().

- because of the separation of the 2D and 3D renderers, it should be
  possible to create much larger PGraphics objects and for them to use
  far less memory than before. 

- light() commands work, though things seem to look super ugly by
  default. they're more correct when using OpenGL, and perhaps if
  placed more explicitly, you may get better results.

- the alpha() command that sets the alpha mask is now called
  mask(). this is to avoid the name clash with the red(), green(), 
  blue(), alpha() functions. 

- imageMode(CORNER) and CORNERS are the only valid image modes. 
  imageMode affects get(), copy(), blend(), etc so it was just too
  weird to have the CENTER functions operating in that mode. results
  would have been very strange and unexpected.

- box() and sphere() should be working again with opengl

- die() is a newish internal function that's used whenever exceptions 
  or internal errors occur. you can make your own error handler by
  overriding die(String s) and die(String s, Exception e) if you'd
  like your applet to do something smarter than just halting. we're
  moving to where exceptions and errors are handled in a more
  consistent way, and that no p5 methods will require try and catch
  style exception handling (for advanced users who want it, they can
  use the java equivalents of the various PApplet methods). 


ide fun

- forgot to mention in rev 75 that double-clicking a .pde file on the
  mac will now launch processing with that sketch. someday windows will
  do this too. someday...

- i've replaced the cvs version of jikes that we'd been using with
  jikes 1.22, a real release, and the very latest. it's only 2 or 3MB
  (instead of 8 or 9MB) and crashes much less. yay! the reason we can
  make the switch is that 1.22 supports -target 1.1 again (it had
  disappeared in some of the previous releases, and it's absolutely
  essential for p5).


serial library

- serialEvents are now fired after each byte has been received. 

- added buffer(int count) method to Serial to set the number of
  bytes to receive before firing a serialEvent.

- added bufferUntil(int whatByte) method to Serial that will buffer 
  until that byte has been received and then call serialEvent().

- these changes were simple code but haven't been tested, so they
  may be prone to errors. let me know.

- just one function (prompt() which will bring up a list of serial 
  ports in a nice window) remains to finish the Serial library, 
  everything else is considered complete (barring a revolt by the 
  itp physical computing guys). 


known bugs

- the examples have not been updated. they're getting pretty crufty, 
  but i've been making such a mess of the api that i've made casey
  hold off until things settle down a bit before updating.

- curveVertex() is temporarily broken in this release.

- export to web is temporarily broken in this release for machines
  that don't have the java plug-in installed. this includes 60% of
  Windows users on the web, and anyone using Mac OS 8 or 9. the applet
  will export, but will turn up mostly blank on machines with Java 1.1.
  to publish things to the web, you might want to use an earlier
  release, or force people to upgrade their java vm somehow.

- windows coming up at the wrong size or with the wrong placement:
  make sure you're using size(nnn, nnn) where nnn are actual
  numbers. if you're doing that and still seeing trouble, please
  report how to reproduce.

- on macosx (maybe windows too?) applets sometimes come up with their
  top 20 pixels or so missing. working on a fix.

- when using opengl, the "Using ATI workaround..." error message isn't 
  really an error, it's just something that jogl spits out. fret not.
  same with that "can't get focus" error that often shows up on the
  mac. i don't think there's anything i can do about either.

- lighting is fuggly. i have a feeling that normals aren't being set
  up properly, partly because that code has gotten no love for a long
  time and everything around it has changed.

- several reported ide bugs with "save as", "hide" and others remain. 
  i hope to fix these in the next release.

- tint() does not work properly in depth() mode and using the 
  processing renderer (PGraphics3).


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0076

this was a quick release that fixed launcher issues on both mac os x
and windows. it meant being distracted uploading a new build during
part of the third quarter of the super bowl, but you guys are just
that important. luckily the patriots still won.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0075

* DON'T USE THIS RELEASE IF YOU'RE ON ANY SORT OF MEDICATION *
this is truly an alpha release, or more like a "nightly build."

i'm posting this release early so that people can play with
opengl. if you aren't one of those just *dying* to get started with
gl, wait until a few days or so when i can get 0076 out that irons out
some of the nastier bugs. you needn't post bug reports on things that
are broken, since i know many many things are horked. a massive number
of changes have happened in this release and i wanted to get it posted
because i was starting to lose track of them all.


things that i know or suspect are broken: 

- the examples have not been updated

- windows sometimes pop up at the wrong sizes.

- opengl doesn't behave properly in static/draw mode (things aren't
  sized properly).

- the processing renderer has taken some steps backwards, and things
  like ellipses might be broken.

- lots of random tidbits in rendering not quite working. 

- drawing images in opengl whose pixel buffer has been edited won't
  work quite right.

- text may pop up sized incorrectly.

- noLoop(), framerate(n), redraw() are not yet supported for opengl

- and much much more!


general 

- you now need to use the command depth() to enable 3D. noDepth()
  shuts it off and moves back to 2D-only (with optimizations). support
  for this is incomplete. 

- hanging bug should now be completely eliminated.

- under sketch, a "renderer" menu that lets you select OpenGL or the
  processing renderer. 

- preprocessor makes all methods "public" that aren't specified
  private or protected. this makes things easier for library events
  (see libraries section below) and things like setup/draw.


core

- added focusGained() and focusLost() events

- added beginShape(TRIANGLE_FAN)

- removed pmouseX and pmouseY because they can't be used 


libraries

- very simple sound api has returned. command is "loadSound". 1.3+ only
  for rev 75, will work in 1.1 as well in 76+.

- serial.last() and serial.lastChar() get last byte in buffer

- library events have returned, if (public) void serialEvent(PSerial)
  is defined in the host applet, it will receive events each time
  something happens on serial. same for:
  cameraEvent(Camera c), movieEvent(Movie m), clientEvent(Client c), 
  serverEvent(Server s, Client c), soundEvent(PSound s)

- PMovie.length() is now PMovie.duration()


ide goodness

- NOTE! your prefs will be lost in this release, unless you move them
  by hand. preferences now live in a "proper" location: 
  ~/Library/Processing on macosx and 
  Documents and Settings/username/Application Data/Processing on winxp
  this will get rid of the localization issues on non-US versions of
  these operation systems. 
  the info is read from the os (on mac) and registry keys (on
  windows), and is also used to place the Processing sketchbook inside
  ~/Documents on mac or ~/My Documents (or whatever it's called in the
  current language) on the pc.

- rename & delete have returned.. when renaming/deleting on the
  first tab, it renames or deletes the entire sketch.

- saving a read-only sketch now defaults to the sketchbook
  (rather than the same read-only location it was coming from)

- build fixes.. preproc gets built properly, and dmg for osx

- cosmetic (single pixel layout issues) fixed on osx

- no more resize box annoyance in the editor on osx

- fixes to the horizontal scrollbar in the editor 
  (became ever-present a release or two ago)

- find/replace cleaned up/tweaked up a bit


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0074

- fixed an issue with text and shapes fixing in a bad way (paul
  fishwick's 'clock' bug)

- removed a zbuffer precision hack that was drawing lines above
  everything else

- includes new icons designed by florian


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0073

fixes to several nastier bugs (hopefully) 

- the hanging bug may be fixed in this release

- loadImage() should no longer re-download the entire jar file

- libraries are built as 1.1 code like everything else, so things with
  particles can be exported again

- fixed a minor bug that prevented non-smoothed fonts from being 
  created in the font builder on macosx due to apple's creativity 
  with the java spec


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0072

bug fix release, most major being that the code folder should now be
working again, and error messages from libraries may have an easier
time of propogating upwards.

BUGS

- code folder works again.

- the code folder hanging bug *may* have been fixed.. either by a fix
  from francis li, or by the error message changes by me. keep your
  fingers crossed.. 

- loadImage() is broken on some machines.. a small hack has been
  introduced to get around this, hopefully it doesn't break for
  everyone else. as a result of the hack, the 'cache' setting on
  images is temporarily ignored.

- hint()/unhint() settings were static variables, meaning that they'd
  stick around per processing session, which is too long. 


API & STUFF

- g.m00, g.m01 etc are now public

- error message shows up when a library isn't available


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0071 

bug fix release, clears up several things with text and other tidbits 
found by all y'all beta testers. if this is your first release 
since 68 or 69, you should read about the changes made in rev 70.


BUG FIXES

- suppress "bad file descriptor" error on mac os x

- properly alphabetize the sketch menu (ignore upper/lower case)

- fixed export on macosx

- multiple tabs no longer causes things to run in another java vm.
  (unless the other tabs are for .java files)

- dim 'rename' on the first tab, since it cannot be renamed.

- "save as" now properly updates the tabs

- don't let people "save as" a sketch inside itself.

- removed the resize box for applets (since they can't be resized anyway)

- cursor() functions are now usable (public) again

- pre, post & draw now work with libraries


CHANGES

- the 'key' variable has been made into a char, so that things like 
  println(key) makes more sense (and in keeping with java's getKeyChar)

- added a little gap to the left of the editor frame
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1097363967;start=0

- changed "new file" to "new tab" for clarity

- "add file" of a .pde or .java file already inside the sketch folder
  no longer produces an error, it just updates the tabs.

- "save as" defaults to the current sketch location and name

- text(x, y, w, h) now uses the current rectMode() for placement. 

- align left, center, and right are now properly implemented for text().

- PFont2 has been merged back into PFont. java 1.2+ specific features 
  that had been sequestered to PFont2 are now handled through reflection.


CHANGES I FORGOT TO MENTION FOR REV 70

- 'online' is now a boolean instead of a function that returns a
  boolean. this was actually in 0070 but i forgot to mention it

- also from 70, people who used triangle_count, it's now called
  triangleCount.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0070 - MEGABUCKET - 29 September 2004

YOUR CODE WILL ALMOST CERTAINLY BREAK IN THIS RELEASE, READ THE
"MAJOR CHANGES" SECTION BELOW TO SEE HOW TO FIX IT. this is one of the
most major releases to date in terms of things that have been changed,
fixed, or revised. unfortunately, there will still be api changes
before beta. if you don't want to deal with your code breaking, then
wait until the beta. 

as of this release, we're also returning to more truly "alpha" status
for releases. from 70 until beta, releases will happen more frequently
(hopefully) and increment more quickly. however, we won't be
announcing a new release to the greater public until beta, at which
time we'll be done breaking everyone's code. more details here:
http://processing.org/discourse/yabb/YaBB.cgi?board=Collaboration;action=display;num=1096489132


major changes: (things that break your code) 

- if you have a program that uses "void draw()" to draw a static
  image, you need to add the line "noLoop()" to setup or to the first
  line of the draw method itself.

- for any programs that use "void loop()" you need to change its name
  to "void draw()". 

- BImage, BFont, BGraphics, etc are all PImage, PFont, PGraphics.
  you'll need to rename them in your program.

- libraries will almost certainly need to be rewritten for this
  release. we're working with amit on an update to sonia and several
  other libraries will be included in future releases.

- mouse and key events are now properly queued, meaning that functions
  like mousePressed() and keyPressed() will be called at the *end* of
  your draw() method. this means that you can "draw" inside of those
  methods, just note that it'll happen after all other drawing.
  http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1079555200;start=0

- CENTER_DIAMETER has become CENTER

- replicate() in PImage is now called copy(). other changes in PImage
  as well, see the ref: http://processing.org/reference/PImage.html

- curveSegments and bezierSegments are now called curveDetail and 
  bezierDetail.

- net, serial, and video are completely different. see the libraries
  reference: http://processing.org/reference/libraries/index.html
  their examples have also been updated.

- quicktime is no longer required to be installed on windows

- the 'fonts' folder has been removed. these were old (had no special
  characters like umlauts and whatnot) and of questionable copyright
  status, so we took them out. you can create fonts to your heart's
  content using the "Create Font" option.

- history has been (temporarily?) removed. in the meantime under the
  "Tools" menu is an option named "Archive Sketch" which will zip up
  the contents of the current sketch folder into a numbered archive.
  the numbers will automatically increment yoursketch-001.zip,
  yoursketch-002.zip etc.

- key events for things like arrow and whatnot should use 'keyCode'
  instead of 'key'. so 
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096304533;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096304779;start=0

- the sizing/spacing of text() has changed! a combination of small
  bugs inside text() and the "Create Font" tool meant that text was
  not sized properly. it's now been tweaked to more closely resemble
  the sizing used by the platform. for  instance, 48 point type of a
  font in illustrator looks like 48 point type of the same font in
  processing. 


additions: 

- hex(), binary(), unhex(), and unbinary() functions to make your
  geeky debugging sessions that much happier. 
  color c = #ffcc00;
  println(hex(c));

- support for text in a box: text(String text, x, y, width, height);
  this is like the text box in adobe illustrator or programs like 
  that, note that the x, y where it starts will be the top of the
  line of text, not the baseline of the text as is the case for
  the other text() functions.

- operators for int(), string(), char(), and other basic types.
  String s = "10.2";
  float f = float(s);
  making it simpler to do conversions between types.

- these operators also work on arrays:
  String s[] = { "10.2", "3.2" };
  float f[] = float(s);

- looping can be turned on/off via loop() and noLoop(). the default is
  that loop() is in use. there's also a redraw() function that you can
  use in noLoop() mode which lets you redraw the screen once (i.e. if
  you want to update after a mouse event)

- multiple files! you can create new tabs that store separate classes
  and pieces of code. how happy. however, the tabs are only separators
  for your code.. the code is all still added to the main class (the
  first tab) the same way as if the code had appeared all jammed into
  that first file. 

- for advanced users, additional tabs can be java files, which, unlike
  the tabs described above, will *not* be embedded into the main
  applet class. to create  a java file, include ".java" at the end of
  the new file's name when creating the new tab. also note, however,
  that the java files will not go through the preprocessor, meaning
  that 0.1 will have to be 0.1f if it's a float, and some other
  tidbits like that.

- the "examples" folder for sketches is read-only. "save as" of an
  example won't save it inside the examples folder.
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096295037;start=0

- read-only sketches (i.e. from a CDROM) are now handled properly.

- you can save sketches anywhere you want. and there's a preferences
  dialog that lets you set the location of your sketchbook. that
  annoying "sketchbook/default" thing is no more. in preferences, 
  you can also set whether processing should ask your for the file
  location & name for each new sketch, or if you just want the old
  behavior (automatically created sketch named sketch_yymmdd).
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096295141;start=0

- holding down 'shift' and hitting the 'new' button will do the
  opposite behavior for "new sketch" (i.e. if "prompt for sketch name"
  is selected in preferences, it won't prompt, and vice versa).

- preferences and sketchbook are now stored in: 
  macosx: /Users / yourusername / Documents / Processing
  windows: Documents and Settings / yourusername / My Documents / Processing
  linux: home directory -> .processing 
  you can change the sketchbook location, but this folder will
  continue to be used to store preferences.txt and other files that
  may be needed in the future.

- a default template can be used for exporting applets. copy
  applet.html from processing's "lib" folder to your sketch's folder,
  and modify it to your heart's content. each time you re-export, your
  html file will be used instead of the standard one.
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096297644;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096297669;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096297787;start=0

- javascript support is now handled by saying
  "Import Library -> javascript"

- for advanced users, what was formerly called 'bagel' is now in
  package processing.core. we'll refer to this as "core", and the
  files can be found in lib/core.jar of the processing folder. no more
  pde.jar and separate extraction methods for 1.1 code and 1.3 code to
  be used with other IDEs.


minor additions:

- tweaked up the menus. the "Tools" menu will be user-expandable in a
  future release. 

- added some better error messages for common compiler errors.

- sketches with a large 'data' folder will run better
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096300630;start=0

- added a preference for auto-cleaning the sketchbook.

- the console is emptied each time a new sketch is opened.

- PImage.filter(GRAYSCALE) will make an image grayscale. 
  PImage.filter(BLACK_WHITE) does something else fascinating.

- hint(NO_DEPTH_TEST) will disable the zbuffer (unhint will re-enable)
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303102;start=0

- printarr() works like println() for arrays.. it just prints out a
  long list of the array contents.

- added a lerp() function
  http://processing.org/discourse/yabb/YaBB.cgi?board=Programs;action=display;num=1083289030;start=0

- added angleMode(DEGREES) and angleMode(RADIANS)
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303599;start=0

- noiseSeed and randomSeed help make random() less random.
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096304206;start=0

- added a boolean variable called 'focused' that is set to true when
  your applet has focus. use this to tell the user "click inside the
  applet" or whatever.

- saveFrame no longer dies when it includes folder names. it also
  saves to the sketch folder.
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303714;start=0

- inputFile() returns a File object after prompting the
  user. outputFile does the same after asking "save as..."

- for those dismayed by things flying into the camera.. we regret that
  this release still does not properly implement clipping planes. in
  the meantime, an option has been added to avoid some of the mess. 
  it's incomplete and doesn't always work, but adding
  hint(NO_FLYING_POO) to your code might improve the situation. 

- savePath(String filename) returns the full path name for a file to
  be saved relative to the sketch directory. createPath(File dir) will
  create all necessary subfolders in a long path. 


bug fixes:

- PGraphics will now properly draw as an image
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096304847;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1080671926;start=0

- tab key should be working again
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096304457;start=0

- fixed several bugs with things like color(), red(), etc. color() now
  works outside functions, but assumes that you mean rgb/255. 
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303467;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303540;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303568;start=0

- fixed some oddness with lines fading out
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303365;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303406;start=0

- net is completely rewritten and now works properly.

- fixed bug in polygon filling
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303189;start=0

- tweaks to make video less of a headache
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096302179;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096302509;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096302580;start=0

- lots of fixes to "Create Font".. plus better multi-language support 
  for non-ascii characters (i.e. Japanese) 
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303772;start=0

- fixes to random()
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096302935;start=0

- fixed some nasty find/replace bugs
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096297457;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096297524;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096297575;start=0

- sketchbook is now sorted properly
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096297115;start=0

- beautify now pays attention to your tab settings
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096294561;start=0

- re-adding a file to the data file no longer destroys it
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096294854;start=0

- fixed a goofy compiler OutOfMemoryError when no return on the last line
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096297246;start=0

- fixed compiler error messages to not get jammed onto a single line


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0069 - 28 march 2004

this is yet another bug fix release, which repairs several things, 
mostly things that i've run into over the past few as i've been doing
a lot of coding with processing, and some things that were really
causing trouble for folks on the board. basically i was bummed out to
see bug reports on things that i had fixed, or could fix semi-easily.

i'm not releasing linux for this one for lack of time. it will also
not be listed (at least not initially) as the default download on the
page, since it hasn't been tested heavily: this release might not be
particularly stable, i threw it together because i've been working
with p5 a lot lately and had several fixes, but didn't have the time
to do the usual "vetting" process with the testers. if you have any
weird problems, just use 0068.

it's likely that a handful of the examples are also broken because of
the api changes.. my apologies.. 

there will likely be a couple more releases before the "big" 
release that i still need a better name for than "the big release".
suggestions are welcome.


[ ide fixes / changes ] 

- fixed the ever-annoying problem of using video with a 'code' folder.
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077900024
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1069724180;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073523928;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076679293;start=0
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076649501;start=0

- added an option to pde.properties so that users can set the amount
  of memory to for java mode applications. currently it's set to:
  run.external.memory=128
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1078699341;start=0

- wheel mouse should now be working when using java 1.4 on the mac.
  thanks to jonathan feinberg for the fix!

- lots of fixes to the font builder. remembers previous settings,
  doesn't die on small fonts

- added CFBundleIdentifier to mac version so that it's more osx savvy.
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1078739015

- *temporarily* disabled "replace all" because it's doing more harm
  than good as of now. it will be back in the next release, i just
  didn't have time to repair it for this one, and since it's
  destructive, that's bad.
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076740626
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1080213711


[ bug fixes ] 

- macosx was flickering several times on startup, no more. this was
  also the cause of some other threading weirdness across other
  platforms. this probably still needs a little work, but it's better.
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073111031

- some internal fixes to how camera modes worked.. screenX was
  slightly broken for some circumstances

- min() and max() with three variables were broken. no longer.
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076804172

- the constant for CONTROL wasn't set properly 
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077058788

- fixed a bug when using non-ascii chars with fonts
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077475307;start=0

- fixed a bug where split() would throw an Exception on an empty string
  http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077664736

- fix bug where single pixel points were ignoring their alpha values


[ api changes & additions ] 

- loadStream() has become openStream(), for better consistency. 

- toInt(), toFloat(), to String() functions.. 
  ** the naming of these are subject to change..     **
  ** we haven't decided on a proper naming for them! **

- splitStrings() becomes just split().. splitInts() goes away. 
  splitInts becomes -> toInt(split(someString, ','));

- split() now handles multiple chars, i.e. 
  split(someString, ", ") will split on any number of comma or space
  chars in between (sort of a regexp but not really).
  to split on commas and any amount of whitespace between, use:
  split(someString, "," + WHITESPACE);

- WHITESPACE is a String constant that includes the normal whitespace
  chars (space, tab, linefeed, carriage return, etc) plus the unicode
  "non breaking space" char.

- chop() function that also handles the unicode non-breaking space
  character (found commonly on the mac)

- text(x, y, z) instead of just text(x, y)

- printMatrix() and printCamera() print the current (object space)
  transformation matrix and the camera (perspective) matrix. 

- nf() and nfs() now work on whole arrays of numbers

- nfp() is like nfs() but shows a plus sign instead of a space

- code from toxi to support .tga files in loadImage()
  http://processing.org/discourse/yabb/YaBB.cgi?board=Programs;action=display;num=1078459847;start=0

- bagel code is getting less 1.1 vs. 1.3 specific, thanks to additions
  from jonathan feinberg.


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


ABOUT REV 0068 - 2 february 2004

this is a bug fix release, not the planned version of 68 that supports 
multiple files and all sorts of amazing magic. it will be the last release 
for the next two months while ben finishes his dissertation. 


[ bug fixes ]

- concave/convex polygons are now handled properly. just don't make
  the last point of the polygon be the same as the first, otherwise
  you'll confuse the tesselator. however! there is a bug (that showed
  up during the release process.. ugh) that when smoothing is enabled,
  sometimes thin lines will be visible within a concave polygon. this
  will just have to be fixed in a future release. however, as long as 
  stroke() is enabled on the polygon, the lines should not be visible.

- fixed a bug that made the p5 environment freeze when an applet crashed

- fixed problem with the environment locking up when the console got
  too full. the console now has a maximum number of lines, set to 500 
  by default. the console is also cleared on each run, so that doesn't 
  cause trouble anymore. you can change both settings in pde.properties.
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1075759355

- fixed a find/replace bug that made the thing lock up when changing
  case on a search. oops.
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1075416670
  http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1075416741

- fix to the noise() function by toxi (thanks toxi!)

- fix to the sphere() function by toxi (yay toxi!)

- font builder should update when the size for the font is changed
  (so long as the size itself is valid)

- font builder bug, was cutting off parts of letters

- better loadStream support when bagel is used by itself


[ features ] 

- added support for non-ascii characters in the font builder
  http://processing.org/discourse/yabb/YaBB.cgi?board=Programs;action=display;num=1067596427

- added an option to disable smoothing on font creator

- better support for international characters inside the development
  environment. 

- toxi added sphereDetail(), to set the level of accuracy on spheres


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 


in spite of their historical feel good campiness, i've removed the
notes from earlier releases because this file was getting out of hand. 
