Files
processing4/processing/todo.txt
2002-02-26 05:03:47 +00:00

379 lines
15 KiB
Plaintext

QUESTIONS
_ is it necessary to have fullscreen option on toolbar anymore?
_ what's better than POLYGON_CONVEX and POLYGON_CONCAVE?
_ should we use jdk 1.3 or msft vm?
BAGEL / high
BAGEL / high & time consuming
_ 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
_ anti-aliasing
_ alpha
_ concave/complex polygon shtuff
_ eventually POLYGON auto-detects convex/concave polygon
_ also add POLYGON_CONVEX and POLYGON_CONCAVE
_ z coordinates are backwards from gl (at least from mazo)
_ how did this happen? what's the appropriate way to fix?
BAGEL / medium
_ area copying functions
_ copyPixel(x, y, to_x, to_y)
_ copyArea(x, y, w, h, to_x, to_y)
_ copyImage(x, y, w, h, to_x, to_y)
_ 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
_ if BagelImage doesn't load, then image() calls arrayindexoutofbounds
_ better solution for this (error while opening image)
_ and document how image loading works
BAGEL / medium & time consuming
_ picking
_ ability to write data other than image into the buffer
_ user can introduce new kinds of buffers at will (!)
_ lists of names of objects, or the 'line number' buffer
_ but how to determine *where* on object the hit occurs?
_ illustrator exporting
_ version of Illustrator.java that uses bagel api
_ 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
BAGEL / lower
_ move math functions into utility library associated
_ with bagel, because those will be useful on other bagel platforms
_ pApplet will call BagelMath.whatever, so still looks like cos()
_ perlin noise function
_ build in second matrix type: 2d affine
_ make sure line() commands don't try to have a fill
_ write code for reading uncompressed b/w tiff images
_ incorporate for fixed width fonts
_ bresenham (flat) oval function
_ setting accuracy of circles/sphere
_ setting accuracy of curve segments
_ write shearing function
_ optimize rotation functions
_ test winding polygons in different directions
_ test lighting to see how it compares with gl
_ non-homogenous colors for beginShape()
_ currently disabled b/c homogenousColors not set false for vertices
_ and code not written for curve vertices
_ better lockout inside beginShape() to keep other things from happening
_ when stroke in use, stroke letters (currently stroke doesn't affect
_ try with 1.4 frame buffer stuff to see if it's faster
_ will 1.4 work on osx?
_ way to screen grab at higher resolution
_ method for rendering at higher res and then scaling down
_ (even if this causes signficant performance hit)
_ look at glut for other needed shapes
_ setting a fill color when drawing an image should affect the image
_ or maybe image.setColor or setTone to mix a specific color in
_ live video editing, wanting things more procedural
PDE / high
_ get rid of 'kill' button
_ add frame to launched window
_ add maximize event catcher to make fullscreen
_ shift-click on play to go directly into this 'presentation mode'
_ introduce pImage, pFont, pGraphics, pConstants (pSound)
_ serial.messageReceived extra long crap in demo.pde (clean up?)
_ NullPointerException on startup in pde editor buttons
_ shows up on slower machines, probably images not loaded yet
_ int version of min and abs
_ fix bugs from the 'bugs' file
_ then remove the file from cvs
_ draw mode needs to be better for workshops
_ make size() work for draw() mode
_ inside KjcEngine, reach in and grab calls to 'size'
_ if call is not using a constant number, then punt
_ lines being highlighted for errors are off
_ use a vm that won't destroy the screen like sun/ibm does
_ this means msft or newer version of jdk
PDE / high & time consuming
_ exporting to applet/.jar file
_ 'data' directory for all media
_ include other .class files built besides the main one
_ include referenced image and font files (can't do if numbered)
_ exporting applets that have custom name problems:
_ if extends processingapplet, the name user types must be same
_ gets confused about paths and puts boogers in weird places
_ doesn't compile correctly (must first compile with play)
_ doesn't include additional (private) classes
_ when exporting 'name of folder for export...'
_ default name should be from public class <xxxx>
_ because otherwise errors are happening
_ or name from user only determines folder name
_ if extends ProcessingApplet [more compatible]
_ make sure export is compiling first
_ right now have to hit play and then hit export (?)
_ include main class info for executable jar file with jdk > 1.2
_ remove .java and .class files for compiled classes
_ (just clean up the boogers afterwards)
_ it's really a pain to use external files in processing
_ getStream sucks (zach rewrote)
_ should be able to work for application or applets
_ may want to use getResource() (to get things from .jar files)
_ having to put 'f' after everything is a mess
_ related classes
_ better way to do parent and g.rect stuff in related classes
_ implement g. passed into any function called draw()
_ also important for things like cos, sin, max etc
_ but maybe once you're doing more advanced code, that stuff's ok
_ or using inner classes is better b/c class stuff works
_ related classes also need to implement pConstants
_ sketchbook
_ compiling .java files leaves the .class files next to the .java
_ make sure all the dirs in sketchbook added to classpath on startup
_ if new dir added, must restart processing (this is acceptable)
_ ability to include other code from sketchbook directory
_ compile entire sketchbook on startup, check for new files on compile?
_ serial works poorly for starting/stopping applets
_ this is behaving strangely
_ breaks on every 2nd run when using serial apps (or others?)
_ try calling gc on stop as well
PDE / high but after initial pre-release
_ class unloading not happening
_ when doing an extends ProcessingApplet
_ need to add randomizer to even non-self gen'd classes
_ or figure out how to unload old classes.. grr
PDE / medium
_ Compiler.disable() message is weird and doesn't always work
_ probably just remove it for now
_ kjc is really frustrating about some of its error/warning msgs
_ 'var not set' any way to disable these?
_ font usage/substition solution
_ write code to bind/convert java fonts
_ best would be freetype or jdk 1.3/1.4
_ java freetype? jni freetype to build texmap fonts?
_ look at flash file format? (does it have kerning?)
_ version of ProcessingApplet that replaces g. with ai. or pdf.
_ include stdout/stderr in the processing window
_ option to toggle window on/off (not just in properties, but realtime)
_ set # of lines in properties
_ play button not really working
_ never un-highlights, especially with exceptions
_ also when using draw() instead of loop()
_ applet needs to notify runner that it has terminated
_ look into using serialporteventlistener for simpleserial
_ may help with problems due to threading/synchronizing
_ lib/pde.properties should be read using getResource
_ otherwise path issues cause trouble (likely under win98)
_ make PdeEditorButtons wait until mouseup to change
_ (currently doesn't feel as good as it could)
_ check logs to see where we're getting traffic from
_ licensing issues with kjc (before public release)
_ support for moving the camera around
PDE / medium & time consuming
_ talk to simon about error streams and kjc
_ better piping of output from kjc
_ modify kjc to take a PrintWriter, instead of current weird hacks
_ erroneous errors from kjc regarding 'var not inited'
_ is there any way to disable this message?
PDE / low
_ if 'void' left out before loop or setup, cryptic message about
_ 'constructor loop must be named Temporary_23498_2343'
_ add a better handler for this specific thing?
_ shouldn't do so much work (redrawing in loop) if waiting for input
_ mode for when no full animation taking place
_ otherwise machine is continually maxed out while app is running
_ quicktime exporter or image sequence export
_ fairly quick--just use code from dbn
_ bug in paren balancing
_ paren problems comes from overusing parens (too many closing)
_ image[first[i], 0, 0) hitting last paren causes jump to top
_ export as application
_ not difficult to do, just some tweaking once applet export works
_ wrapper that invokes the applet using a copy of the jre
_ main() method needs to set layout manager if jexegen is to be used
_ (msft vm defaults to null layout manager)
_ also make sure pack() is happening
_ stop() method in applet should stop kjc environment
_ should be able to call stop() to 'quit' an applet
_ make close() work to kill applet in kjc
_ save window x, y, width, height to pde.properties on exit
_ stderr in red color
_ run java code besides processing applets
_ if not processing applet, look for a main(), no main give an error
PDE / features
_ might be nice to have some notion of plugins for pde
_ color picker or other things written by folks
_ add all .jar files in lib/plugins on startup
_ make some kind of internal color picker
_ could be a separate window that's always around if needed
_ regexps: http://javaregex.com/cgi-bin/pat/tutorial.asp
_ a better editor:
_ syntax coloring
_ emacs indents and key commands
_ http://mathsrv.ku-eichstaett.de/MGF/homes/grothmann/je/index.html
_ want emacs-style editor that's faster loading than emacs
_ tweak updater a little bit so it's more likely to work
_ use numbered versioning?
_ give updater feedback (progress dialog, error msg)
PDE / science fiction
_ toggle for showing a function name each time its hit
_ toggle for showing line numbers within a function
_ i'm here messages, tie in with breakpoints for debugger
_ lightweight debugger, doesn't slow down, runs in back
_ toggle to show attr/value for some var in simple way
_ comments as debugging descriptors, output to console, shown in context
_ comments as naming for shapes drawn after it,
_ or some other model of naming based on inserted text with "" or // or #
_ could fit nicely with printf-style statements and comments
_ comments would contain descriptions //!blah for printing and formatting
_ sketchbook - doodling/scribbling area.. since wacom tablet easily accessible
_ look into maxx programming
_ single or multi-file cvs, not based on directories
_ i.e. i want illustrator.java for a project
_ version # stored in .java file
_ if a new version is available, asks 'do you want to update?'
_ multi-file: quicksort + sortable
_ check out interface builder for interesting tidbits
MISC / macos
_ crashes when people click on help in top bar (same in DBN)
_ dataInputStream, setUseCaches on the url to false
_ URLConnection.setUseCaches(false)
_ parent.obj.close() on the url
_ serial port code needs to be implemented
_ something that docks better to java serial api
MISC / building
_ build a linux/x86 release
_ write converter for java bagel -> cpp version
_ include #ifdefs for c stuff
_ fix buzz.pl to not create ../../bagel
_ how to use ssh identity file to maintain auth for brancusi
_ write dist.bat for releases
_ don't forget to update 'export' dir with processing releases
_ write code for automatic macintosh releases
MISC / docs
_ 'rot' example not working in release 18
_ list of reserved keywords
_ make note of functions/variables used by ProcessingApplet
_ using them in your app will break things (i.e. init())
_ explain using inner classes and using non-public classes
_ start 'errors' section
_ NullPointerException inside setup usually means no size()
_ ability to write functions and inner classes
_ mention ability to use import statements in java mode
_ ability to do real (but not public) classes in same document
_ make note in documentation about getting access to pixel array
_ pixels[] is in ProcessingApplet
_ check to see if get/set functions in applet actually work
_ fix documentation appropriately
_ image formats supported (gif and jpeg)
_ notes about running on win98 and that stupid startup exception
_ make note in documentation about convex polygons
MISC / advanced docs
_ adding lights
_ control of position/color of default lights
_ controlling camera movements
_ mcguffin sent some notes about this
_ multmatrix/identity
_ constants besides PI, TWO_PI
_ min/max with 3 parameters
_ if (a) ? 3 : 4
_ formatting printf-style things
_ audio input
_ audio synthesis
_ just saying 'millis' in processingapplet, instead of getMillis()
_ keyPressed, keyReleased, mousePressed, mouseReleased
MISC / ui
_ ui for sketchbook/projects handling
MISC / web
_ see about setting up simple bug tracker/feature system
_ queue for people reporting things externally
_ bugzilla but simpler
_ would also be nice for people to be able to vote on features
MISC / technotes
_ bug in sun vm for freaking out
_ also happened with ibm vm.. grr.. (or was it a path problem?)
_ fixed width font format as technote and how to use
_ using runtime.exec to run .ai files
_ code to automatically open generated .ai files (exec(..ai))
_ debugging serial code
_ hyperterminal - watching for binary garbage vs ascii text
_ first debug (maybe even using ascii) and watch in hyperterminal
_ or ship pooterm along with processing
_ flicker - often ascii instead of binary
_ timing of sleep, size of message, timing of write
_ starting processing first, then stamp
_ using transformPoint
_ using curves
_ making things faster
_ memory running out, using ms and mx
_ noBackground() if you're covering everything
_ converting to/from ascii/decimal/hex/binary
MISC / code tidbits for scrapbook
_ delayUntil would be nice to have
_ but at some point there has to be a cutoff
_ have a library of useful code that people can add to programs
_ otherwise things are too simple, and env is a crutch
_ quicksort should probably just be made into 'sort' class
_ it's the only one ever used
_ stringutils.split is a useful one
_ readFileLines et al
_ translateMiddle() ? to move to the middle of the screen?
MISC / things that break often/things to test
_ handling of key events (both as applet and in application)
_ per-vertex coloring for different kinds of shapes
_ that each shape type works as expected
_ what if one short or one too many vertices?
_ transforms are affecting geometry
_ i.e. are line and point working in 3D?
0020
(first semi-public release)
(after first release)
(necessities for book)
_ audio output (play wav, au, aiff(?), mp3)
_ alpha, anti-aliasing