
Stuff what to do (somewhat in order):

* Add Gradient fill

  Easy enough, right?


* implement function calls w/ fake stack and callTarget(/code:func);

  _s -> stack pointer
  '_s'&(num) -> stack locations


* Make importable blocks

  Seems kind of wasteful to run lots of code to define a shape that never
  changes.  It'd be better to dump the rendered shape definition out to a file
  and pull that in when needed.


* Read fonts from TTF/PS


* Add Bitmap

  read in pngs and gifs.  Allow access to bitmap matrix.


* Add CXForm, ButtonSound to button, access to button shape matrices


* Add Sound

  Need definesounds now, and maybe adpcm/uncompressed formats.


* Add Text->shape

  Turn a text object into a shape object, be able to change fill and line.


* Add font metrics accessors to font object

  getAscender, getDescender..  Need to be able to see how big text will be
  before it gets written.


* Decide how blocks should work

  Looks like the architecture I originally had in mind, with block objects
  abstracted into a uniform interface, might not be so good.  I'm writing
  a lot of spaghetti code to deal with special cases, worst case being
  streaming sound stuff.  bleh.


* add proper error messages to compiler

  "parse error" just isn't quite lucid enough.


* getBounds for all drawable types

  ..so you can center text 'n' stuff.


* Make animation easier

  Setting position on every frame is tedious.  I'd like to be able to tell
  an instance "head to point (x,y) in n frames".  Maybe simple newtonian
  mechanics, like "setVeloctity" and "setAcceleration".  Or maybe I'll just
  make utility code in php first and see what works.

  Think the goal should be to not have the user stuck in the timeline, be
  able to put anything anywhere at any time.


* Make transforms easier

  Order of transform operations is currently fixed (skew, rotate, scale,
  translate).  So you can't easily rotate around a point off-center.  I made
  path objects trying to solve this, but they were confusing, hard to use.

  And, as noted already, there are transforms we can't get at now, like in
  buttons and text.


* Clean things up

  Update header files.  Make names uniform.  Remove unused code.
  Fix ugly hacks.  Et cetera.


* Clean up PHP ext code

  Object interface has reportedly changed a bit.  Need to look into that.


* Make output thing an object

  ..so that we can do more useful stuff like
    output->writeBuffer(output, buffer, length), and not have to pass around
    the void *data thing.

* Make php code a standalone module

  I guess.  A good idea?


* Figure out where things need to be freed
