Equalizer  1.8.0
Parallel Rendering Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
seq::Renderer Class Referenceabstract

A renderer instance. More...

#include <renderer.h>

+ Inheritance diagram for seq::Renderer:
+ Collaboration diagram for seq::Renderer:

Public Member Functions

SEQ_API Renderer (Application &application)
 Construct a new renderer. More...
 
virtual SEQ_API ~Renderer ()
 Destruct this renderer. More...
 
Operations
virtual SEQ_API bool init (co::Object *initData 1)
 Initialize the renderer. More...
 
virtual SEQ_API bool exit ()
 De-initialize the renderer. More...
 
virtual SEQ_API bool initContext (co::Object *initData)
 Initialize a rendering context. More...
 
virtual SEQ_API bool exitContext ()
 De-initialize a rendering context. More...
 
virtual SEQ_API void clear (co::Object *frameData)
 Clear the frame buffer. More...
 
virtual void draw (co::Object *frameData)=0
 Render the scene. More...
 
SEQ_API void updateNearFar (const Vector4f &boundingSphere)
 Update the near and far planes to tightly enclose the given sphere. More...
 
SEQ_API void setNearFar (const float nearPlane, const float farPlane)
 Set the near and far planes. More...
 
virtual SEQ_API void applyRenderContext ()
 Apply the current rendering parameters to the rendering context. More...
 
SEQ_API const RenderContextgetRenderContext () const
 
virtual SEQ_API void applyModelMatrix ()
 Apply the current model matrix to the rendering context. More...
 
Data Access
detail::Renderer * getImpl ()
 
co::Object * getFrameData ()
 
ApplicationgetApplication ()
 
const ApplicationgetApplication () const
 
virtual SEQ_API ViewDatacreateViewData ()
 Create a new per-view data instance. More...
 
virtual SEQ_API void destroyViewData (ViewData *viewData)
 Delete the given view data. More...
 
SEQ_API const GLEWContext * glewGetContext () const
 Get the GLEW context for this renderer. More...
 
SEQ_API const Frustumf & getFrustum () const
 
SEQ_API const Matrix4f & getViewMatrix () const
 
SEQ_API const Matrix4f & getModelMatrix () const
 
ObjectFactory interface, forwards to Application instance.
virtual SEQ_API co::Object * createObject (const uint32_t type)
 
virtual SEQ_API void destroyObject (co::Object *object, const uint32_t type)
 

Detailed Description

A renderer instance.

All calls to one renderer instance are guaranteed to be executed from a single thread.

Definition at line 32 of file include/seq/renderer.h.

Constructor & Destructor Documentation

SEQ_API seq::Renderer::Renderer ( Application application)

Construct a new renderer.

Version
1.0
virtual SEQ_API seq::Renderer::~Renderer ( )
virtual

Destruct this renderer.

Version
1.0

Reimplemented in eqHello::Renderer, and seqPly::Renderer.

Member Function Documentation

virtual SEQ_API void seq::Renderer::applyModelMatrix ( )
virtual

Apply the current model matrix to the rendering context.

This method is not included in applyRenderContext() since ligthing parameters are often applied before positioning the model.

This method is only to be called from clear(), draw() and TBD.

Version
1.0

Referenced by eqHello::Renderer::draw(), and seqPly::Renderer::draw().

+ Here is the caller graph for this function:

virtual SEQ_API void seq::Renderer::applyRenderContext ( )
virtual

Apply the current rendering parameters to the rendering context.

This method sets the draw buffer, color mask, viewport as well as the projection and view matrix.

This method is only to be called from clear(), draw() and TBD.

Version
1.0

Referenced by eqHello::Renderer::draw(), and seqPly::Renderer::draw().

+ Here is the caller graph for this function:

virtual SEQ_API void seq::Renderer::clear ( co::Object *  frameData)
virtual

Clear the frame buffer.

Parameters
frameDatathe renderer's instance of the object passed to Config::run.
Version
1.0
virtual SEQ_API ViewData* seq::Renderer::createViewData ( )
virtual

Create a new per-view data instance.

Called once for each view used by this renderer. Creates the view instance used by the renderer to retrieve parameters from the application for rendering.

Returns
the new view data
Version
1.0
virtual SEQ_API void seq::Renderer::destroyViewData ( ViewData viewData)
virtual

Delete the given view data.

Version
1.0
virtual void seq::Renderer::draw ( co::Object *  frameData)
pure virtual

Render the scene.

Parameters
frameDatathe renderer's instance of the object passed to Config::run.
Version
1.0

Implemented in seqPly::Renderer, and eqHello::Renderer.

virtual SEQ_API bool seq::Renderer::exit ( )
inlinevirtual

De-initialize the renderer.

Called just before the last context will be destroyed after the last call to exitContext().

Returns
true on success, false otherwise.
Version
1.0

Reimplemented in seqPly::Renderer.

Definition at line 66 of file include/seq/renderer.h.

Referenced by seqPly::Renderer::exit().

+ Here is the caller graph for this function:

virtual SEQ_API bool seq::Renderer::exitContext ( )
virtual

De-initialize a rendering context.

Called just before the context will be destroyed.

Returns
true on success, false otherwise.
Version
1.0
Application& seq::Renderer::getApplication ( )
inline
Returns
the application instance for this renderer.
Version
1.0

Definition at line 161 of file include/seq/renderer.h.

Referenced by seqPly::Renderer::draw().

+ Here is the caller graph for this function:

const Application& seq::Renderer::getApplication ( ) const
inline
Returns
the application instance for this renderer.
Version
1.0

Definition at line 164 of file include/seq/renderer.h.

SEQ_API const Frustumf& seq::Renderer::getFrustum ( ) const
Returns
the current view frustum.
Version
1.0

Referenced by seqPly::Renderer::draw().

+ Here is the caller graph for this function:

SEQ_API const Matrix4f& seq::Renderer::getModelMatrix ( ) const
Returns
the current model (scene) transformation.
Version
1.0

Referenced by seqPly::Renderer::draw().

+ Here is the caller graph for this function:

SEQ_API const RenderContext& seq::Renderer::getRenderContext ( ) const
Returns
the current rendering parameters.
Version
1.4

Referenced by seqPly::Renderer::draw().

+ Here is the caller graph for this function:

SEQ_API const Matrix4f& seq::Renderer::getViewMatrix ( ) const
Returns
the current view (frustum) transformation.
Version
1.0

Referenced by seqPly::Renderer::draw().

+ Here is the caller graph for this function:

SEQ_API const GLEWContext* seq::Renderer::glewGetContext ( ) const

Get the GLEW context for this renderer.

The glew context provides access to OpenGL extensions. This function does not follow the Sequel naming conventions, since GLEW uses a function of this name to automatically resolve OpenGL function entry points. Therefore, any OpenGL function support by the driver can be directly called from any method of an initialized renderer.

Returns
the extended OpenGL function table for the window's OpenGL context.
Version
1.0
virtual SEQ_API bool seq::Renderer::init ( co::Object *initData  1)
inlinevirtual

Initialize the renderer.

Called once per renderer with a rendering context current before the first call to initContext().

Parameters
initDataa per-renderer instance of the object passed to Config::init().
Returns
true on success, false otherwise.
Version
1.0

Definition at line 54 of file include/seq/renderer.h.

virtual SEQ_API bool seq::Renderer::initContext ( co::Object *  initData)
virtual

Initialize a rendering context.

Called for each window handled by this renderer, after the context has been created and made current.

Parameters
initDataa per-renderer instance of the object passed to Config::init().
Returns
true on success, false otherwise.
Version
1.0
SEQ_API void seq::Renderer::setNearFar ( const float  nearPlane,
const float  farPlane 
)

Set the near and far planes.

The given near and far planes update the current perspective and orthographics frustum accordingly.

Parameters
nearPlanethe near plane.
farPlanethe far plane.
Version
1.7.1
SEQ_API void seq::Renderer::updateNearFar ( const Vector4f &  boundingSphere)

Update the near and far planes to tightly enclose the given sphere.

Parameters
boundingSpherethe sphere bounding of the scene to be rendered.
Version
1.7.1

Referenced by seqPly::Renderer::draw().

+ Here is the caller graph for this function:


The documentation for this class was generated from the following file: