Methods and apparatus, including computer program products, for rendering
objects. According to one aspect, a program has instructions to receive
at run time, in a render manager, a request for rendering a first object
and an output destination for rendering the first object, which is an
object in a graph of objects; instructions to select a first renderer
appropriate to the object and the output destination; and instructions to
invoke the selected first renderer to render the first object.
Advantageous implementations include instructions in the selected first
renderer to call back the render manager when the selected first renderer
encounters a second object to be rendered in rendering the first object,
where the second object cannot be rendered by the selected renderer; and
instructions in the render manager to select and use a second renderer to
render the second object.