The render methods take a Tag to identify a render pass. It is most commonly
used together with Techniques and Pipelines to implement multipass rendering.
+
+The setup_frame and finish_frame methods provide a mechanism for performing
+once-per-frame operations. This is most useful for effects, which may need to
+do auxiliary rendering. With complex rendering hierarchies, these methods may
+be called multiple times for one frame, but it's guaranteed that no rendering
+will occur before a setup_frame call or after a finish_frame call.
*/
class Renderable
{
matrix exists. */
virtual const Matrix *get_matrix() const { return 0; }
+ /** Called when starting to render a new frame. */
+ virtual void setup_frame() const { }
+
+ /** Called when a complete frame has been rendered. */
+ virtual void finish_frame() const { }
+
/** Renders the renderable without a renderer. This can be convenient in
some simple cases, but most renderables don't need to implement this
method. */