Files
processing4/processing/build/shared/revisions.txt
2005-04-18 00:13:40 +00:00

1409 lines
54 KiB
Plaintext

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 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.