Files
processing4/core/todo.txt
2012-09-10 18:16:09 +00:00

714 lines
31 KiB
Plaintext

0211 core
X remove bad cast in PGL
X new keyEvent methods not firing
X http://code.google.com/p/processing/issues/detail?id=1225
X double check that new key and mouse events are being addressed correctly
X restore deprecated versions of getFont() and getImage()
X Android getBitmap() and getTypeface() will not be restored
X http://code.google.com/p/processing/issues/detail?id=1223
_ remove subsetting stuff from PFont?
_ or use hint(ENABLE_FONT_SUBSETTING)?
hint(OPENGL_ERRORS) should be the opposite to enable the reporting, no?
_ fillMode(NONZERO) and fillMode(ODD) to replace sold(boolean)?
keeping these public for now
get/setNormal
get/setTextureUV
get/setFill
get/setStroke
-> perhaps these go into their own section?
-> or have their own accessor that returns all params?
trying to remember why primitive was changed to kind? (better name?)
these aren't per-vertex:
get/setStrokeWeight
get/setAmbient
get/setEmissive
get/setShininess
boolean isGL() -> now removed
unapproved (made protected)
static shape copying methods
getTop, getBottom, etc
void solid(boolean)
void setParams()
void setPath()
clenaup
colorCalc() methods added to PShape.. should just be used from PGraphics
xml tweaks
_ beginning slash in getChild() threw an NPE
_ do we need a trim() method for XML? or enableWhiteSpace()? or?
_ XML toString(0) means no indents or newlines
_ but no way to remove indents and still have newlines...
_ toString(-1)? a new method?
_ format(2), format(4)... format() -> default to 2 params
_ add loadType() and saveType()... get working with shapes, etc
api to be fixed/removed
_ remove PImage.delete() and friends from PImage, Movie, etc.
_ delete()/dispose() being used in the movie
_ buffer sink methods in movie
_ 'newFrame' is 'available', and ready() is part of that
_ make PShapeOpenGL a cache object
_ createShape() with Java2D not ready to go
_ loadShape() needs to live in PApplet
_ loadPixels() implementation needs to be in PApplet, not PGraphics
docs
_ textureWrap() CLAMP and REPEAT now added
_ begin/endContour()
_ explain the new PGL interface
_ implement callbacks for images and other loadXxxx() functions
_ remove requestImage() and friends
_ callback for requestImage()
_ http://code.google.com/p/processing/issues/detail?id=641
_ remove/update requestImage example
PImage icon;
void setup() {
loadImage("icon.jpg", "iconLoaded");
}
void draw() {
if (icon != null) {
// do something
}
}
// if this version is present, it'll be called
void iconLoaded(PImage image) {
icon = image;
// filename can be ignored
}
// alternate version that can be used, and will be called if present
void iconLoaded(PImage image, String filename) {
icon = image;
// filename can be ignored
}
_ wrap exceptions with die() and warn() methods
_ this way, people can make use of exceptions if they would rather
_ or shut them off if they don't want to
_ also need to explain exception handling in general
_ http://code.google.com/p/processing/issues/detail?id=183
2.0 FINAL / constants/hints
o bring PConstants back in line w/ previous 1.5 (can't renumber)
o consider enable("mipmaps") instead of hint(ENABLE_MIPMAPS)
X clean up PConstants and move things into PGraphics that needn't be available
_ hint(DISABLE_LOADPIXELS) -> faster rendering in Java2D
_ getGLProfiles stuff.. can't do getGL2(), not good x-platform
docs (2.0)
_ add notes about the new shader setup
_ online is there but deprecated
_ doesn't test net connection to see if 'online'
_ only tests whether running inside an applet viewer (not relevant)
_ remove 'online' from the docs
_ createGraphics() with no renderer param to point to JAVA2D
_ docs: P2D and P3D are now OpenGL variations
_ shader support - make decisions, Andres email, etc
_ setAntiAlias() should instead just use parent.smooth
_ antialias -> smoothMode(), smoothQuality(), quality()
_ NEAREST, BILINEAR, BICUBIC, or 0, 2, 4? (need 8x too, so maybe numbers)
_ final decision on pg.setQuality(sketchQuality())
_ should probably be setQuality(parent.sketchQuality())
_ add reference/docs for urlEncode() and urlDecode()
_ verify (and document) public access members of PApplet
_ http://code.google.com/p/processing/issues/detail?id=83
_ add explanation to the reference about using beginRecord() with fonts
_ pdf.textMode(SHAPE)
_ also set the font *after* the record has started
_ maybe should instead make textMode(SHAPE) the norm?
_ and people can change it to textMode(MODEL) if they want?
_ http://dev.processing.org/bugs/show_bug.cgi?id=1535 (no gcode)
_ fix regex documentation (assigned to Shiffman)
_ http://code.google.com/p/processing/issues/detail?id=169
_ OpenGL offscreen requires primary surface to be OpenGL
_ can't really change the smoothing/options on offscreen
rendering/performance/threading
_ problems with 2D rendering speed
_ volatile images
_ http://www.javalobby.org/forums/thread.jspa?threadID=16840&tstart=0
_ http://www.javalobby.org/forums/thread.jspa?threadID=16867&tstart=0
_ http://www.gamedev.net/page/resources/_/technical/general-programming/java-games-active-rendering-r2418
_ look into using BufferStrategy again to improve performance
_ there are more improvements to be made ala issue #729
_ make sure rendering is happening on the EDT
_ (hopefully fixes flicker issues)
_ change PApplet.java javadoc to reflect the change
_ Update http://wiki.processing.org/w/Troubleshooting#Flicker
_ http://code.google.com/p/processing/issues/detail?id=775
_ thread() causes weird flickering
_ http://code.google.com/p/processing/issues/detail?id=742
_ Potential race condition when resizing sketches
_ http://code.google.com/p/processing/issues/detail?id=697
_ move requestFocusInWindow() to safter EDT place
_ PUtil -> move match(), lots of other non-gui functions into own class
_ and merge it in statically via the methods code
_ 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)
_ sort out edge + 1 issue on stroke/fill for rectangles
_ http://code.google.com/p/processing/issues/detail?id=509
_ exactly how should pixel filling work with single pixel strokes?
_ http://dev.processing.org/bugs/show_bug.cgi?id=1025 (no gcode)
_ 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
_ add() to add things to lists, sum() for the math (sum is used less after all)
_ add inputPath() and outputPath() -> sketch folder or sd card
_ or should this just be a change to sketchPath() on Android?
_ also because input/output won't be different (since not data folder)
_ or should this be storagePath() etc?
_ finish adding loadStrings(BufferedReader)
_ decide if we want to keep this (and/or others?)
_ port to android
_ change how beginRecord() works.. passing around PApplet vs PGraphics is gross
_ have to pass PApplet just to make the rendering work to both renderers
_ should instead be a renderer that splits things out
_ if save() returns boolean, does saveFrame()?
_ also need to copy this over to android
_ disable smoothing on noSmooth(), use hint to do 2x vs 4x smoothing
2.0 / methods
_ decision on registered methods
_ remove registerPre() et al
_ add register("pause", ...)
_ size() should be resize(), so it can be overridden (ala pause())
_ add PEvent
_ size() and resize() and whatever?
_ should be setSize(), but that's odd for image files
_ -> resize() is fine with PImage and PGraphics...
_ we may be inheriting the resize() from Java -> make it final?
_ add resize().. make it call setSize().
_ also needs to do a redraw if noLoop() has been called
_ the registered method for size() also needs to be called
_ need to wrap mouse/key events for p5
_ need a version that works with both android and desktop
_ also need to interleave events properly (as per report)
_ touch events.. can't do MouseEvent et al with Android
_ http://dvcs.w3.org/hg/webevents/raw-file/tip/touchevents.html
_ http://www.html5rocks.com/en/mobile/touch.html
_ decision: go with what looks like javascript/ios
_ touchEvent(), gestureEvent()?
2.0
_ get() or copy()? for vectors, image, etc.
_ PVector chaining -> Dan looking into this
_ PNode.getChildren() shouldn't make a new array.. toArray() can do that
_ toArray(), toArray(float[]), toVectorArray(), toVectorArray(PVector[])
_ toColorArray(), toColorArray(float[])...
_ remove blend(), add blendMode()
_ fix blue-channel bias on blend() so that blendMode() will work in 2.0
_ http://code.google.com/p/processing/issues/detail?id=475
_ load/save methods.. is it save("blah.svg") or saveSVG("blah.svg")
X also works that way with tables
X decision: useExtension() or something like that
_ how should stroke work w/ arcs?
_ has an effect elliptical arc
_ http://code.google.com/p/processing/issues/detail?id=130
X decision: we should do pie, you can make the other kind w/o it
_ add an additional parameter for the others
_ http://code.google.com/p/processing/issues/detail?id=711
_ require people to put things in the data folder
_ make sure that loadXxxx() methods are used after init()
_ nasty errors when loadImage/Font/createFont/etc used outside
_ decision: add error messages where possible
_ idea: set frameCount to -1 when setup not run yet?
_ then set frameCount to 0 when setup() starts?
_ PShape API to handle internal vertex stuff
_ add deconstruct() method for paths
_ toArray() and toVector()
_ setVertex(0, x, y), setVertex(0, x, y, z)
_ how much of com.benfry.* should go in?
_ Table? StringIntPairs? JSON? MD5? Integrator? ColorIntegrator?
_ decision: depends on if we can think of a good name
_ if PShape3D, then is it PShape2D? or do you handle both the same?
_ svg fonts
_ would be nifty if we could convert on the fly to ttf for speed...
_ http://code.google.com/p/processing/issues/detail?id=748
_ check on DXFWriter, since it used to subclass P3D
_ at least implement is3D?
_ sleep time needs to be set *much* higher for dormant applets
_ 10s should be fine--no need to keep spinning (bad for android too)
_ just call interrupt() when it's time to get back to work
_ add methods to PShape to apply all transformations in the tree
_ need to clean up the hints in the reference/source
vector
_ PVector discussion with Dan
_ jer and dan will look at their code, plus toxiclibs
_ modify PVector to include better methods for chaining operations
_ http://code.google.com/p/processing/issues/detail?id=218
_ add screen(PVector), model(PVector) and world(PVector)?
decisions to make
_ possible addition for 'implementation' variable
_ http://code.google.com/p/processing/issues/detail?id=281
_ should map() actually constrain to the low and high values?
_ or have an alternate version that does that? (boolean param at end?)
_ decide whether to keep:
_ public float textWidth(char[] chars, int start, int length)
_ add version of math functions that use doubles?
_ what other methods should work with doubles? all math functions?
_ seems like internal (mostly static) things, but not graphics api
_ add shuffle methods for arrays
_ http://code.google.com/p/processing/issues/detail?id=229
_ don't allow things inside begin/endShape() that aren't possible
_ better lockout inside beginShape() to keep other things from happening
_ 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)
_ http://code.google.com/p/processing/issues/detail?id=135
_ make determination on shape(x,y,z,w,h,d) or no
_ new PGraphics(... OutputStream)
_ http://code.google.com/p/processing/issues/detail?id=246
_ already added for PDF, just need to work out the API
looping/events
_ key and mouse events delivered out of order
_ http://code.google.com/p/processing/issues/detail?id=79
_ key/mouse events have concurrency problems with noLoop()
_ http://code.google.com/p/processing/issues/detail?id=187
_ need to say "no drawing inside mouse/key events w/ noLoop"
_ redraw() doesn't work from within draw()
_ http://code.google.com/p/processing/issues/detail?id=195
stop() mess
_ in PApplet.main(), windowClosing() should probably be calling 'exit()'
_ or rather, we should never call System.exit(0), ja?
_ dispose() method in PApplet should be empty so ppl can override
_ move that stuff to destroy()
_ pause()/resume() need to work on the desktop side as well
_ notify ddf when pause/resume implemented
_ stop() not called in 1.5
_ http://code.google.com/p/processing/issues/detail?id=636
_ In reply to c#1, I noticed that dispose() is getting called. stop() isn't.
_ static mode sketches seem to break ESC... noLoop() problem?
_ need to find another way to get ESC on static mode
_ b/c static mode sketches *do* finish because they have no draw()
_ sort out destroy(), stop(), pause() et al
_ ColorSelector should stop/pause when not visible
_ right now it's doing a low-level looping
_ start()/stop() perform like onPause()/onResume()
_ all of which call pause() and resume()
_ destroy() (from Applet) calls (our) dispose()
_ destroy() shouldn't call exit()... change from lonnen
_ calls ((PApplet)this).exit() instead of stop() (since stop is pause)
_ notes
_ exit() should do the actual exit
_ if inside draw, let it finish the loop
_ if not looping, need to do it immediately
_ does stop() unwind the thread, or does the thread unwind call stop?
_ browser will call start() and stop() methods
_ need to figure out start/stop signals coming from the browser
_ is it dispose/destroy?
_ stop() not getting called
_ http://code.google.com/p/processing/issues/detail?id=43
_ 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
_ when closing a sketch via the close box, make sure stop() getting called
X found a problem for release 0133
_ test to see if it's working
_ what's up with stop() vs exit()?
_ need to get this straightened for p5 (i.e. bc has this problem)
_ make sure the main() doesn't exit until the applet has finished
_ i.e. problem with main calling itself multiple times in Alpheus
_ if exit() (or stop) is called, then System.exit() gets called,
_ even though the main() wants to keep going
_ hitting ESC in a running noLoop()ed sketch won't close the sketch?
o work through serial examples
_ noloop ref even says that redraw will be called on resize, make sure it is
_ focus not coming through, ESC no longer working(?)
_ stop() not called in 1.5 when closing the sketch window
_ http://code.google.com/p/processing/issues/detail?id=636
_ 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()
_ what's the difference with ascent on loadFont vs. createFont?
_ svg font support seems nice.. add PFontSVG
_ font rotation (native font problem?) with natives?
_ http://code.google.com/p/processing/issues/detail?id=692
_ text position is quantized in JAVA2D
_ text placement is ugly, seems like fractional metrics problem
_ http://code.google.com/p/processing/issues/detail?id=99
_ text(char c) with char 0 and undefined should print nothing
_ perhaps also DEL or other nonprintables?
_ book example 25-03
_ accessors inside PFont need a lot of work
_ improve font metrics
_ http://java.sun.com/products/java-media/2D/reference/faqs/index.html#Q_How_do_I_obtain_font_metrics
_ 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
_ 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...
_ 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
_ show an error when using a font character that isn't available
_ maybe fall back on other characters instead?
CORE / PGraphicsJava2D
_ catch sun.dc.pr.PRException?
_ http://code.google.com/p/processing/issues/detail?id=39
CORE / PImage
_ make loading images lighter, ala android
_ require loadPixels to get 2D image data from images
_ only load PImage pixels when necessary (faster for java2d)
_ http://code.google.com/p/processing/issues/detail?id=60
_ loadImage() should use the faster loading methods
_ hint(DISABLE_IMAGE_CACHING)
_ add a note to the loadImage() reference page
_ 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?
_ work through loadPixels in PImage, how consistent do we need to be?
_ with get() and set() methods, this gets really tricky (too slow)
_ could optimize by keeping a java image around, but table for later
_ it's too significant a change, and not enough time to test
_ img.get() quirks
_ http://code.google.com/p/processing/issues/detail?id=167
_ image resizing is ugly (just use java2d?)
_ also deal with copy()/blend() inaccuracies
_ http://code.google.com/p/processing/issues/detail?id=332
_ blend() bugs with identically-sized images
_ http://code.google.com/p/processing/issues/detail?id=285
_ transparency issue with JAVA2D
_ http://code.google.com/p/processing/issues/detail?id=182
_ copy(image with transparency) doesn't keep the transparency at start up
_ http://code.google.com/p/processing/issues/detail?id=601
_ accuracy problems make alpha channel go to FE with image.copy()
_ http://code.google.com/p/processing/issues/detail?id=219
_ improve blend() accuracy when using ADD
_ http://code.google.com/p/processing/issues/detail?id=133
_ includes code for a slow but more accurate mode
_ for a PGraphics2D, should its image cache object be the memoryimagesource?
_ loading lots of images is a problem, describe how to unload
_ is it possible? necessary to call delay(5) or something?
_ 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
_ http://code.google.com/p/processing/issues/detail?id=60
_ add ability to control jpeg compression level with save() and saveFrame()
_ or just write a better example for this one?
_ http://code.google.com/p/processing/issues/detail?id=58
_ should PImage smoothing not be turned on by default? handle this where?
_ http://code.google.com/p/processing/issues/detail?id=165
_ Semitransparent rect drawn over image not rendered correctly
_ http://code.google.com/p/processing/issues/detail?id=182
CORE / PShape
_ we can do hit testing (at least in 2D) now that we rely on java2d
_ for subclasses, make it easy to grab the structure of vertices
_ actually, just use PShape internally and this will be easier
_ for PShape, need to be able to set the origin (flash people)
CORE / PShapeSVG
_ implement support for SVG gradients from Inkscape
_ http://code.google.com/p/processing/issues/detail?id=1142
_ need to handle <!ENTITY tags in XML for SVG documents
_ get entity tags working in xml library for SVG
_ cover the svg changes in a future release
_ load PShape from a string object
_ http://code.google.com/p/processing/issues/detail?id=277
_ breaking up classes / figure out how to handle fonts subclass
_ when using get(), reset the bounds for the objects
_ otherwise it's always relative to the original document
_ support for text (shouldn't be too bad, use createFont)
_ implement text spans for svg output
_ try enabling blending modes
_ add better support for attributes buried in styles (support ai9/10/11)
_ test what happens when transparency is used with gradient fill
_ look into transformation issues... guessing this is probably wrong
_ this may be what's throwing off the radial radius transform
_ implement A and a (elliptical arcs)
_ http://code.google.com/p/processing/issues/detail?id=130
_ check for any other pieces of missing path api
_ multiple sets of coordinates after a command not supported
_ i.e. M with several coords means moveto followed by many linetos
_ also curveto with multiple sets of points is ignored
_ document somehow.. svg viewer will be discontinued
_ http://www.adobe.com/svg/eol.html
CORE / OpenGL (Andres)
_ hint(DISABLE_PERSPECTIVE_CORRECTED_STROKE)
_ textureWrap(CLAMP / REPEAT)
_ implement setImpl() instead of set() inside PGraphicsOpenGL
_ http://code.google.com/p/processing/issues/detail?id=121
_ use glCopyPixels() or glReadPixels() instead of copy() method
_ http://code.google.com/p/processing/issues/detail?id=119
_ copy() does not update the screen with OpenGL
_ http://code.google.com/p/processing/issues/detail?id=118
_ set() requires updatePixels() with OpenGL
_ http://code.google.com/p/processing/issues/detail?id=89
_ first few frames of OpenGL sketches on Windows run slowly
_ http://code.google.com/p/processing/issues/detail?id=107
_ implement textMode(SHAPE) with OPENGL
_ http://code.google.com/p/processing/issues/detail?id=738
_ Signature issue on contributed libraries affects unrelated opengl sketches
_ http://code.google.com/p/processing/issues/detail?id=261
_ simple NPE in OpenGL causes really large, not useful, stack trace
_ why is initPrimarySurface() public?
_ why is setFramerate() public? (also should be setFrameRate or just frameRate)
_ where did hintEnabled() come from?
_ remove 'params' from createImage (is it on loadImage too?)
_ OpenGL noSmooth() problems
_ http://code.google.com/p/processing/issues/detail?id=328
_ inconsistent anti-aliasing with OpenGL
_ http://code.google.com/p/processing/issues/detail?id=217
_ OS X slow with FSEM enabled
_ http://code.google.com/p/processing/issues/detail?id=737
_ chopping out triangles in OpenGL (though it's only 2D drawing)
_ http://code.google.com/p/processing/issues/detail?id=193
_ get() with OPENGL is grabbing the wrong coords
_ http://code.google.com/p/processing/issues/detail?id=191
_ deal with issue of single pixel seam at the edge of textures
_ should vertexTexture() divide by width/height or width-1/height-1?
_ http://code.google.com/p/processing/issues/detail?id=76
_ lousy graphics cards cause background to flicker if background() not used
_ http://code.google.com/p/processing/issues/detail?id=146
_ OPENGL sketches flicker w/ Vista when background() not used inside draw()
_ Disabling Aero scheme sometimes prevents the problem
_ Updating graphics drivers may prevent the problem
_ textAlign(CENTER) with P3D and OPENGL produces messy result
_ probably rounding error with the images
_ http://code.google.com/p/processing/issues/detail?id=65
_ when turning smoothing on, internal lines of shapes are visible
_ add an edge flag when tesselating
_ mind the opengl tesselation flags
_ need to turn off smoothing for the interior of shapes
_ http://code.google.com/p/processing/issues/detail?id=53
_ strokeCap() and strokeJoin() for use with OPENGL
_ http://code.google.com/p/processing/issues/detail?id=123
_ ellipse scaling method isn't great
_ http://code.google.com/p/processing/issues/detail?id=87
_ improve hint(ENABLE_DEPTH_SORT) to use proper painter's algo
_ http://code.google.com/p/processing/issues/detail?id=51
_ polygon z-order depth sorting with alpha in opengl
_ complete the implementation of hint() with proper implementation
_ gl alpha on images when flipped around backwards
_ will sorting based on depth help this? also ask simon for ideas
_ need to merge sorting/drawing of lines and triangles
_ lines will occlude tris and vice versa
_ will need to split each based on the other
_ sort issues will affect both
_ Stroking a rect() leaves off the upper right pixel
_ http://code.google.com/p/processing/issues/detail?id=67
_ implement a more efficient version of blend()
_ http://code.google.com/p/processing/issues/detail?id=120
_ Implement anisotropic filtering when using OPENGL
_ http://code.google.com/p/processing/issues/detail?id=502
_ Signature issue on contributed libraries affects unrelated opengl sketches
_ http://code.google.com/p/processing/issues/detail?id=261
_ remove matrixMode(), add a projection() method
_ remove screenBlend(), textureBlend() from PGraphics et al
_ have andres take over all current GL issues in the tracker
_ opengl applet problems with tabs - needs to handle stop() and start()
_ http://code.google.com/p/processing/issues/detail?id=196
_ stop() called between tabs/pages, start() may be called again
_ http://java.sun.com/docs/books/tutorial/deployment/applet/lifeCycle.html
_ really, stop() should just call noLoop() (and start re-enable if done)
_ and on android, start/stop can be used to save state information
_ need to fix opengl applets so that we can safely kill P3D
_ shared intf for 3D view data across PGraphicsOpenGL and PGraphicsAndroid3D
_ libraries have to do a lot of casting
_ opengl isn't drawing rectangles out to raw properly with fonts
_ when not in textMode(SHAPE) should have rects
CORE / Mac OS X
_ set the application name to sketch name (not processing.core.PApplet)
_ System.setProperty("com.apple.mrj.application.apple.menu.about.name", ...)
_ -Xdock:name=<application name>
_ -Xdock:icon=<path to icon file>
LIBRARIES / PGraphicsPDF
_ pdf not rendering unicode with beginRecord()
_ http://code.google.com/p/processing/issues/detail?id=90
_ beginRecord() doesn't use current settings of the sketch
_ sometimes reported as a bug, but probably not a good way to
_ consistently carry these over
_ pdf sketches exiting before writing has finished
_ people have to call exit() (so that dispose() is called in particular)
_ when using noLoop() and the PDF renderer, sketch should exit gracefully
_ because isDisplayable() returns false, there's no coming back from noLoop
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
LATER / Optimize
_ put a wrapper around InputStream returned by createInput
_ that actually has some notion of the length of its input
_ that way, methods could use the information when reading
_ loadBytes() needs optimization
_ don't bother using a buffering stream, just handle internally. gah!
_ can loadBytes() be improved by querying file size first?
_ background
_ this would require a new version of createInput(), which would query
_ the URL (or file) for an actual file size. the size is not always
_ available, so it can't be relied upon, but would help in some cases.
_ loadBytes() is used for images.. ouch
_ might be worth doing a test to see if it actually would help at all
_ before rewriting all of createInput()
LATER (post 2.0)
_ gui priorities
_ + Label
_ + Button
_ + Scrollbar/Slider
_ - Checkbox
_ - Radio
_ . List
_ . Textblock
_ \ Knob
_ \ Progress bar
_ \ Toggle
_ implement JSON class
_ http://www.xml.com/lpt/a/1658
_ http://www.json.org/java/
_ add shader support
_ createColor() instead of color()?
_ route all exceptions through PException and catch method
_ advanced users can override the method if they want
_ or you can set an option to have PExceptions be raised
_ decision: just copy & paste the serial/net code..
_ until we can find a more compelling example
_ actual shape api for things like rectangles and whatnot?
_ should we kill import xxxx syntax for libraries?
_ just give up and use a gui for it
_ cons: copy & paste breaks
_ pro: there's no guaranteed 1:1 between packages and single libraries
_ method of threading but queue an event to be run when safe
_ e.g. queueing items like mouse/keybd, but generic fxns
_ for begin/endRecord, use a piggyback mechanism
_ that way won't have to pass a PApplet around
_ this has a big impact on the SVG library
_ in fact, this maybe should be a library that does it
_ so that the file size can be much smaller
_ add setOutput() method across other renderers?
_ opengl.jar with eclipse
_ auto-extract native libs from opengl.jar
_ to remove java.library.path problems (!)
_ introduce calc()
_ semantics of this are just too tricky, especially when it's not clear
_ what's actually gained by the split--would have to do weird hacks
_ to get the accum buffer, etc. to work anyway
_ add some sort of unprojectX/Y/Z method (based on glu fxn)
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=OpenGL;action=display;num=1176483247
_ add a timer(obj, "functionname", 45) method
_ this can be used to schedule something to happen at a specific time
_ or import the swing timer (for actionPerformed)
_ also add interval("functionname", 40)
_ should fill(c) instead be fillColor(c)?
_ should color(123, 4, 99) instead be createColor()?
_ rounding errors on color conversion
_ colorMode(RGB, 1.0); colorMode(255); println(red(color(0.5,1,1)));
_ will return 127, instead of 128.
_ gray that's greater than the colorMode() can produce strange colors
_ http://dev.processing.org/bugs/show_bug.cgi?id=432 (no gcode)
_ 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
_ add stroke() to type
_ more for doing outlines-only and that sort of business
_ gradients
_ use gradients in a class for the svg lib for now
_ don't add api to main p5 stuff (though maybe setPaint/noPaint api?)
_ gradient-painted lines and fills
_ java2d will do both line and fill, illusfarter only does fills
_ gradients not supported in java2d
_ http://dev.processing.org/bugs/show_bug.cgi?id=371 (no gcode)
_ bspline or nurbs (later, want to do the 3D/arch stuff correctly)
_ non-homogenous coloring for curve vertices
_ consider bringing back text/image using cache/names
_ exactly how pixel-filling works for strokes
_ http://processing.org/bugs/bugzilla/1025.html
_ deprecate loadPixels for 2.0? need to move away from it
_ mostly just change the examples to not use loadPixels() anymore
_ put a Hash<Something> class in there
_ will this work to sort by the values?
_ there was another concern as well..