X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpipeline.h;fp=source%2Fpipeline.h;h=f8fdb5450b18d42eb621ff0fb80141918b9ecbc8;hb=904de4f7fd994886adbd3a6c03bc1b7c14ebc562;hp=d39bce5af9689523532412d05f3cff0eac75ec81;hpb=900cf40469972b1f32a6dbac95c42f46c3726fa8;p=libs%2Fgl.git diff --git a/source/pipeline.h b/source/pipeline.h index d39bce5a..f8fdb545 100644 --- a/source/pipeline.h +++ b/source/pipeline.h @@ -17,6 +17,28 @@ class DepthTest; class Lighting; class PostProcessor; +/** +Encapsulates all of the information used to produce a complete image in the +framebuffer. This is the highest level rendering class, combining Renderables +with a camera, lights and some other influential objects. + +A Pipeline is also a Renderable itself. Externally, it only exposes the +default pass. Internally, it can hold any number of passes, which are invoked +in sequence when rendering the default pass is requested. Each pass can have a +Lighting, a DepthTest and a Blend to control how it is rendered. + +A Pipeline's render method should normally be called without a Renderer; it +will create one itself, using the camera specified for the Pipeline. If a +Renderer is passed, its camera will be used instead. + +Renderables are rendered in the order they were added to the Pipeline. While +it's possible to remove renderables as well, using a Scene is recommended if +frequent add/remove operations are needed. + +Pipelines may have post-processors to apply full-screen effects. Framebuffer +objects are automatically used to pass render results to the post-processors. +High dynamic range and multisample rendering can also be used. +*/ class Pipeline: public Renderable { public: