OSDL::Rendering::VideoRenderer Class Reference

This basic video renderer manages the graphical rendering of all registered views. More...

#include <OSDLVideoRenderer.h>

Inheritance diagram for OSDL::Rendering::VideoRenderer:
Inheritance graph
[legend]
Collaboration diagram for OSDL::Rendering::VideoRenderer:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 VideoRenderer (bool registerToRootRenderer=true)
 Constructs a new video renderer.
virtual ~VideoRenderer () throw ()
 Virtual destructor, no view is destroyed.
virtual void render (Events::RenderingTick currentRenderingTick=0)
 Returns whether this video renderer has an internal camera available.
virtual void onRenderingSkipped (Events::RenderingTick skippedRenderingTick)
 Allows the video renderer to be aware that a rendering step has to be skipped.
virtual const std::string toString (Ceylan::VerbosityLevels level=Ceylan::high) const
 Returns an user-friendly description of the state of this object.

Static Public Member Functions

static bool HasExistingRootRenderer ()
 Tells whether a root renderer is available.
static RendererGetExistingRootRenderer ()
 Returns the one and only one root renderer instance that may be already available.
static void DeleteExistingRootRenderer ()
 Deletes the existing root renderer.
static void DeleteRootRenderer ()
 Deletes the root renderer, if any.

Protected Attributes

RenderCount _renderingDone
 Counts the number of renderings achieved.
RenderCount _renderingSkipped
 Counts the number of renderings skipped.
Events::RenderingTick _lastRender
 Records the last rendering tick.

Private Member Functions

 VideoRenderer (const VideoRenderer &source)
 The internal camera which is used to render, if any.
VideoRendereroperator= (const VideoRenderer &source)
 Assignment operator made private to ensure that it will never be called.

Detailed Description

This basic video renderer manages the graphical rendering of all registered views.

Its rendering is mainly triggered by the root renderer, if it exists and if this video renderer has been registered to this root renderer.

Specialized video renderers can take in charge for example multiple viewports and cameras, BSP trees, etc.

See also:
Ceylan::View

Definition at line 85 of file OSDLVideoRenderer.h.


Constructor & Destructor Documentation

VideoRenderer::VideoRenderer ( bool  registerToRootRenderer = true  )  [explicit]

Constructs a new video renderer.

Parameters:
registerToRootRenderer iff true, this video renderer will register itself automatically to the root renderer, which must implement the MultimediaRenderer interface so that this video renderer can be plugged.
Exceptions:
VideoRenderingException if registerToRootRenderer is true and no root renderer is available, or if the root renderer is not able to register video renderers (which means it is not a Multimedia renderer).
See also:
MultimediaRenderer

Definition at line 80 of file OSDLVideoRenderer.cc.

References OSDL::Rendering::Renderer::GetExistingRootRenderer(), and OSDL::Rendering::MultimediaRenderer::setVideoRenderer().

VideoRenderer::~VideoRenderer (  )  throw () [virtual]

Virtual destructor, no view is destroyed.

Definition at line 122 of file OSDLVideoRenderer.cc.

OSDL::Rendering::VideoRenderer::VideoRenderer ( const VideoRenderer source  )  [private]

The internal camera which is used to render, if any.

Copy constructor made private to ensure that it will never be called.

The compiler should complain whenever this undefined constructor is called, implicitly or not.


Member Function Documentation

void Renderer::DeleteExistingRootRenderer (  )  [static, inherited]

Deletes the existing root renderer.

Exceptions:
RenderingException if not renderer was available.

Definition at line 185 of file OSDLRenderer.cc.

void Renderer::DeleteRootRenderer (  )  [static, inherited]

Deletes the root renderer, if any.

Definition at line 201 of file OSDLRenderer.cc.

Renderer & Renderer::GetExistingRootRenderer (  )  [static, inherited]

Returns the one and only one root renderer instance that may be already available.

Note:
The returned value is a reference and not a pointer, to help avoiding any abnormal deallocation by its users, that should never deallocate the root renderer.
Exceptions:
RenderingException if there is no root renderer already available.
Note:
There is no 'GetRootRenderer' method that would create a root renderer if none was already set, since various renderers could be chosen as the root one.

Definition at line 173 of file OSDLRenderer.cc.

Referenced by OSDL::Rendering::AudioRenderer::AudioRenderer(), OSDL::Events::EventsModule::enterBasicMainLoop(), and VideoRenderer().

bool Renderer::HasExistingRootRenderer (  )  [static, inherited]

Tells whether a root renderer is available.

Returns:
true iff a root renderer is already available.

Definition at line 164 of file OSDLRenderer.cc.

References OSDL::Rendering::Renderer::_internalRootRenderer.

Referenced by OSDL::Events::EventsModule::enterBasicMainLoop().

virtual void OSDL::Rendering::VideoRenderer::onRenderingSkipped ( Events::RenderingTick  skippedRenderingTick  )  [virtual]

Allows the video renderer to be aware that a rendering step has to be skipped.

It may be a chance for it to trigger counter-measures, such as decreasing the level of detail in order not to slow down the whole process.

Parameters:
skippedRenderingTick the rendering tick that had to be skipped.

Reimplemented from OSDL::Rendering::Renderer.

VideoRenderer& OSDL::Rendering::VideoRenderer::operator= ( const VideoRenderer source  )  [private]

Assignment operator made private to ensure that it will never be called.

The compiler should complain whenever this undefined operator is called, implicitly or not.

virtual void OSDL::Rendering::VideoRenderer::render ( Events::RenderingTick  currentRenderingTick = 0  )  [virtual]

Returns whether this video renderer has an internal camera available.

virtual bool hasCamera() const ; Returns the internal camera of this video renderer.

Exceptions:
VideoRenderingException iff no camera is available. virtual Camera & getCamera() const ; Sets the internal camera of this video renderer.
Parameters:
newCamera the new camera to use from now on.
Note:
The video renderer takes ownership of the provided camera, and will delete it when itself deleted, or when replaced by another camera.

virtual void setCamera( Camera & newCamera ) ; Triggers the actual video rendering of all views, for specified rendering tick, if any.

Parameters:
currentRenderingTick the rendering tick corresponding to this render step.

If the renderer is called from a basic event loop (no scheduler is used), then the rendering tick is meaningless and is always zero.

Reimplemented from OSDL::Rendering::Renderer.

const string VideoRenderer::toString ( Ceylan::VerbosityLevels  level = Ceylan::high  )  const [virtual]

Returns an user-friendly description of the state of this object.

Parameters:
level the requested verbosity level.
Note:
Text output format is determined from overall settings.
See also:
Ceylan::TextDisplayable

Reimplemented from OSDL::Rendering::Renderer.

Definition at line 188 of file OSDLVideoRenderer.cc.

References OSDL::Rendering::Renderer::_lastRender, OSDL::Rendering::Renderer::_renderingDone, and OSDL::Rendering::Renderer::_renderingSkipped.

Referenced by OSDL::Video::VideoModule::toString(), and OSDL::Rendering::MultimediaRenderer::toString().


Member Data Documentation

Records the last rendering tick.

Useful to check whether no rendering tick was missed.

Definition at line 287 of file OSDLRenderer.h.

Referenced by toString(), OSDL::Rendering::StandardRenderer::toString(), OSDL::Rendering::Renderer::toString(), OSDL::Rendering::MultimediaRenderer::toString(), and OSDL::Rendering::AudioRenderer::toString().


The documentation for this class was generated from the following files:
Generated on Mon Nov 29 14:05:59 2010 for OSDL by  doxygen 1.6.3