Equalizer
1.8.0
Parallel Rendering Framework
|
A renderer instance. More...
#include <renderer.h>
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 RenderContext & | getRenderContext () const |
virtual SEQ_API void | applyModelMatrix () |
Apply the current model matrix to the rendering context. More... | |
Data Access | |
detail::Renderer * | getImpl () |
co::Object * | getFrameData () |
Application & | getApplication () |
const Application & | getApplication () const |
virtual SEQ_API ViewData * | createViewData () |
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) |
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.
SEQ_API seq::Renderer::Renderer | ( | Application & | application | ) |
Construct a new renderer.
|
virtual |
|
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.
Referenced by eqHello::Renderer::draw(), and seqPly::Renderer::draw().
|
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.
Referenced by eqHello::Renderer::draw(), and seqPly::Renderer::draw().
|
virtual |
Clear the frame buffer.
frameData | the renderer's instance of the object passed to Config::run. |
|
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.
|
virtual |
Delete the given view data.
|
pure virtual |
Render the scene.
frameData | the renderer's instance of the object passed to Config::run. |
Implemented in seqPly::Renderer, and eqHello::Renderer.
|
inlinevirtual |
De-initialize the renderer.
Called just before the last context will be destroyed after the last call to exitContext().
Reimplemented in seqPly::Renderer.
Definition at line 66 of file include/seq/renderer.h.
Referenced by seqPly::Renderer::exit().
|
virtual |
De-initialize a rendering context.
Called just before the context will be destroyed.
|
inline |
Definition at line 161 of file include/seq/renderer.h.
Referenced by seqPly::Renderer::draw().
|
inline |
Definition at line 164 of file include/seq/renderer.h.
SEQ_API const Frustumf& seq::Renderer::getFrustum | ( | ) | const |
Referenced by seqPly::Renderer::draw().
SEQ_API const Matrix4f& seq::Renderer::getModelMatrix | ( | ) | const |
Referenced by seqPly::Renderer::draw().
SEQ_API const RenderContext& seq::Renderer::getRenderContext | ( | ) | const |
Referenced by seqPly::Renderer::draw().
SEQ_API const Matrix4f& seq::Renderer::getViewMatrix | ( | ) | const |
Referenced by seqPly::Renderer::draw().
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.
|
inlinevirtual |
Initialize the renderer.
Called once per renderer with a rendering context current before the first call to initContext().
initData | a per-renderer instance of the object passed to Config::init(). |
Definition at line 54 of file include/seq/renderer.h.
|
virtual |
Initialize a rendering context.
Called for each window handled by this renderer, after the context has been created and made current.
initData | a per-renderer instance of the object passed to Config::init(). |
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.
nearPlane | the near plane. |
farPlane | the far plane. |
SEQ_API void seq::Renderer::updateNearFar | ( | const Vector4f & | boundingSphere | ) |
Update the near and far planes to tightly enclose the given sphere.
boundingSphere | the sphere bounding of the scene to be rendered. |
Referenced by seqPly::Renderer::draw().