0103 core
X fix stack overflow problem
X   bug in itext implementation on osx (10.4 only?)
X   http://www.mail-archive.com/itext-questions@lists.sourceforge.net/msg20234.html

more pdf/recording stuff
_ don't open a window the size of the pdf if in pdf mode
_   need to have some sort of flag in the gfx context that it's visible or not
_   handled inside updateSize()?
_   if it doesn't display to the screen, needs to never show a window
_   basically if the main gfx context isn't viewable, close the window
_   since it may have already been opened at 100x100
_   avoid opening it in the first place?
_ make dxf writer that'll work with recordRaw()
_ document how to switch to next page
_   maybe background() should do this automatically?
_ add option to sort triangles back to front so alpha works
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076660476
_ polygon z-order with alpha in opengl
_   at least add it to the faq, or this would be a test case w/ the sorting
_   http://dev.processing.org/bugs/show_bug.cgi?id=176
X recordFrame() and beginFile()/endFile()
X   how to deal with triangles/lines and triangleCount and lineCount
X     maybe just need a triangleImpl and lineImpl
X     because it's too messy to retain the triangle objects and info
_ calling recordFrame() from mousePressed is important
_   dangerous tho because mouse fxn called just before endFrame

_ loadImage("") produces weird error message
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Programs;action=display;num=1136487954

_ check min/max texture sizes when binding to avoid problems
_   minimum texture size may be 64x64
_   maximum appears to be 2048, on macs maybe 512
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Contribution_3DOpenGL;action=display;num=1137130317

_ more image file i/o in java 1.4
_   add dynamic loading of the jpeg, png, and gif(?) encoder classes
_   http://dev.processing.org/bugs/show_bug.cgi?id=165
_   http://java.sun.com/products/java-media/jai/index.jsp
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Programs;action=display;num=1120174647
_ P5 cannot read files generated by saveFrame()
_   need to update docs re: tga
_   and add support for reading its own uncompressed TIFs
_   http://dev.processing.org/bugs/show_bug.cgi?id=271

_ on osx, System.err isn't writing in things like createGraphics()
_   but doing a printStackTrace(System.out) works
_   something weird happening with one of the streams shutting down?

check to see if these are working
_ when re-calling size() with opengl, need to remove the old canvas
_   need to check to see if this is working properly now
_ registering font directories in pdf.. is it necessary? 
_   (commented out for 0100)
_ 404 error because first searches applet directory in isometricblocks
_ "this file is named" errors don't like subdirectories
_   need to strip off past the file separator or something
_ passing applet into createGraphics.. problems with re-adding listeners
_   since the listeners are added to the PApplet
_   i think the listeners aren't re-added, but need to double check

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

_ PSound.play() won't play the sound a 2nd time (reopened)
_   http://dev.processing.org/bugs/show_bug.cgi?id=208

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

threading mess
_ need to move off anim off the main event thread
_   move away from using display()
X temporarily rolling back major thread changes
X major threading change to use wait()/notifyAll() instead of interrupt/sleep
_ noLoop() at end of setup is prolly b/c of interruptedex
_   need to not call Thread.interrupt()
_ opengl + noLoop() causes InterruptedException
_   http://dev.processing.org/bugs/show_bug.cgi?id=164
X   check to see noLoop() breakage is fixed in 92 vs 91
X     checked, not fixed
_ noLoop() broken on opengl
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115330568;start=0
_   http://dev.processing.org/bugs/show_bug.cgi?id=164
_ making 'run' synchronized caused a freeze on start w/ opengl
_ figure out why 1024x768 image takes 3.5 seconds to load
_   would using a BufferedImage work better?
_   is the image actually a BufferedImage so PixelGrabber is a waste?
_ too much object creation in java2d
_   causes inconsistency/hiccups as the gc runs?
_ fix the flicker in java2d mode
_   http://dev.processing.org/bugs/show_bug.cgi?id=122
_   framerate(30) is still flickery and jumpy..
_   not clear what's happening here
_   appears to be much worse (unfinished drawing) on macosx
_     try turning off hw accel on the mac to see if that's the problem
_ framerate that's reported is out of joint with actual
_   seems to be aliasing effect of low resolution on millis()
_   so rates coming out double or half of their actual
_   probably need to integrate over a rolling array of 10 frames or so
_ sketches often freeze when stop is hit on an HT machine
_   need to test the examples cited on pardis' machine
_   http://dev.processing.org/bugs/show_bug.cgi?id=232
_ sonia is locking up on load in rev 91
_   prolly something w/ the threading issues
_   http://dev.processing.org/bugs/show_bug.cgi?id=46
_ debug NumberFormat InterruptedException on dual proc machine
_   use notify() instead of interrupt()? 
_   or Thread.currentThread() should be checked first?
_ display() as a function name is problematic
_   causes nothing to show up.. either rename or mark it final
_   http://dev.processing.org/bugs/show_bug.cgi?id=213

_ ArrayIndexOutOfBoundsException in PLine
_   http://dev.processing.org/bugs/show_bug.cgi?id=246

_ dataFolder() might be flawed b/c it's referring to contents of jar file
_   for input, better to use openStream
_   clear up the documentation on this

_ tint() and noTint() switching problem in P2D
_   http://dev.processing.org/bugs/show_bug.cgi?id=222

_ when using PGraphics, must call beginFrame() and endFrame()
_   also need to be able to turn off MemoryImageSource on endFrame
_   call defaults() in beginFrame()

_ add texture support to recordShapesRaw (this might be pretty obscure...)

_ should PGraphics be a base class with implementations and variables?
_   then PGraphics2D and PGraphics3D that subclass it?
_   (or even just PGraphics2 and PGraphics3)
_   also rename PGraphics2 to PGraphicsJava
_   it's goofy to have the naming so different

X tweak to only exit from ESC on keyPressed
_   probably should just make this a hint() instead

_ add a e2mouseX and e2mouseY 
_   so that the prev mouse location is still good on mouseReleased
_   http://dev.processing.org/bugs/show_bug.cgi?id=170

_ add auto-install of cab file inside applet.html
_   http://dev.processing.org/bugs/show_bug.cgi?id=181
_   http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/using_tags.html
_   http://java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/launch.html#creating
_   http://java.sun.com/update/1.4.2/jinstall-1_4_2_09-windows-i586.cab
for the 1.5 versions:
_   http://java.sun.com/update/1.5.0/jinstall-1_5_0_03-windows-i586.cab

_ related to the fill bugs: when fill is identical, no fill applied
_   http://dev.processing.org/bugs/show_bug.cgi?id=169
_ fix tint() for PGraphics3 (what could be wrong?)
_   tint() honoring alpha but not colored tint
_   maybe not setting fill color when drawing textures
_   guessing it's an implementation issue in sami's renderer
_   check with the a_Displaying example and tint(255, 0, 0, 100);
_   http://dev.processing.org/bugs/show_bug.cgi?id=90
_ is fill() not coloring textures properly?
_   don't need to apply tint() to textures, supposed to use fill color

_ update run.bat for new quicktime
_   unfortunately this is messy because qtjava sometimes has quotes
_   and qtsystem might be somewhere besides c:\progra~1

_ STROKE_WEIGHT field in PGraphics3 is a disaster, because it's an int
_   use the SW from vertex instead.. why set stroke in triangle vars at all?
_   currently truncating to an int inside add_line_no_clip
_   need to clean all this crap up

_ stop() not getting called
_   http://dev.processing.org/bugs/show_bug.cgi?id=183
_   major problem for libraries
_   and start() is supposedly called by the applet viewer
_   http://java.sun.com/j2se/1.4.2/docs/api/java/applet/Applet.html#start()
_   need to track this stuff down a bit

_ clipboard implementation as example or as part of api
_   http://dev.processing.org/bugs/show_bug.cgi?id=167

_ get creating new PGraphics/2/3 working again
_   http://dev.processing.org/bugs/show_bug.cgi?id=92
_   maybe createGraphics(200, 200) to create same as source
_   createGraphics(200, 200, P2D) to create 2D from 3D
_   also, drawing a PGraphics2 doesn't seem to work
_   new PGraphics2 objects are set as RGB, but on loadPixels/updatePixels
_     they're drawn as transparent and don't have their high bits set
_ why aren't background() / defaults() being called for opengl?
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Contribution_3DOpenGL;action=display;num=1118784331
_ some optimizations from zach
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=os_core_pde;action=display;num=1121670787

_ bspline or nurbs before 1.0? 
_   probably later, want to do the 3D/arch stuff correctly


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


_ PApplet.main(new String[] { "classname }) won't pass in args.. grr
_   PApplet.main(append(new String[] { "classname }, args));

_ need to test/straighten out load/update pixels
_   loadPixels() and updatePixels() only need to be used when 
_   touching pixels[]. All other functions including get(), set(),
_   filter(), etc shouldn't need them. 
_ fjen says blend() doens't work in JAVA2D
_   the functions are fairly well separated now in PMethods
_   just go through all the stuff to make sure it's setting properly
_ don't do a loadPixels unless an updatePixels has completed
_   tho this won't affect anything, since either it's an image buffer
_   or it's the PGraphics object, which does an updatePixels() immediately
_ if (modified) don't loadPixels again, just ignore it
_   make a note that updatePixels() only sets a flag in PImage
_     (but not PGraphics, which does it immediately)



////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////

GRAPHICS LIBRARY

A hybrid of OpenGL (3D Graphics) and some aspects of Postscript (Fill, Stroke)
The graphics library was formerly called Bagel.


CORE / PApplet

_ typed version of array functions:
_   append(), shorten(), splice, slice, subset, concat, reverse
_   http://dev.processing.org/bugs/show_bug.cgi?id=115
_ would be cool if could sort w/o the sort class..
_   meaning use reflection to sort objects, just by implementing a few methods
_   would be much simpler and less confusing than new Sort() etc 
_   or would it be ridiculously slow?
_ make a PException that extends RuntimeException but packages an ex?
_   http://java.sun.com/docs/books/tutorial/essential/exceptions/runtime.html
_ is mousePressed broken with noLoop() or redraw()?
_ check for what else inside PApplet should be static
_   maybe catch RuntimeExceptions in the called sub-functions
_   that way more stuff can be static w/o losing useful error handling
_   (emitting errors when closest to source.. i.e. w/ the filename)
_ size() inside draw is missing a new call to cameraMode, etc
_ fix param() to use a sketch.properties file when run as an app
_   make this also be used in generating the html file
_ fix link() to handle relative URLs
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1081710684;start=0
_ put SecurityException things around file i/o for applets
_   rather than checking online(), since applets might be signed
_ saveFrame() at the end of a draw mode program is problematic
_   app might exit before the file has finished writing to disk
_   need to block other activity inside screenGrab until finished
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1081706752
_ problems with defining fill(255) vs fill(0xff808080)
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1083650609
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1082481891
_ test winding polygons in different directions
_ test lighting to see how it compares with gl
_ better lockout inside beginShape() to keep other things from happening
_ is quad strip broken or not behaving as expected?
_   may be correct, it worked for nik
_ inside draw() mode, delay() does nothing
_   delay might be a good way to signal drawing to the screen/updating
_ catch security exceptions around applet i/o calls
_   not just for saving files, but provide better error msgs when
_     attempting to download from another server
_ array utilities on Object[] are worthless.. fix it with reflection?
_   see if reflection will allow expand for all class types
_ ed's thread re: fullscreen strategies
_   could add a new BApplet that uses BufferStrategy?
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Programs;action=display;num=1081335361;start=15
_ placement of 100x100 items is odd
_   happens with P3D and maybe also P2D?
_   http://dev.processing.org/bugs/show_bug.cgi?id=128
_ fileInput() and fileOutput() may not agree with draw()
_   not yet verified
_   can only be used inside of setup()?
_ cellular automata examples broken
_ size() has memory limitations (pitaru)
_   catch OutOfMemoryError inside size() and let the user know
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1038847001
_ files not in the data folder (works in env, not in sketch)


CORE / PApplet - main()

_ refactor PApplet.main() and Runner.startInternal() to remove duplication
_   http://dev.processing.org/bugs/show_bug.cgi?id=245
_ present mode is flakey.. applet doesn't always come up
_   seems like hitting stop helps shut it down?
_   is full screen window not being taken down properly?
_   has this fixed itself, or is it an issue with launching externally?
_ implement full screen mode.. this takes over the screen as best it can
_   size(screen.width, screen.height, OPENGL);
_   if size is screen.width and screen.height, does its best
_   needs to get the size of the main screen
_   this probably works but just needs to be tested
_   exceptions in full screen mode will quit the app completely
_     can't keep window open because things are hosed
_   default is that full screen app doesn't cover multiple displays
_     this is fine since opengl can't usually go across both
_     but include an example for how to use full in gl 
_ ability to select monitor via preferences panel
_   this applies to any applet that's run externally currently (verify)
_   make it also work with anything that's run inside of p5 itself
_     this means changing the frame creation code inside Runner
_   check current present code with multiple monitors
_ hitting cmd-q when an applet is running quits p5 (on macosx)
_   but cmd-q when running externally is ok because it just quits
_   is there a way to catch cmd-q when running a sketch? 
_     so that it could avoid quitting if the sketch hasn't been stopped
_     or if the sketch window is foremost
_     maybe a hack where a new menubar is added? 


CORE / PFont and text()

_ leading looks too big, at least in PGraphics2 with news gothic
_   though it may be the converted version of the .ttf?
_ font encoding issues 
_   java seems to force straight windows encoding.. (problem for pi fonts)
_   opentype/cff fonts don't work with live loading from the app
_   many (all?) opentype fonts won't show up or aren't supported
_     this may be only cff fonts that have trouble
_   when encoding is not the standard encoding, problematic
_     so sonata otf and sonata don't seem to have any chars at all
_ available font issues
_   is getFontList returning a different set of fonts from device2d?
_     try it out on java 1.3 versus 1.4
_   getAllFonts() not quite working for many fonts
_   i.e. Orator Std on windows.. macosx seems to be ok
_   is getFamilyNames() any different/better?
_   when did this break? 1.4.1? 1.4.x vs 1.3?
_   may be that cff fonts won't work?
_   or is it only those with ps names?
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1117445969
_ createFont not working from applets
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115877723;start=0
_ createFont() with a .ttf doesn't work in applets?
_   throws a security exception because of the reflection stuff
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115877723;start=0
_ text() with a z coordinate is now using translate, very slow
X   also puts up a weird error message about translate() in 2D mode
_ make screen space fonts use get/set as well?
_   too much to debug on their own
_   unfortunately tint not set with setImpl, but...
_ optimize textMode(MODEL) with textMode(SCREEN)
_   in PGraphics and PGraphics3, check to see if matrix is within epsilon
_   of one of the rotation matrices (many fewer steps) 
_   if identity, or just translate, or a rotate, make OBJECT into SCREEN
_ not having kerning really blows
_   could this be pulled from the OpenType font stuff? 
_   it could be placed at the end of the file
_ not having fractional widths on small fonts really blows
_   screen space text looks crappy
_ working with vector fonts? 
_   need to be able to handle shapes within shapes (reverse winding)
_   ftgl: main code is in FTVectoriser
_   uses gluTessBeginContour and gluTessEndContour
_   and then does 5 step sizes for each curveto


CORE / PGraphics


_ cairo tesselation used: 
_   John Hobby, Practical Segment Intersection with Finite Precision
_   Output. Computational Geometry Theory and Application, 13(4), 1999.
_ possible leads re: rendering stuff
_   http://people.csail.mit.edu/bmcutler/
_   http://people.csail.mit.edu/fredo/
_ finish implementation so 1.1 support can return
_   http://dev.processing.org/bugs/show_bug.cgi?id=125
_ alter bezier and curve matrices to use PMatrix
_   float array stuff is redundant with code that's in PMatrix
_   and PMatrix has to be included even w/o P3D so...
_ y2 position of rectangles not same as y2 position of lines
_   happens when the rectangle is flipped on the x or y axis
_   probably a hack that draws the "last" point differently
_ beginShape() 
_   don't allow you to draw stroked items unless stroke() is called
_   don't allow beginShape() if shape is already set
_     (otherwise will cause some very strange errors)
_ figure out a good model for adaptive sizing of circles
_   also goes for arcs, though will be weighted based on arc size
_ point() issues
_   point() being funneled through beginShape is terribly slow
_     go the other way 'round
_   sometimes broken, could be a problem with java 1.5? (was using win2k)
noStroke();
colorMode(RGB, 100);  
for(int i=0; i<100; i++) {  
  for(int j=0; j<100; j++) {  
    stroke(i, j, 0);  
    point(i, j);  
  }  
}  
As an aside, set() is at least 10x faster, and 
perhaps should be used in these examples anyway. 
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114204116;start=0
_ lines
_   z value hack for lines is causing trouble for 2D
_     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1089737928;start=0
_   rewrite line and stroke code, it's a buggy mess
_     lines become 2 pixels thick after a 3D transform 
_     better handling of single-pixel special case
_       flat_line_retribution is a hack, can go away
_ lines are conflicting with type in 2D
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1094174791;start=0
_ mgorbet stroke transparency problem
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1076383048;start=0
_   make sure line() commands don't try to have a fill
_   box is not opaque
_     problem is that lines are drawn second
_     one pixel lines have no z value.. argh
_     bug re: 3d depth sorting on lines
_     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1043894019;start=0
_     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1042004618
_     translate(58, 48, 0); 
_     rotateY(0.5);
_     box(40);
_   line endcaps and line joins. strokeMode()
_     lower priority, but at least leave room
_ strokeWeight is still broken
_   setting stroke width on circle makes odd patterns
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077013848;start=0
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1080347160
_ more weirdness with stroke on rect, prolly not alpha
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1085799526
_ rect is not getting it's stroke color set
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073582391;start=0
_ weird problem with drawing/filling squares
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077226984
_ alpha of zero still draws boogers on screen
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073329613;start=0
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1080342288;start=0
_ break apart functions into local (placement) and override (blitting)
_   just have a "thin_flat_line" option in opengl code
_ color
_   rounding errors on color conversion
_   colorMode(RGB, 1.0); colorMode(255); println(red(color(0.5,1,1)));
_   will return 127, instead of 128.
_ curves
_   non-homogenous coloring for curve vertices
_ implement curveTangent
_   fix-up the curve_init() and the rest to use matrices
_     and not have ugly names (i.e. just g.curveDetail is good)
_ ellipse problems
_   weird ellipse bug with an alpha line in same image
_     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1083221401;start=0
_   scaled ellipse showing up as a hexagon
_     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1083674213
_     http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1084652597;start=0
_   problem with the fill
_     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1077834735
_   z values not set properly on ellipses?
_     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1068752615
_   ellipses are just plain ugly
_     http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1073409011;start=0
_   toxi ellipses don't adapt properly with transformations
_ more blend() modes (the five listed on the thread below?)
_   http://dev.processing.org/bugs/show_bug.cgi?id=132
_   figure out what the modes should actually be: 
_     photoshop: normal, dissolve; darken, multiply, color burn, 
_                linear burn; lighten, screen, color dodge, linear
_                dodge; overlay, soft light, hard light, vivid light, 
_                linear light, pin light, hard mix; difference, 
_                exclusion; hue, saturation, color, luminosity
_     illustrator: normal; darken, multiply, color burn; lighten,
_                  screen, color dodge; overlay, soft light, hard light; 
_                  difference, exclusion; hue, sat, color, luminosity
_     director: Copy, Transparent, Reverse, Ghost, Not copy, 
_               Not transparent, Not reverse, Not ghost, Matte, Mask;
_               (below seems more useful:
_               Blend, Add pin, Add, Subtract pin, Background transparent,
_               Lightest, Subtract, Darkest, Lighten, Darken
_     flash: 
_   DIFFERENCE: C = abs(A-B);
_   MULTIPLY: C = (A * B ) / 255
_   SCREEN: C= 255 - ( (255-A) * (255-B) / 255 )
_   OVERLAY: C = B < 128 ? (2*A*B/255) : 255-2*(255-A)*(255-B)/255
_   HARD_LIGHT: C = A < 128 ? (2*A*B/255) : 255-2*(255-A)*(255-B)/255
_   SOFT_LIGHT: C = B < 128 ? 2*((A>>1)+64)*B/255 : 255-(2*(255-((A>>1)+64))*(255-B)/255)
_ clipping planes
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1058491568;start=0
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1052313604;start=0
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1095170607;start=0
_   things are flying into the camera and halting apps
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1042699742
_   NullPointerException apparently when things way offscreen
_     i.e. glyphrot with scale set to 4
_     or at least that things get ridiculously slow
_     clipping issues here.. but also something in scan converter
_     not clipping areas from offscreen
_       huge geometry slows things way down


CORE / PGraphics2

_ make get/getImpl for PGraphics/PGraphics2
_   make sure there's a loadPixels/updatePixels in PGraphics2
_ slow on java2d, fast on p3d
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115276250;start=3
_ set(x, y, image)
_   x, y not setting with processing
_ don't let users on < 1.3 load JAVA2D
_ set upper bound on framerate so as not to completely hose things?
_ textSpace(SCREEN_SPACE) needs to be faster
_   need flat image implementation that takes no transforms
_   along with 90, 180 and 270 versions of it as well
_   tie to glDrawPixels.. how to clear matrix properly for that?
_ catch sun.dc.pr.PRException?
_   http://dev.processing.org/bugs/show_bug.cgi?id=104
_ gradient-painted lines
Color c = new Color(0x00FFFF00, true);
GradientPaint gradient = 
  new GradientPaint(0,0,Color.red,100,100,c);
GeneralPath gp = new GeneralPath();
gp.moveTo(10, 10);
gp.lineTo(100, 90);
gp.lineTo(20, 50);
gp.closePath();
Graphics2D g2 = ((PGraphics2)g).g2;
g2.setPaint(gradient);
g2.draw(gp);


CORE / PGraphics3

_ rect() changes size as it changes position
_   http://dev.processing.org/bugs/show_bug.cgi?id=95
_ lines skip on 200x200 surface because of fixed point rounding error
_   http://dev.processing.org/bugs/show_bug.cgi?id=267
_ polygons perpendicular to axis not drawing
_   is this a clipping error?
_   probably a triangulation error, because triangles work ok
_   http://dev.processing.org/bugs/show_bug.cgi?id=111
_ concave polygons having trouble if points come back to meet 
_   tesselator/triangulator gets confused when points doubled up
_   might need to avoid previous vertex hitting itself
_   http://dev.processing.org/bugs/show_bug.cgi?id=97
_   graphics gems 5 has more about tessellation
_ P3D not doing bilinear interpolation in text and images 
_   because smooth() has to be set (and smooth throws an error in P3D)
_   how should this be handled? a hint? allowing smooth()?
_   probably just allow smooth() but don't smooth anything
_ ortho() is doing things strangely
_   seems to be mapping to 0, 0 - width/2, height/2
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115919744;start=0
_ odd error with some pixels from images not drawing properly
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115681453
_ simon reports borders on P3D and OPENGL if background() not called
_ clipping not yet completely implemented
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114184516
_ Stroking a rect() leaves off the upper right pixel
_ PPolygon no longer in use and PLine is a mess
_   make a version of PGraphics3 that uses it for more accurate rendering?
_ texture mapping
_   very odd, "doom era" stuff
_   would it be possible to have a 'slow but accurate' mode?
_   http://dev.processing.org/bugs/show_bug.cgi?id=103


CORE / PImage
_ don't grab pixels of java2d images unless asked
_   this is the difference between a lot of loadPixels() and not
_   so important to have it in before beta if that's the change
_ also when drawing an image, sense whether drawn rotated
_   specifically, if drawn rotated 90 in either direction, or 180
_   if just rotate/translate, then can use SCREEN_SPACE for fonts
_ alpha not set on saveFrame, so can't be used in photoshop as a layer
_   http://processing.org/discourse/yabb/YaBB.cgi?board=general;action=display;num=1078441623
_ should image i/o and sound i/o be moved into PImage and PSound?
_ figure out why tiff images won't open with after effects
_   http://dev.processing.org/bugs/show_bug.cgi?id=153
_   open with photoshop, resave, see which tags change
_     specifically, which tags that were in the original image file
_     perhaps something gets corrected? 
_ loadImage() using spaces in the name
_   if loadImage() with spaces when online(), throw an error


CORE / PSound

_ duration as an internal param, not a function
_ When a sound is finished playing, 
_   it should return to 0 so it can play again
_ Putting sound.loop() in draw() seemed to spawn multiple sounds threads?
_ After a sound is paused, it will only play from where it was paused
_   to its end and will not loop again
_ The ref in PSound2 says volume accepts vals from 0...1
_   but values larger than one increase the volume.
_ SoundEvent // is sound finished?? Can't access now. 
_ make java 1.1 version of PSound work properly
_ merge PSound and PSound2 via reflection?
_   once debugged, merge these back together and use reflection
_     (unless it's a messy disaster)
_ Unsupported control type: Master Gain 
_   what's actually causing this error?
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115467831


CORE / Documentation

_ write documentation on general use of processing.core
_   note that applet is itself a Component


CORE / Mac OS X

_ change how java version is determined on mac
_   http://developer.apple.com/technotes/tn2002/tn2110.html
_   (this tn provides no guidance for macos8/9.. gah)
_ little window showing up on macosx when running
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1081284410
_ flicker happening on osx java 1.4, but not 1.3:
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1083184297
_ cursor() broken in applets on macosx?
_   or is it a java 1.4 versus java 1.3 problem?
_   http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1081645955


CORE / General 

_ remove some of the bloat, how can we make things more compact?
_   i.e. if not using 3D, can leave out PGraphics3, PTriangle, PLine
_   PPolygon isn't currently used for anything, should remove it
_   http://dev.processing.org/bugs/show_bug.cgi?id=127


////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////


PGraphicsGL

_ implement hint(NO_DEPTH_TEST) for opengl
_ images are memory leaking pretty badly 
_   texture re-allocated on each frame
_   http://dev.processing.org/bugs/show_bug.cgi?id=150
_ point() doesn't work with some graphics card setups
_   http://dev.processing.org/bugs/show_bug.cgi?id=121
_ blend(), get(), set(), loadPixels, updatePixels() are broken in opengl
_   set(x, y, image) y reversed in openGL 
_   http://dev.processing.org/bugs/show_bug.cgi?id=91
_ when turning smoothing on, internal lines of shapes are visible
_   need to turn off smoothing for the interior of shapes
_   http://dev.processing.org/bugs/show_bug.cgi?id=200
_ gl smoothing.. how to disable polygon but keep line enabled
_   or at least make a note of this?
_   leave smooth off, get the gl object, then enable line smooth
_ ortho() behaving differently in P3D vs OPENGL
_   http://dev.processing.org/bugs/show_bug.cgi?id=100
_ gl points not working again
_ invocationtargetexception in gl with aioobe:
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1115185737
_ don't let users with java < 1.4 load OPENGL
_ fix non-bound textures from mangling everything else
_ fix enable/disable textures for some objects
_ fix endian ordering issues so that things work properly
_ what should the update image function be called?
_ box and sphere are broken in gl
_ metaballs example dies when using box()
_   long string of exceptions, which are also missing their newlines
_ get loop, noLoop, redraw, and framerate all working in opengl
_   needs custom animator thread..
_ depth() shouldn't be needed for opengl unless actually 3D
_   right now the camera doesn't get set up unless you call depth()
_ resolve ARGB versus RGBA versus just A issues for fonts
_   make sure that current scenario works identically on mac
_   if so, just switch the image code to expect alpha in the high bits
_   fonts probably need to be RGBA, not ALPHA style images
_   there's nothing really ALPHA about them?
_ gl alpha on images when flipped around backwards
_   will sorting based on depth help this? also ask simon for ideas
_ rewrite getImpl/setImpl inside opengl
_ bit shifting in opengl, get down to 2 ops by using other image modes
_   i.e. ABGR_EXT might allow for just two shifts instead of 4
_ allow access to native pixel buffer in opengl and power of 2
_   so that no need to copy/update everything
_ need to write an error if people try to use opengl with 1.3 (i.e. on export)
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Contribution_3DOpenGL;action=display;num=1114368123;start=3
_ grabbing sun.cpu.endian throws a security exception with gl applets
_   http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Contribution_3DOpenGL;action=display;num=1114368123;start=3
_ strokeWeight() doesn't work in opengl or p3d
_ how to handle gluTessVertex calls
_   need to re-map through the regular "vertex" command, 
_   but that makes things messy because the glu calls make calls to vertex()
_   and i don't want an additional "pathVertex()" function


PGraphicsAI

_ illustrator export / rendering mode
_   also postscript or pdf export?
_   update illustrator code to use core api
_     even if not actually working properly.. just in naming of things
_   sorting of polygons/lines on simple painters algorithm
_   better lighting model to show darkness at various depths
_     maybe just ultra-high res bitmaps from gl
o   version of BApplet that replaces g. with ai. or pdf.
