0102 core
X no changes, windows-only release to deal with processing.exe


0101 core
X add dispose() call to the shutdown part of PApplet


0100 core
X user.dir wasn't getting set properly
X when graphics can be resized, resize rather than creating new context
X change savePath() et al a great deal, include better docs
X   http://dev.processing.org/bugs/show_bug.cgi?id=199
X   straighten out save() and saveFrame()
o   use File object for when people know what they're doing?
X   same issue occurs with pdf and creating graphics obj

get initial version of pdf working
X get rid of beginFrame/endFrame echo to recorders?
X   that way begin/end can just be where the recorder starts/stops?
X recordRaw is really confusing.. 
X   when to use beginFrame/endFrame
X   is beginRaw/endRaw really needed?
X   seems to be a problem that it's an applet method
X   but then it's called on the g of the applet
X   but then it's the recorderRaw of that g that gets it called.. 
X how to flush when the sketch is done
X   inside dispose method? explicit close?
X   call exit() at end of pdf apps? exit calls dispose on gfx?
X beginRecord() and endRecord() so that record doesn't stop after frame?
X enable PGraphicsPDF for inclusion
X write documentation on images (they suck) and fonts (use ttf)


0099 core
X removed playing() method from PSound
X integrate destroy() method from shiffman as dispose() in PSound2
X ComponentListener is probably what's needed for resize() 
X   make sure that components can be resized properly via size()
X   http://dev.processing.org/bugs/show_bug.cgi?id=209
X   or that it properly responds to a setBounds() call
X calling size() elsewhere in the app doesn't quite work
X   A second call to size almost works. 
X   The buffer apparently gets allocated and saveFrame saves the 
X   new size but drawing appears to be disabled.
X   http://dev.processing.org/bugs/show_bug.cgi?id=243


0098 core
X change recordShapes() to just record() and recordRaw()
X width, height set to zero in static mode
X   http://dev.processing.org/bugs/show_bug.cgi?id=198
X   probably only set when resize() is called, and it's not happening
X   be careful when fixing this, bugs 195/197 were a result:
X   http://dev.processing.org/bugs/show_bug.cgi?id=195
X   http://dev.processing.org/bugs/show_bug.cgi?id=197
X PSound.play() won't play the sound a 2nd time
X   (have to call stop() first)
X   http://dev.processing.org/bugs/show_bug.cgi?id=208


0097 core
X no changes, only export to application stuff


0096 core
X set applet.path to user.dir if init() is reached and it's not set
X add DISABLE_DEPTH_TEST to PGraphics3
X   need to document this somewhere
X   also need to add to PGraphicsGL
X access logs are being spammed because openStream() gets a 404
X   the default should be to check the .jar file
X openStream() doesn't work with subfolders
X   http://dev.processing.org/bugs/show_bug.cgi?id=218
X screwed up movie loading paths (quick fix)
X   http://dev.processing.org/bugs/show_bug.cgi?id=216
X additional cleanup in the Movie class
X make path thing into getPath() or something?
X   sketchPath(), dataPath(), savePath(), createPath()
X applet shouldn't be resizing itself
X   opens at correct size, then makes itself small, then large again
X setup() mode apps often don't open at the correct placement
X   because of their resizing
X check into bug where applet crashing if image not available
X   probably need to add a hint() to make things not halt
X loadBytes() and openStream() et al need to return null
X   loadImage() can too, but print an error to the console
X "not available in P3D" should read "OPENGL" in opengl lib
X keypressed ref: repeating keys
X   also remove "no drawing inside keypressed"
X text block wrap problem with manual break character (\n)
X   http://dev.processing.org/bugs/show_bug.cgi?id=188

draw mode issues
X when run externally without a draw, applets will exit immediately
X   when run internally (no code folder or .java files) will just wait
X shouldn't quit draw mode apps immediately
X   otherwise something gets drawn then the applet exits
X   should instead use exit() when they need to exit
X NullPointerException when no draw()
X   http://dev.processing.org/bugs/show_bug.cgi?id=210
X window closing immediately with library imports
X   http://dev.processing.org/bugs/show_bug.cgi?id=204
X check into loadImage() with jars bug, very frustrating
o   when using loadImage() on a jar, turn off "no cache" option?
X image no load halts the program (rather than returning null)
X note in the reference: png images work with java 1.3+
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=WebsiteBugs;action=display;num=1125968697
X   add bug re: gif image break missing to revisions.txt
X   http://dev.processing.org/bugs/show_bug.cgi?id=217

image pile
X get loadImage() to work properly with data folder
X   should probably use the code from loadStream
X   and the url stuff should be an alternate method altogether
o loadImage() seems to be caching everything from the jar
X   http://java.sun.com/developer/technicalArticles/Media/imagestrategies/index.html
o   make a note of how to disable this
o   http://processing.org/discourse/yabb/YaBB.cgi?board=Programs;action=display;num=1078795681
o bizarre image loading error with c_Rollover.zip
X   couldn't find/replicate this
o   read uncompressed tiff
X   read uncompressed tga files.
X     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1081190619
X     http://processing.org/discourse/yabb/YaBB.cgi?board=Tools;action=display;num=1066742994
o updated png encoder
o   http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1083792994

older stuff, no longer an issue
o don't cache stuff from loadStrings and others
o   mac java vm won't give up old version of file
o   or use setUseCaches(false)
o too many push() will silently stop the applet inside a loop
X allow save(), saveFrame() et al to properly pass in absolute paths
X   (so that it doesn't always save to the applet folder)
X   could require that save() takes an absolute path?
X loadImage must be used inside or after setup
X   either document this and/or provide a better error message
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Programs;action=display;num=1060879468
X expose function to write tiff header in PImage (advanced)
X   helps with writing enormous images
X tag release 93 (francis thinks it's rev 1666)


0095 core
X undo the fix that causes the width/height to be properly set 


0094 core
X fix bug that was causing font sizes not to be set on opengl
X   http://dev.processing.org/bugs/show_bug.cgi?id=174
X apply fix from toxi to make targa files less picky
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1127999630
X "folder" has been renamed to "path" to match savePath().
X added "dataPath" to return the full path to something in the data folder
X savePath should maybe be appletPath or sketchPath
X   because can be used for opening files too 
X   (i.e. if needing a File object)
X width, height set to zero in static mode
X   probably only set when resize() is called, and it's not happening
X g.smooth is always false in opengl
X   http://dev.processing.org/bugs/show_bug.cgi?id=192

o triangleColors are different because they're per-triangle
o   as opposed to per-vertex, because it's based on the facet of the tri
X make vertexCount etc properly accessible in PGraphics3
X   so that people can do things like the dxf renderer
X also have a simple way to hook in triangle leeches to PGraphics3
X   this exists, but needs to be documented, or have accessors


0093 core
X upgrade jogl to a newer rev to fix osx "cannot lock" issues
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1118603714
X   http://192.18.37.44/forums/index.php?topic=1596.msg79680#msg79680
X faster blur code contributed by toxi
X filter(ERODE) and filter(DILATE) contributed by toxi
o textAscent() should probably be g.textAscent instead
o   more like textLeading() etc
X   nope, because it requires grabbing the font metrics and other calculations
X bezierDetail, curveDetail made public
X added textMode(SHAPE) for OPENGL
X error message saying that strokeCap and strokeJoin don't work in P3D
X textMode(SHAPE) throws ex when drawing and font not installed
X fix a bug with filename capitalization error throwing
X add NO_DEPTH_TEST to PGraphics3
X java 1.4 code snuck into PApplet, causing problems on the mac
X   http://dev.processing.org/bugs/show_bug.cgi?id=146
X prevent PGraphics.save() from inserting a file prefix
X   so that people can use absolute paths
X   or add a version that takes a file object

nixed or fixed in previous releases
X textMode(SCREEN) having issues on Mac OS X
X   seem to be problems with updatePixels() on the mac
X   appears to run asynchronously
X move zbuffer et al into PGraphics so that people don't have to cast to P3
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Contribution_3DOpenGL;action=display;num=1116978834
o noLoop() is behaving strangely
o   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1116002432;start=0


0092 core
X rle-compressed tga save() method added by toxi
X   also version that only saves RGB instead of ARGB
X proper/consistent api to access matrices in PGraphics/PGraphics3
X   first use loadMatrix(), then m00, m01 etc
X   find the post on the board and make a note of this
X proper api for access to Graphics2D object in PGraphics2
X   just add the current "g2" thing to the faq
X   and make a note of it on the suggestions board
X vars like cameraX etc need to be in PGraphics
X   otherwise g.xxxx won't work
X   how far should this go? vertices etc?
X   vertices not included because switching to triangleImpl and lineImpl
X fix for copy() in java2d to make things a little speedier
X make PApplet.main() for java 1.3 friendly (Color class constants)
X remove call to background() in PGraphics2
o change PGraphics to PGraphics2 
o   or not, because PGraphics has all the base stuff for 3D
o   change PGraphics2 to PGraphicsJava or PGraphicsJava2D
o   maybe wait until the new shape stuff is done?
X move font placement stuff back into PGraphics?
X   figure out how to get regular + java fonts working
X   use that do drive how the api is set up
X optimize fonts by using native fonts in PGraphics2
X   especially textMode(SCREEN) which is disastrously slow
X   in java2d, can quickly blit the image itself
X   this way, can isolate it for gl too, which will use glBitmap
X   danger of this setup is that it may run much nicer for the author
X     i.e. with the font installed, and then super slow for their users
X add "smooth" as a field inside the font file
X   and when smooth field is set, make sure JAVA2D enables smoothing
X   since otherwise smooth() has to be called for the whole g2
X rob saunders contributed a fix for a bug in PImage.copy()
X   the wrong boundaries were being copied in the code
X fix bug where noLoop() was waiting 10 secs to call exit()
X add ability to draw text from the current text position


0091 core
X change to synchronization to hopefully fix some update issues
X curveVertex() problem in P2D when > 128 points fixed
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115856359;start=0
X for present mode, need to set a default display 
X   currently crashes if only --present is specified w/o --display
o make the 1.4 code in PApplet load via reflection
X   doesn't appear necessary with 1.3 applets
o   or is some of the stuff usable in 1.3 but not all?
o     ie. the device config classes exist but not the set full screen method
X currently some bugs in the main() because it's not sizing applets 
X   if running in present mode it works ok
X   but that also needs its display set.. argh
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115834600;start=0
X add exit() function to actually explicitly quit
X   scripts will just require that people include exit at the end
X esc should kill fullscreen mode (actually now it just quits anything)
X   can a key handler be added to the window? not really
X   add an escape listener to the applet tho.. but will it work with gl?
X   how can this be shut off for presentations?
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114027594;start=0
X present mode wasn't reading the stop button color
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Suggestions;action=display;num=1116166897;start=0
X cleaned up the createFont() functions a little
X java 1.3 required message isn't clickable
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1117552076


0090 core
X added arraycopy() function that calls System.arraycopy()
X   also the useful shortcut fxn


0089 core
X no changes since 88


0088 core
X createFont crashes on verdana (win2k)
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115258282;start=0
X made ceil(), floor(), and round() return ints instead of floats
X fix for PSound: Unsupported control type: Master Gain 
X   just shuts off the volume control
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115467831;start=0

cleared out / completed in previous releases
X typed version of expand() and contract()
o fishwick bug with text() and shapes
o   ellipses no longer completed when g.dimensions = 2 or 3,
o   or not even drawn.. what a mess.
X go through and figure out what stuff to make public
o depth testing of lines vs text is problematic
o   probably need to patch in an older version of the line code
o   use depth()/noDepth() to handle depth test
X on exceptions, use die to just kill the applet
X make the file i/o stuff work more cleanly
X   if people want to use their own file i/o they can do that too
o this could also be contributing to the hanging bug
X static applets need to be able to resize themselves on 'play'
X figure out what to do with static apps exported as application
X   needs to just hang there
o scripts (w/ no graphics) will need to call exit() explicitly
o   actually.. just override the default draw() to say exit()
X may need a fileOutput() and fileInput() function
X   to take care of exception handling
o or maybe scripts are just handled with a different method? (yech)
o   or maybe setup() can actually throw and Exception?
o   but that's inserted by the parser, and hidden from the user?
o implement size(0, 0) -> just doesn't bother doing a frame.show();
o   too abstract, just have draw() call exit by default
o   so if nothing inside draw, just quits
o   make properly exit after things are finished
o still some weirdness with thread flickering on the mac
o   and frenetic display updates on the pc
o move really general things out of PConstants (X, Y, Z..) ?
X add something to PApplet to have constants for the platform
o   needed for error messages (don't talk about winvdig on mac)
X   and also useful for programs
X bring screen space and font size settings back in to PGraphics
X   causing too much trouble to be stuck down in PFont


0087 core

fixed in previous releases
X The PushPop example in Transformations is not working
X   with lights() callled
X The transparency of the Rotate3D example in Translformations
X   is not as expected
X lighting totally sucks (both PGraphics3 and PGraphicsGL)
X bring in materials for opengl as well?
X   don't include a class, just make it similar to the light functions
X sphere() and box() should set normals and take textures
X background color seems to be wrong?
X   check this once lighting actually works
X printarr() of null array crashes without an error
X   actually, errors from many crashes not coming through on the mac?


0086 core
X java 1.4 getButton() was inside the mouse handler
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114147314;start=3
X color() doesn't work properly because g might be null?
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114518309;start=0
X textMode(RIGHT) etc causing trouble.. tell ppl to use textAlign()
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Syntax;action=display;num=1114219121;start=4
X saveFrame with a filename still causing trouble:
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114097641;start=0
X fov should be in radians
X present mode not working on macosx 10.2?
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114381302;start=0
X ex on endshape if no calls to vertex
X   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1113940972
X is camera backwards, or staying fixed and moving the scene?
X   camera() is broken, should be ok to call it at beinning of loop
X   end of lookat might be backwards
X   or endCamera might be swapping camera and cameraInv
X     beginCamera also grabs it backwards


0085 core
X camera() was missing from PGraphics
X some tweaks to openStream() for loading images and less errors
X basic clipping in P3D from simon


0084 core
X fixed create font / incremented font file version number
X simon lighting fixes
X added simon's lighting docs to lights() fxn in javadoc
X set default stroke cap as ROUND
X   otherwise smooth() makes points disappear
X hack for text with a z coordinate


0083 core
X fix double key events
X fix mrj.version security error on the pc
X set() fixes for PGraphics2 and setImpl inside PGraphics
X remove angleMode (also from PMatrix classes)
X remove/rename postSetup() stuff from PGraphics/PApplet
X camera(), perspective(), ortho()
X matrix set by the camera on each beginFrame
X push/pop are now pushMatrix/popMatrix
o get PGraphics.java engine working again

lighting stuff
X make fill() cover ambient and diffuse
X   provide separate call for ambient to shut it off
o why does diffuse just mirror fill()?
o   seems to cover just diffuse, not ambient_and_diffuse like fill
o   maybe fill() should set diffuse, and sep call to ambient() sets ambient?
X   removed it
X move dot() to the bottom w/ the other math

already done
X remove PMethods as actual class, use recordFrame(PGraphics)
X   size(200, 200, "processing.illustrator.PGraphicsAI");

api questions
o image(String name) and textFont(String name)
o   do we change to font(arial, 12) ?
X remove angleMode() ?
X be consistent about getXxx() methods
X   just use the variable names.. don't do overkill on fillR et al
X   or just what functions are actually made public
X   is fillRi needed? it's pretty goofy..
X how to handle full screen (opengl especially) or no screen (for scripts)

tweaking up simong light code
o what's up with resetLights?
o add PLight object to avoid method overflow
o preApplyMatrix, invApplyMatrix? 
o   applyMatrixPre and applyMatrixIn
o   rotateXInv is ugly.. 
o   irotateX?, papplyMatrix?

wednesday evening
X expose api to launch files, folders, URLs
X   use with/in place of link()
X   call it open()
X what to call firstMouse
X implement rightMouse?
X   yes, mouseButton = LEFT, CENTER, or RIGHT
X error when running on 1.1... 
X   You need to install Java 1.3 or later to view this content.
X   Click here to visit java.com and install.
X make inverseCamera into cameraInv
X fix messages referring to depth()
X   route all of them through a single function rather than current waste
X fix bezierVertex() in P3D for newer api

wednesday late
X track loadImage() with filenames that are inconsistent
X   really a problem with the ves61r kids
X   i.e. mixed case filename in sketch is different in windows
X   but when uploaded to a unix server causes a serious problem
X   use canonicalPath to flag possible problems
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1096508877;start=5
o fix shapes in P3D (line loop, polygons, etc)
o should we include a from and to for the directional light?
X   no, cuz it doesn't do much really.. 
X   fromX-toX etc is all that's different

thursday day
X set modelview to camera on endCamera
X add ortho() and perspective() to PGraphics.java

thursday evening
o textMode(ALIGN_LEFT) etc, should make sure that left/center/right not used
X   though since have to change to LEFT, should be easy to switch

friday night
o should toInt('5') return the ascii or the char? 
X   since (int) '5' returns the ascii, that's what it does
X   made a note in the PApplet reference

text api
X textMode ALIGN_CENTER _LEFT _RIGHT -> CENTER, LEFT, RIGHT ? 
X use built-in font if available? yes
o text() with \n is semi-broken
X does the font or PApplet control the size? (the font, ala java)
X without setting the font, SCREEN_SPACE comes out weird
o move SCREEN_SPACE into ScreenFont() class?
o   probably not, casey thinks screen space text is prolly more useful
o   that way can clear up some of the general confusion in the code
X textFont with a named font can use the renderer/os font
X   illustrator api can get the ps name from the java font name
X     since it's associated with the font file.. wee!
X   for postscript, can grab the real font
o   altho problem here is that really the fonts just need a name
o      since needs to render to screen as well
o      font has to be installed to get psname
X      fine because why would you embed a ps font that you don't have?
o need to resolve SCREEN_SPACE vs OBJECT_SPACE
o   can this be auto-detected with noDepth()? 
o   how does rotated text work?
o     PFont.rotate(180) rotate(PI)
o     or can this be detected from the matrix?
X don't use pixels to do screen space text inside PFont
X   add a function in PGraphics for direct pixel image impl 
X store the font name in the vlw font file (at the end)
o   could include multiple names for multi platforms
X get text impl stuff working properly
o look into fixing the texture mapping to not squash fonts
o   NEW_GRAPHICS totally smashes everything

friday postgame
X implement createFont()
X   with a .ttf does a create font internally (1.3+ only)
X     although the images aren't populated 
X     until a P2D/P3D/OPENGL tries to draw them, which triggers it
X     but if PGraphics2, just uses the built-in font
X   also works for font names and just creating them
X     if font name doesn't end with otf or ttf, then tries to create it
X change objectX/Y/Z to modelX/Y/Z
X PFont.list() to return string list of all the available fonts
X   probably not a mode of use that we really want to encourage
X   actually important because the whole graphicsdevice crap is silly
X     and we need a 1.1 versus 1.3/1.4 version
X implement printarr() as println() ?
X   actually deal with all the array types.. oy
X should nf() handle commas as well?
X   just add a basic nfc() version for ints and floats
o   yes, and add nf(int what) so that non-padded version works
o   but don't put commas into the zero-padded version
o   make nf/nfs/nfp not so weird
o   nf(PLUS, ...) nf(PAD, ...) nfc(PLUS, ...)
X unhex was broken for numbers bigger than 2^31

saturday late afternoon
X fix bug with openStream() and upper/lowercase stuff
X   do a better job of handling any kind of URLs in openStream()

sunday morning
X incorporate simon's new lighting code


0082 core
X make jdkVersion, jdkVersionName, platform, platformName variables
X additional note about screen sizes and displays
X sto instead of stop in present mode
X appears that opengl libraries weren't correctly added in 81?
X requestFocus() now called on gl canvas
X basic lights now work by default


0081 core
X background(PImage) now works in opengl
X when running externally, applets don't always get placed properly
X   if size is never set, then doesn't always layout
X   problem is in gl and in core, and is inconsistent
X   move more logic for layout into PApplet.. maybe a static method?
X   this way can avoid duplicating / breaking things
o what is the stroked version of a sphere? a circle?
X write list of params that can be passed to PApplet
o document in the code a note about how size() et al place themselves
X saveFrame was double-adding the save path because of save() changes

size(200, 200, P3D) - createGraphics and placement issues 
X make pappletgl work back inside papplet
X   and then size(300, 300, DEPTH) etc
X   get rid of opengl renderer menu
o   otherwise hint() to use the p5 renderer instead of java2d
X applet placement is screwy
X how to force PGraphics() instead of PGraphics2()
X   size(300, 200, P2D);
X size() doing a setBounds() is really bad
X   because it means things can't be embedded properly
o applets on osx (and windows) sometimes show up 20 pixels off the top 
X how to shut off rendering to screen when illustrator in use? 
X   need size(30000, 20000) for illustrator, problem in papplet
X   size(30000, 20000, ILLUSTRATOR)
X make Graphics2 et al load dynamically using reflection
X   can this be done with g2 and if exception just falls back to g1?
X   this way people can remove g1 by hand
o size() that changes renderer will throw nasty exception in draw()
X   or maybe that's ok? document that no changing renderers?
X take a look to see what needs to happen to get PAppletGL merged in
X   i.e. can i just extend GLCanvas?

present mode
o call present() from inside the code?
o   that if applet is 500x500, centers on a 800x600 window
X   no, that's nasty... use --present to launch in present window
X though how do you get the screen size? 
X   screen.width and screen.height? - yes
X write java 1.4 code for full screen version of PApplet
X   this might be used for presentation mode
X proper full screen code for present mode
X   why do mouse motion events go away in full screen mode
X   or with a Window object
X use screen manager to run present mode properly
X   set both versions to require java 1.4
X   change the Info.plist inside macosx
X   and add something to PdeBase to make sure that it's in 1.4
X running present mode with a bug in the program hoses things
X   make sure the program compiles before starting present mode


0080 core
X PApplet.saveFrame() is saving to sketch folder, PApplet.save() is not
X   PApplet.save() will save to the applet folder, 
X   but PImage.save() or PGraphics.save() will save only to the current
X   working directory, usually the Processing folder.
X removed static version of mask() from PImage
X   no more PImage.mask(theImage, maskImage)
X   just use theImage.mask(maskImage)
X PImage.filter() 
X   maybe use quasimondo's gaussian blur code?
X     http://incubator.quasimondo.com/processing/gaussian_blur_1.php
o   filter() on subsections? yes, in keeping with rest of api
X   no, in keeping with getting shit done
X   BLUR - write simple blur
X     how does photoshop handle this?
X   BLUR - add gaussian blur
X   email re: credit/attribution and descrepancy between algos
X forgot to mention the line hack to get points working in 78
X implemented PGraphicsGL.set(x, y, argb)
X implement PGraphicsGL.set(x, y, PImage)
X blend, copy, filter all implemented for opengl
X copy(Pimage, x, y) has become set(x, y, PImage)
X textMode -> textAlign
X   ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT -> LEFT, CENTER, RIGHT
X textSpace -> textMode
X   NORMAL_SPACE -> NORMALIZED, OBJECT_SPACE -> OBJECT
X text in a box is broken (at least for PGraphics2)
o   check to see if it's a rounding error with width()
o   get text rect working again (seems to be in infinite loop)
X   nope, was just that the space width wasn't being scaled up properly
X clean up the javadoc so no more errors
X change mbox to PFont.size? 
o   make width() return values based on natural size?
X   not a great idea.. plus java2d uses 1 pixel font for things
X email simon re: lighting api
X   things are actually more on track than expected
X camera is swapping colors in gl (on mac?)
X   in fact, all textures on mac were swapping colors
X   test this on windows to see if fixed
X sphere x,y,z,r or box w,h,d.. need to make them consistent
X   goodbye sphere(x, y, z, r)
o should available() be waiting() or something like that instead?
o go through and see what functions (no pixel ops?) frame recorders should have
X   decided instead to use recordFrame(PGraphics)
o remove SCREEN_SPACE altogether? 
X   can't do this for now

implemented in 79
X make sure arc goes in the right direction that we want it to
X   (make sure that PGraphics3 goes the same direction)


0079 core
X no changes to core in this release


0078 core
X text fixes
X   lines were getting horizontally mashed together
X   lines also getting vertically smashed together
X   make a note of the change to font.width()
X backwards rects and backwards ellipses weren't properly drawn
X   code now compensates for negative widths or swapped x1/x2
X what to do about backwards images
X imageMode() wasn't being set properly
X fix noLoop() not properly running
X   If noLoop() is called in setup(), nothing is drawn to the screen.
X also fix redraw() to include interrupt() again
X loadPixels throwing NPEs
X fixes to SCREEN_SPACE text not being sized properly
X loadPixels()/updatePixels() on screen space text (ouch)
X get SCREEN_SPACE text working again
X patch in newer jogl.. too many BSODs
X saveFrame seems to be broken
X   fixed for PGraphics2
X   fixed for PGraphicsGL
X   also implemented loadPixels/updatePixels for gl
X fix tint() with color and alpha for PGraphics2
X alpha() colors are inverted (white is opaque.. doesn't make sense)
X   should we swap this around? no - this is how photoshop works
X fix arc
X get() is back
X set camera.modified so that it draws properly
X it's annoying not having a copy() function inside PImage
X   formerly get() with no params
o   clone throws an exception
o   PImage constructor that takes itself?
o   PImage copy = new PImage(another);
X got rid of CONCAVE_POLYGON and CONVEX_POLYGON
X hack for points to work in opengl, but still not working broadly
X work on filter() functions
X   POSTERIZE - find simple code that does it?
X     there must be a straightforward optimized version of it
o   EDGES - find edges in casey's example is differen than photoshop
o     which version do people want with their stuff
X     edges filter removed
X several fixes to Movie and Camera to work with the new gfx model
X PImage.get(x, y, w, h) had a bug when things went off the edge
X set defaults for strokeCap and strokeJoin
X get() and gl images were broken for screen sizes less than full size
X fix arcs, were badly broken between java2d and pgraphics
X look at curve functions more closely
X   should we switch to curveVertex(1,2,3) (ala curveto)
X   because some confusion with mixing types of curves
o   make sure we don't want curveVertices(1,2,3,u,v)
o   also make test cases so that java2d and java11 behave the same
X implement PGraphics2.curveVertex()
X updatePixels() not setting PApplet.pixels
X   make loadPixels in PGraphics ignored, and put it in PApplet
X made loadStrings() and openStream(File) static again
X test loadPixels()/updatePixels()/saveFrame() on the pc
X   better, just assume that they need the endian swap
X fixed draw mode apps for opengl
X   (gl was missing a beginFrame)
X pmouseX, pmouseY are not working in OpenGL mode
X   (as they are working in Processing mode)

o screenX/Y aren't properly working for 2D points against a 3D matrix
o   (ryan alexander rounding bug)
o   Just to clarify, it works completely correctly with rounding
o   screenX/Y and also using the 3 arg version of translate - 
o   ie translate(hw,hh,0) instead of just translate(hw,hh). 
X   no longer an issue because moving to 2D and 3D modes
o PImage: remove the static versions of manipulators?
o   probably not, because they're inherited by PApplet
o   i.e. mask(image, themask); 
X   no PImage needed b/c PGraphics is a PImage
o colorMode(GRAY) to avoid stroke(0) causing trouble? 
o   or maybe get rid of stroke(0)? hrm


0077 core
X bring back pmouseX/Y using a tricky method of storing separate
X   values for inside draw() versus inside the event handler versions
X   debug handling, and make firstMouse public
X explicitly state depth()/nodepth()
X   don't allocate zbuffer & stencil until depth() is called
X arc with stroke only draws the arc shape itself
X   may need a 'wedge' function to draw a stroke around the whole thing
X only allocate stencil and zbuffer on first call to depth()
X   this will require changes to PTriangle and PLine inside their loops
X try running javadoc
X die() may need to throw a RuntimeException
o call filter() to convert RGB/RGBA/ALPHA/GRAY
o   cuz the cache is gonna be bad going rgb to rgba
X   don't bother, people can re-create the image or set cache null
X fix font coloring in PGraphics2
X fix tint() for PGraphics2
X get text working again
X   partially the problem is with ALPHA images
X     how should they be stored internally
X   also colored text, requires tint() to work properly
X move textMode and textSpace back out of PFont
X   use die() to fail in font situations
X   can't, just use a RuntimeException

covered in previous
X before graphics engine change, attach jogl stuff
X   need to try jogl to make sure no further changes
X   and the illustrator stuff
o massive graphics engine changes
o   move to new graphics engine
o     test with rgb cube, shut off smoothing
o   make sure line artifacts are because of smoothing
o   implement 2x oversampling for anti-aliasing
o renderers can plug in:
o   at direct api level
o     taking over all color() functions and vertex collection
o   at endShape() level
o     where vertices are collected by core and blit on endShape()
o     (takes polygons and lines)
o   at post tesselation level
o     takes only line segments and triangles to blit (dxf writer)
o api for file-based renderers
o   need to work this out since it will affect other api changes
o   size(0, 0) and then ai.size(10000, 20000)
o     size 0 is code for internal to not show any window
o   saveFrame(PRenderer) or saveFrame("name", PRenderer)
o   saveFrame gets called at the beginning of loop()
o     or is just a message to save the next frame (problem for anim)
X vertices max out at 512.. make it grow
X add gzipInput and gzipOutput
X light(x, y, z, c1, c2, c3, TYPE)
X   also BLight with same constructor, and on() and off() fxn
X make sure applet is stopping in draw mode
X loadImage() is broken on some machines
X   hacked for a fix in 72, but need to better coordinate with openStream()

postscript
X pushing all intelligence down into class that implements PMethods
o keep hints about type of geometry used to reconstruct
o   no special class, just uses public vars from PGraphics
o how to hook into curve rendering so that curve segments are drawn
o   maybe lines are rendered and sorted, 
o   but they point to an original version of the curve geometry 
o   that can be re-rendered 
o   also integrate catmull-rom -> bezier inverse matrices
o   even with the general catmull-rom, to render via ai beziers

api changes
X removed circle.. it's dumb when ellipse() is in there
X   (it's not like we have square() in the api)
X arcMode is gone.. just uses ellipseMode()
X save tga and tif methods are static and public
X imageMode(CORNER) and CORNERS are the only usable versions
X alpha(PImage) is now called mask() instead
X   already have an alpha() function that gets alpha bits
X on start, mouseX is 0.. how to avoid?
X   use firstMouse variable.. figure out naming
X get frame recording working
X   not tested, but at least it's there

image stuff
o could also do PImage2, which would need a getPixels() before messing w/ it
o   bad idea, distinction not clear
o even in java 1.1, could use regular java.awt.Image and require getPixels()
o   -> 1.1 wouldn't help anything, because needs pixels to render, oops
X the updatePixels() in PGraphics has to be overridden (from PImage)
X   to make itself actually update on-screen
X   actually, should be no different than the check_image function
X PGraphics2 and PGraphicsGL will need loadPixels() to be called
X   in order to read pixels from the buffer
X loadPixels() and updatePixels() prolly should be shut off in opengl
X   make people use get() instead to grab sub-images
X   PGraphicsGL.copy() needs to be overridden.. use glDrawBitmap
o loadImage() needs to handle 1.1 vs 1.3 loading
o   set image.format to be BUFFERED? no.. just use RGBA always
o have a flag to always use the cache, i.e. with BufferedImage
o   turn that off when someone modifies it (nope, no need to)
X PImage.getPixels(), updatePixels(), updatePixels(x, y, w, h), 
o   PImage.setPixels(int another[]);
X imageMode(CENTER) is weird for copy() and updatePixels()
X   perhaps copy() and get() ignore imageMode and use xywh or x1y1x2y2?
X   or disallow imageMode(CENTER) altogether?
o in java 1.3, getPixels() can call getRGB() via reflection
o   cache.getClass().getName().equals("BufferedImage")
X readPixels/writePixels?
X   has to happen, since this is so fundamental to gl as well
X loadImage in 1.3 leaves pixels[] null (not in 1.1)
X   1.3 plus gl is a problem, since conflicting caches
X   gl has no need for a bufferedimage tho
X     so maybe checks to see if the cache is a BufferedImage
X     if it is, calls getPixels to set the int array
X     then replaces cache with glimageache
X     pappletgl loadimage could take care of this instead
X       calls super.loadImage(), if cache != null, proceed..
X       this is prolly a mess
X PImage.getPixels() and PImage.getPixels(x, y, w, h) ->
X   (the xywh version still allocates the entire array, but only updates those)
X   only needed for java2d
X   not (necessarily) needed when loading images,
X     but definitely needed when setting pixels on PGraphics
X PImage.updatePixels() and PImage.updatePixels(x, y, w, h)
X   (this is actually just setModified)
X   in opengl, marks all or some as modified
X     so next time it's drawn, the texture is updated PGraphicsGL.image()
X   in java2d, updates the BufferedImage on next draw
X can't use regular getPixels() on PGraphics, because its image isn't 'cache'
X   also, the cache may be used to draw the whole surface as a gl texture (?)
X   not a problem for the main PGraphics, but for any others created to draw on

opengl
X make light() functions actually do something in PGraphicsGL
X box() and sphere() working again
X make opengl work in draw mode
X   set initial size using --size=
X color channels seem to be swapped on windows in image example
X   check on the mac to see what it looks like

X default to single byte input from serial port
X   and add serial.setBuffer() for message length as alternative
X   or serial.setDelimiter() to fire message on delim
X     named it bufferUntil();


0076 core
X no changes, only launcher issues


0075
X textureMode(NORMAL_SPACE)  screws up the image() command
X   image() appears to require IMAGE_SPACE to function properly. 
X added focusGained() and focusLost()
X lots of changes to internal naming of vars
X screenX(x, y) and screenY(x, y) added for noDepth()
X add TRIANGLE_FAN
X eyeX, eyeY etc have been renamed cameraX/Y/Z, and cameraNear/Far
X modify targa and tiff writing routines to break into header writing
X   writeTIFF, writeHeaderTIFF, writeTGA, writeHeaderTGA
X MAJOR CHANGE: RGBA becomes ARGB for accuracy
o uv coords > 1 shouldn't clamp, they should just repeat ala opengl
o   actually i think opengl has a setting for it
o remove need to use depth() at the beginning
X   need only be set once
X pmouseX is broken again
X   remove pmouseX/Y altogether
X   maintain things a bit different
o   email the beta@ list to see how people are using pmouseX
X changed PMovie.length to PMovie.duration
X move around/simplify loadImage() inside PApplet 
X working to add more die() statements inside PApplet
o can ALPHA fonts work using the other replace modes?

fixed in previous releases
X text stuff
X   text() with alignment doesn't work for multiple lines
X   don't change the size of a font when in screen space mode
X   patch rotated text (from visualclusto) into bfont
X   what sort of api? textSpace(ROTATED) ?
X   rotated text has a bug for when it goes offscreen

opengl
X why is the thing hanging until 'stop' is hit?
X   what happens when stop is hit that sets it free?
X   (at what point does it start working properly?)
X cache needs to also make things a power of 2
X   if images are already a power of 2, then needn't re-alloc
X cacheIndex needs to be set to -1 when the image is modified
X   or maybe have a modified() function?
X debug why certain spots are having errors (see 'problem here' notes)
X   INVALID_OPERATION after drawing lines for cube
X fix noLoop bug
X remove errors when drawing textures
X reverse y coordinates
X make play button un-highlight with opengl
X   also make window move messages work properly
X   very necessary, since opens window at 100x100
X   problem was the threading issues
X bring back renderer menu
X   reading/saving pref for opengl renderer
X remove cameraMode(PERSPECTIVE) on each frame
X   why is the first one failing?
X still threading issues with running opengl 
X   threading really horks up dual processor machine.. 
X   first run hangs until quit 
X   though doesn't seem to replicate when p5 is restarted
X make sure background() gets called at least once with opengl
X   otherwise screen never actually updates
X beginFrame() around setup()
X   draw mode stuff happens inside setup.. 
o   or maybe need to get better at size() inside of draw() ? 
X   make this consistent with the regular PApplet
X     otherwise things are going to be weird/difficult for debugging


0074 core
X removed zbuffer precision hack in PLine to improve z ordering
X no longer set g.dimensions = 3 when using vertex(x, y, 0)


0073 core
X tweak to fonts to use TEXT_ANTIALIAS because of macosx @#$(*&
X loadImage() is broken on some machines
X   hacked for a fix in 72, but need to better coordinate with openStream()


0072 core
X make m00, m01 etc public
X hack to make loadImage() work 
X   cache settings are ignored, may be slow as hell
X make hints[] no longer static
X   they weren't properly resetting


0071 core
X properly swap alpha values when lines need to be rendered backwards
X make cursor() commands public
X ltext and rtext for screen space stuff
X ltext is broken when it goes y < 0 or y > height
X ltext & rtext completely working
X make sure font creator is making fonts properly fixed width
X   probably not using java charwidth for the char's width
X   probably wasn't using textFont() properly
X now that it's actually a key, should it be a char? (what's keyChar?)
X   that way println(c) would work a little better..
X libraryCalls() not properly working for pre, post, or draw()
o image(myg, x, y) doesn't work but image(myg, x, y, w, h) does
o   (image kind prolly not set right and so image() gets pissy)
o   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1091798655

text fixes
X make text rect use rectMode for placement
X if a word (no spaces) is too long to fit, insert a 'space'
X move left/center/right aligning into the font class
X   otherwise text with alignment has problems with returns
X could PFont2 be done entirely with reflection?
X   that way other font types can properly extend PFont
o font char widths from orator were not fixed width
o   may just need to regenerate. if not, widths may be set wrong.


0070 core
o check ordering of split() in java vs perl for regexp
X don't include empty chars in font builder
X   .vlw font files are enormous with full charset
X   check to see if the character exists before adding it to the font
X fixed (unreported) problem with char lookup code
o split() with multiple args (i think this is completed)
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1078985667
X trim() not chop().. whups
X random(5, 5) -> return 5, random(6, 4) return error
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1083275855;start=0
X use random.nextFloat() because it's faster
X make grayscale image in p5
X   could be used with alpha() to properly set alpha values
X   made into filter(GRAYSCALE) and filter(BLACK_WHITE) functions
X make g.depthTest settable as a hint
X   http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303102;start=0
X #ifdef to remove client and server code as well
X need to resolve issues between rendering screen/file
X   illustrator-based rendering needs to work for ars projects
X   screen may be 400x400 pixels, but file be 36x36"
X launcher.cpp broke serial.. see versions in processing.notcvs
X rewrite bagel code.. 
X   for this release, because it will break things along with the lib stuff
X   switch to PImage, PApplet, etc
o bug in BImage.smooth() when resizing an image
o   http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303158;start=0
X shut off the automatic gunzipping of streams, keep for fonts
X fix for duplicated points in polygons that foiled the tesselator
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077819175
X cleaned up texture() code between NEW/OLD graphics
X   not quite so much duplicated in cases etc.
X lines: vertex coloring bug with my swap hack
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1085348942
X   last vertex on LINE_LOOP fades out
X   http://processing.org/discourse/yabb/YaBB.cgi?board=BugFixes;action=display;num=1096303406;start=0
X include values in PConstants for additional blend modes:
X   DIFFERENCE, MULTIPLY, SCREEN, OVERLAY, HARD_LIGHT, SOFT_LIGHT
X include a lerp()? is there one in flash?
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Programs;action=display;num=1083289030
X   should it be called lerp or mix?
X acos, asin, atan, log, exp, ceil/floor, pow, mag(x,y,z)
X color issues
X   doesn't work when outside a function:
X     color bg_color = color(255,0,0);
X   colorMode broken for red() green() etc
X     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1068664455
X   add color(gray) and color(gray, alpha)
X     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1089898189;start=0
X     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1090133107
o update() mode needs to be hacked in (?)
X make 'online' a boolean
X pass in args[] from main
X angleMode(DEGREES) and angleMode(RADIANS)
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1075507381;start=0
X fixes to line and curve code
X api to properly sense when applet has focus
X   add a 'focused' variable to the applet
X   code now in zipdecode, maybe just list this as a standard thing?
X do applets know when they're stopped? stop? dispose?
X   would be good to set a param in p5 so that the thread dies
X   if people have other threads they've spawned, impossible to stop

cleaning up
X make bagel more usable as standalone
X   breakout BGraphics (have its own BImage)
o   breakout BApplet into BComponent ? (fix out-of-bounds mouse - doesn't)
o opengl export / rendering mode
o   currently implemented, but somewhat broken
o   finish this once all the line code is done
o make possible to use buzz.pl to create versions w/ stuff removed
o build gl4java for java 1.4
o separating of BGraphics and BApplet
o change copyrights on the files again (to match ?)
X loadStrings has a problem with URLs and a code folder
o   turned out to be a problem with firewall/antivirus software
o   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1086551792
o when running as an applet, need to loadStream from documentBase too
o   problem is that BGraphics has the loadStream code, not BApplet
o new sphere code from toxi
o   already added a while back
o   http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1067005325
o sphere code needs only front face polygon 
o   all triangles must be counter-clockwise (front-facing)
X fix loadImage to be inside PApplet

040715
X saveFrame() to a folder horks things up if a mkdirs() is required
X   on macosx, this makes things hang; on windows it complains
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1081706752;start=0
X decide on whether to use PTools
X   decided against, since it doesn't help anything
X   and some functions need the applet object, so it's just annoying
o   i.e. move math functions into utility library
o   check what other functions require PGraphics to exist but shouldn't
o   look at BGraphics to see if setting an 'applet' could be used
o     then other than that, if no applet set, no connection to PApplet

040716
X change font api to not use leading() as a way to reset the leading
X   resetLeading and resetSize are the things
X embed all available chars from a font, so japanese, etc works
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1083598817;start=3
X fix a bunch of font bugs regarding charsets and lookup
X array operations: boolean, byte, char, int, float, String
X   expand/contract
X   append, shorten
o   shift/unshift
o   slice
X   splice
X   reverse
X   concat

040717
X make clone() into copy()
X add a method BApplet.setPath() or something like that
X   use it to repair saveBytes, saveStrings, etc
X   put screenshots into their sketch folder
o     http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1046185738;start=0
X full casting operations on primitives and arrays of them
X text(String text, x, y, width, height)  // based on rectMode
X   textMode() for align left, center, right (no justify.. har!)
X hex(), binary(), unhex(), unbinary()

040725 
X fix array functions not returning a value

040726 
X noiseSeed and randomSeed
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1090749784;start=0

040727
X incorporated NO_FLYING_POO line/poly hack developed for axel

040902
X sort() should return an array, rather than sort in place
X fix binary function, had wrong offset number
X   casey: i wan't able to get binary() to work at all:
o Typography: Helix won't compile 
o   works fine, just needs BFont -> PFont
X standalone 'alpha' function for PImage (static methods for alpha fxns)
X Image: Edge, Image: Blur: Alpha not set? The error is easier to see on Blur
X   turns out bounds checking wasn't working properly on colors

040903 
X fix mouse/key events, make properly public for the package stuff
X   The biggest problem was the key and mouse functions not working. 
X   Input: Mouse_Functions
X   Input: Keyboard_Functions
X processing.net -> PClient, PServer
X   write client/server implementations for new-style api
X   basic test with old net server has things working fine

040908
X inputFile, outputFile, reader, writer commands
X   also loadStrings(File file)

040913
X printarr instead of print/println for arrays
X   println(Object o) conflicts with println(int a[])
X   but println(Object o) is very needed

040919
X loop/noLoop setup

040920
X make loop/noLoop work properly
X fixes/changes to key and mousehandling
X   tab key not working? 
X     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1091853942;start=0
X   mousePressed, keyPressed, others.. queue them all
X     queue multiple times
X     http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1079555200;start=0
X   strangeness with key codes on keyPressed
X     http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1083406438;start=0
X   key codes not properly coming through for UP/DOWN/etc
X     had to bring back keyCode
X     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1075138932;start=0
X add redraw() function
X   call redraw() on the first time through (to force initial draw)
X   otherwise noLoop() in setup means no drawing happens at all

040920 evening
X defaults for PApplet and PGraphics are different
o   PGraphics has none.. PApplet has fill/stroke
X   actually not the case, only that wasn't calling decent superclass
X set PImage.format as RGB by default? 
X   this was problem with rendering an image from PGraphics on board
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1091798655;start=0
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1080671926;start=0

040921 morning
X bug in get() that was removing the high bits (rather than adding)

040921 evening
X lots of work on libraries, figuring out PLibrary api

040922 
X get library stuff debugged
X port arcball and finish up dxf writer
X beginCamera() no longer sets an identity matrix

040925
X make savePath() and createPath() accessible to the outside world
X   useful for libraries saving files etc.


0070p8
X sizing bug fix to fonts, they now match platform standards
X   however, *this will break people's code*
X text in a box not written
X   make sure to note in the docs that text/textrect position differently
o     for this reason, should it be called textrect()?
X font heights and leading are bad
X   get good values for ascent and descent
X   if ScreenFont subclasses PFont.. can that be used in textFont()?
X check to make sure the tops of fonts not getting chopped in font builder


0069 bagel
X text(x, y, z)
X fixed camera modes / replaced how isometric is handled
X whoa.. BGraphics.screenX() et al had the camera stuff shut off
X   and that's what shipped in 67. shite.
X   need to get things fixed up properly so camera is properly set
X   ISOMETRIC was completely broken.. need to implement properly
X     also, the default camera is perspective
X cameraMode(PERSPECTIVE) and cameraMode(ORTHOGRAPHIC) setup basic cameras
X   if the user wants a custom camera, call cameraMode(CUSTOM); before begin()
X printMatrix() and printCamera() to output the matrices for each
X more functions made static (loadStrings, loadBytes) that could be
X   print() commands in BApplet were among these
X die() command to exit an application or just stall out an applet
X   die(String error) and die(String error, Exception e) 
X more documentation in comments for functions
X chop() function that properly also handles nbsp
X join() was handled weird
X run nf() and nfs() on arrays
X nfp() to show plus sign
X toInt, toFloat, toDouble (nf is for toString.. inconsistent)
o split() function splits strings instead of splitStrings()
o   ints() converts an array of strings/doubles/floats to an int array
o split() should also use StringTokenizer
o   to do countTokens() and then stuff into an array
o shave() or chomp() or trim() method to remove whitespace on either side
o   including unicode nbsp
X min() and max() with three values were broken (now fixed)
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076804172
X CONTROL wasn't properly set in BConstants
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077058788
X macosx.. flickering several times on startup
X   fixed this, along with other sluggishness related threading issues
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073111031
X bug with charset table on older fonts
X   index_hunt was look through the table, not what was in the font
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077475307;start=0
X seems to be some difficult threading problems still present
X   fixed many threading issues across macosx and linux
X side-porting changes
X   new(er) line code is not in the main 'processing'
X   making perlin non-static not in the main bagel
X   polygon stroking hack code from the end of 68
X erikb found a bug inside split(), it would die on empty strings
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077664736
X   fixed it, also modified behavior of split() with a delimeter
X   previously, it would remove the final delimeter and an empty entry
X   but that's now disabled, since the split cmd is very specific
X code from toxi to support .tga files in loadImage
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Programs;action=display;num=1078459847;start=0
X fix bug where single pixel points were ignoring their alpha values
X static loadStrings and loadBytes aren't being added to BApplet
X   (the versions that use an inputstream)
X   added support for handling static functions in make.pl
X threading is broken again on windows
X   windows needs a sleep(1) instead of the yield()
X random(3) should be non-inclusive of the 3
X   http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1079935258;start=5

api changes
X loadStream -> openStream for better consistency

jdf
X dynamic loading of code for setting cursor (removed JDK13 ifdef)
X why aren't cursors working on the mac?
X   fix from jdf to just set size to 0,0
