Files
processing4/core/todo.txt
2013-05-18 11:49:13 -04:00

679 lines
31 KiB
Plaintext

0218 core (2.0b10 or 2.0)
before 2.0
_ PImage.loadPixels() shouldn't be calling out to the renderer
_ setting image.parent = null for it makes it work again for get().save() case
_ PShape should be cached as well
_ add options for image.save() (or saveImage?)
_ add quality=[0,1] for jpeg images
_ add dpi=[0,n] for for png images
high
_ draw() called again before finishing on OS X (retina issue)
_ https://github.com/processing/processing/issues/1709
_ Linux sometimes not responding correctly w/ the size() command
_ https://github.com/processing/processing/issues/1672
_ function that will convert awful CSV to TSV.. or something else?
_ maybe to write binary instead? then read the binary file once it's ok?
_ if loading from a File object
_ (or PApplet is passed in and we can check online)
_ then check the (probable) size of the file before loading
_ no column max/min functions since it needs to be per-datatype
_ better to use float mx = max(float(getColumn(3)));
_ but what to do with null entries?
_ need a method to reset the row/column indices after add/remove
_ or just make sure that it's covered for all cases
_ prefixes like # as comments? easy to remove?
_ naming for these (or whether to include hash)
_ Table createSubset() -> leave out?
_ String[] getUnique(col) (SQL DISTINCT, sort --unique)
_ HashMap<String,Integer> getUniqueCount(col)
_ really need to get an option to grab matches based on a col
_ i.e. get unique tables based on a particular column
_ or, get uniques, then grab rows that match a name in a particular col
_ create table from TableRow iterator...allows for subset and find
_ downside is types are not included
_ getMaxFloat() (whole table) or getMaxFloat(col)
_ that's max(getFloatColumn(n))
_ also important b/c can leave out missing values
_ dictionary support
_ join tables together (static is kinda gross)
_ table.append(anotherTable)?
_ table.join(anotherTable)
_ getInt() on categorial to return index?
_ getCategories() and getCategory() methods to query names?
data
_ add indent= as option for XML save
_ add indent= as option for JSON save
_ not doing print() methods, since alternatives are more descriptive
_ println(obj) and obj.write(System.out) are both better
_ can we use String... for options? or does it screw up the method signature?
_ and would we have to always concatenate arrays to prepend extensions, etc
_ include Instant and Interval? (or just Time and TimeSpan)
_ it's going to be File or Reader (mostly BufferedReader) everywhere
_ though TableODS needs an InputStream...
_ and XML could use InputStream if we hope to be able to reflect doc encoding
_ ok, so File, Reader, and InputStream (where needed)
_ setMissingXxxx() -> should this live in PApplet? be static?
_ cons: static stinks, diff tables might use diff values
_ will also need an iterator for the Dict class ala Map.Entry
_ using Iterable for rows(), keys(), etc
_ generally more efficient for Table, but slower for FloatHash and IntHash
_ could use an int array instead, but a bit hokey in places
_ Iterable, Iterator, or [] returned for keys(), rows(), etc.
_ list, dict, json, table are each more efficient at different things
_ keys(), rows(), etc. should return something Iterable
_ whether that means an array or an actual Iterator or even a Set
_ that way we can do what's most efficient
_ then we add keyIterator() and others to handle the other case (deletion)
_ blogs.oracle.com/CoreJavaTechTips/entry/using_enhanced_for_loops_with
_ means that JSON.keys() -> JSON.keyIterator(), JSON.keySet() -> JSON.keys()
_ what should they all return?
_ remove -> true/false based on whether it found something?
_ remove all -> the number removed?
_ List: remove(), append(), index(), etc all use values
_ removeIndex(index) is the other
_ otherwise remove() would be the only one that dealt with indices
_ Dict will use remove(key), so using remove(index) as default
_ and removeValue(value) is probably used less
_ introduce remap() instead of map() (if not deprecate?)
andres
_ P2D/P3D sketches don't get focus until clicked
_ also problem for Java2D when canvas is used?
_ need to standardize canvas handling
_ https://github.com/processing/processing/issues/1700
_ warning message present
_ Deleted 1 texture objects, 0 remaining
_ shader syntax (Andres request)
_ might also need a define inside the shader to control what type it is
shape
_ major surgery to put loadShape() back into PApplet/PGraphics
_ then have the OpenGL or Java2D versions as cached objects
_ PShape s = createShape(); / s.beginShape(QUADS);
_ createShape() not yet implemented for Java2D
_ http://code.google.com/p/processing/issues/detail?id=1400
_ 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()
_ colorCalc() methods added to PShape.. should just be used from PGraphics
_ loadShape() needs to live in PApplet
_ make PShapeOpenGL a cache object
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?
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
_ splice() throws ClassCastException when used with objects like PVector
_ http://code.google.com/p/processing/issues/detail?id=1407
_ deprecate the older splice() etc API inside PApplet?
_ 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
_ bring PConstants back in line w/ previous 1.5 (can't renumber)
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
_ explain the new PGL interface
_ can't really change the smoothing/options on offscreen
_ is this still true?
rendering/performance/threading
_ hint(DISABLE_LOAD_PIXELS) -> faster rendering in Java2D
_ 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
_ 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 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
2.0
_ 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
_ 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[])...
_ 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
_ 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)?
_ maybe screenVec()? or screenXYZ()?
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
_ if save() returns boolean, does saveFrame()?
_ also need to copy this over to android
_ "translate, or this variation of it" when using text(s, x, y, z) accidentally
_ change to be the text command
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
CORE / PFont and text()
_ text() wraps words differently depending on whether space seen or not
_ http://code.google.com/p/processing/issues/detail?id=439
_ remove subsetting stuff from PFont?
_ or use hint(ENABLE_FONT_SUBSETTING)?
_ 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?
_ some font weights cannot be specified/selected on OS X
_ https://github.com/processing/processing/issues/1727
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
_ http://code.google.com/p/processing/issues/detail?id=60
_ loadPixels() implementation needs to be in PApplet, not PGraphics
_ this is a tricky thing to implement because of how OpenGL is handled
_ 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?
_ fix blue-channel bias on blend()
_ http://code.google.com/p/processing/issues/detail?id=475
_ 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
_ deprecate the blend() function
_ implement unified means to specify smoothing level for image scaling
_ http://code.google.com/p/processing/issues/detail?id=165
_ blend() and copy() are not pixel accurate for copy/scale
_ http://code.google.com/p/processing/issues/detail?id=285
_ accuracy problems make alpha channel go to FE with image.copy()
_ http://code.google.com/p/processing/issues/detail?id=219
_ 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 A and a (elliptical arcs)
_ http://code.google.com/p/processing/issues/detail?id=130
_ 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
_ 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
_ 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)
_ ortho() issues
_ http://code.google.com/p/processing/issues/detail?id=1240
_ 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
_ 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
_ https://github.com/processing/processing/issues/777
X 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
_ OS X slow with FSEM enabled
_ http://code.google.com/p/processing/issues/detail?id=737
_ 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
_ 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
_ 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
_ 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>
CORE / Events
_ 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()?
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)
_ handle repeat key events
_ and/or holding keys down and discerning repeats
_ https://github.com/processing/processing/issues/1622
_ fillMode(NONZERO) and fillMode(ODD) to replace solid(boolean)?
_ create PVec2D and PVec3D as separate classes
_ 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?
_ 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..
_ save() should probably come out of image, ja?
_ async requests
_ Request r = createRequest("http://p5.org/feed/13134.jpg");
_ Request r = createRequest("http://p5.org/feed/13134.jpg", "callbackName");
_ Request r = createRequest("http://p5.org/feed/13134, "callbackName", "jpg");
_ 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