We need a mechanism for updating "composite" primitives.
This should probably be done by letting the user specify Python code that will be executed before any of a set of primitives is rendered. Subclassing a "composite" class may help to organize this.
The "frame" object now provides compositing capability.