Sirenic TODO list

Legend :

  - Todo
  + Done, waiting to integrate
  * Done, integrated
  x Obsolete, Removed

  < Delegated

  - High Priority
    - Try not using 64,64,64,64 default weights..this probably limits movement (squared off curves in delta field)
    - Somehow, I lost the source files for overlay renderering...ugh. Rewrite these (was relatively easy)
    - Render to YUV. Lookup table - non planar types are prob most efficient.
    - Apply Sirenic transform to the luminance channel of a static YUV image.
    - Generic formula class to apply to line rendering, chain machine formation, etc.
    - DrawBitmap(...) - Support various types..Additive, Average, Difference, Etc..
      - Then, use the output of a mini-sirenic instance as the input for DrawBitmap...!
    - Sirenic maintains target FPS, current FPS, and forcing timing (+possibly auto throttling)
  - Medium Priority
    - Multiple windows within a Sirenic object (multimonitor w/out spanning)
    - Font rendering needs to be optimized (currently taking full render hit every frame)
    - Optimally, view lock should grab the newest (non-locked) buffer. If there are available buffers in a chain with
      more than 2 buffers (since previousBuffer is a transform dependency), the available buffer(s) should be used to
      continue rendering despite a slow renderer!

