FIFE
be64c707dea6b3250bd4355bf5c825d25920087d
|
Base class for all view renderers View renderer renders one aspect of the view shown on screen. More...
#include <rendererbase.h>
Public Member Functions | |
RendererBase (RenderBackend *renderbackend, int32_t position) | |
Constructor. More... | |
RendererBase (const RendererBase &old) | |
Copy Constructor. More... | |
virtual RendererBase * | clone ()=0 |
Makes copy of this renderer. More... | |
virtual | ~RendererBase () |
Destructor. More... | |
virtual void | render (Camera *cam, Layer *layer, RenderList &instances)=0 |
This method is called by the view to ask renderer to draw its rendering aspect based on given parameters. More... | |
virtual std::string | getName ()=0 |
Name of the renderer. More... | |
int32_t | getPipelinePosition () const |
Gets renderer position in the rendering pipeline. More... | |
void | setPipelinePosition (int32_t position) |
Sets renderer position in the rendering pipeline Pipeline position defines in which order view calls the renderers when update occurs Note that renderers are called once per rendered layer, thus to update the whole screen, renderer might receive multiple calls. More... | |
virtual void | setEnabled (bool enabled) |
Enables renderer. More... | |
virtual void | reset () |
Resets information in the renderer. More... | |
bool | isEnabled () const |
Is renderer enabled. More... | |
void | setRendererListener (IRendererListener *listener) |
Sets listener for renderer. More... | |
void | addActiveLayer (Layer *layer) |
Adds active layer to renderer. More... | |
void | removeActiveLayer (Layer *layer) |
Removes active layer from renderer. More... | |
void | clearActiveLayers () |
Clears all active layers from renderer. More... | |
void | activateAllLayers (Map *elevation) |
Activates all layers from given elevation. More... | |
bool | isActivedLayer (Layer *layer) |
Returns if given layer is currently activated. More... | |
std::list< Layer * > | getActiveLayers () const |
Returns list of activated layer. More... | |
Protected Member Functions | |
RendererBase () | |
Protected Attributes | |
std::list< Layer * > | m_active_layers |
RenderBackend * | m_renderbackend |
Private Attributes | |
bool | m_enabled |
int32_t | m_pipeline_position |
IRendererListener * | m_listener |
Base class for all view renderers View renderer renders one aspect of the view shown on screen.
Definition at line 78 of file rendererbase.h.
FIFE::RendererBase::RendererBase | ( | RenderBackend * | renderbackend, |
int32_t | position | ||
) |
Constructor.
renderbackend | to use |
position | position for this renderer in rendering pipeline |
Definition at line 41 of file rendererbase.cpp.
References setPipelinePosition().
FIFE::RendererBase::RendererBase | ( | const RendererBase & | old | ) |
Copy Constructor.
Definition at line 49 of file rendererbase.cpp.
References m_pipeline_position, and setPipelinePosition().
|
inlinevirtual |
Destructor.
Definition at line 96 of file rendererbase.h.
|
protected |
Definition at line 57 of file rendererbase.cpp.
void FIFE::RendererBase::activateAllLayers | ( | Map * | elevation | ) |
Activates all layers from given elevation.
Definition at line 100 of file rendererbase.cpp.
References addActiveLayer(), clearActiveLayers(), and FIFE::Map::getLayers().
Referenced by FIFE::MapLoader::load().
void FIFE::RendererBase::addActiveLayer | ( | Layer * | layer | ) |
Adds active layer to renderer.
Only active layers are rendered
Definition at line 82 of file rendererbase.cpp.
References m_active_layers.
Referenced by activateAllLayers().
void FIFE::RendererBase::clearActiveLayers | ( | ) |
Clears all active layers from renderer.
Definition at line 92 of file rendererbase.cpp.
References m_active_layers.
Referenced by activateAllLayers().
|
pure virtual |
Makes copy of this renderer.
Implemented in FIFE::GenericRenderer, FIFE::LightRenderer, FIFE::QuadTreeRenderer, FIFE::CellRenderer, FIFE::CellSelectionRenderer, FIFE::CoordinateRenderer, FIFE::FloatingTextRenderer, FIFE::BlockingInfoRenderer, FIFE::InstanceRenderer, and FIFE::GridRenderer.
|
inline |
Returns list of activated layer.
Definition at line 164 of file rendererbase.h.
|
pure virtual |
Name of the renderer.
Implemented in FIFE::GenericRenderer, FIFE::LightRenderer, FIFE::CellSelectionRenderer, FIFE::CoordinateRenderer, FIFE::FloatingTextRenderer, FIFE::QuadTreeRenderer, FIFE::CellRenderer, FIFE::BlockingInfoRenderer, FIFE::InstanceRenderer, and FIFE::GridRenderer.
Referenced by FIFE::Camera::addRenderer(), and FIFE::Camera::onRendererEnabledChanged().
|
inline |
Gets renderer position in the rendering pipeline.
Definition at line 117 of file rendererbase.h.
Referenced by FIFE::pipelineSort().
bool FIFE::RendererBase::isActivedLayer | ( | Layer * | layer | ) |
Returns if given layer is currently activated.
Definition at line 96 of file rendererbase.cpp.
References m_active_layers.
|
inline |
Is renderer enabled.
Definition at line 136 of file rendererbase.h.
Referenced by FIFE::Camera::addRenderer(), and FIFE::Camera::onRendererEnabledChanged().
void FIFE::RendererBase::removeActiveLayer | ( | Layer * | layer | ) |
Removes active layer from renderer.
Definition at line 88 of file rendererbase.cpp.
References m_active_layers.
|
pure virtual |
This method is called by the view to ask renderer to draw its rendering aspect based on given parameters.
Renderers receive non-clipped instance stack since there is no way to know which information is relevant for the renderer. E.g. effect renderer might need to know offscreen instance locations to be able to draw radiation coming from some instance not visible on the screen.
cam | camera view to draw |
layer | current layer to be rendered |
instances | instances on the current layer @ see setPipelinePosition |
Implemented in FIFE::GenericRenderer, FIFE::LightRenderer, FIFE::CellRenderer, FIFE::BlockingInfoRenderer, FIFE::CellSelectionRenderer, FIFE::CoordinateRenderer, FIFE::FloatingTextRenderer, FIFE::QuadTreeRenderer, FIFE::InstanceRenderer, and FIFE::GridRenderer.
|
inlinevirtual |
Resets information in the renderer.
Reimplemented in FIFE::GenericRenderer, FIFE::LightRenderer, FIFE::InstanceRenderer, and FIFE::CellSelectionRenderer.
Definition at line 132 of file rendererbase.h.
|
virtual |
Enables renderer.
Definition at line 73 of file rendererbase.cpp.
References m_enabled, m_listener, and FIFE::IRendererListener::onRendererEnabledChanged().
Referenced by FIFE::BlockingInfoRenderer::BlockingInfoRenderer(), FIFE::CellRenderer::CellRenderer(), FIFE::CellSelectionRenderer::CellSelectionRenderer(), FIFE::CoordinateRenderer::CoordinateRenderer(), FIFE::FloatingTextRenderer::FloatingTextRenderer(), FIFE::GenericRenderer::GenericRenderer(), FIFE::GridRenderer::GridRenderer(), FIFE::InstanceRenderer::InstanceRenderer(), FIFE::LightRenderer::LightRenderer(), and FIFE::QuadTreeRenderer::QuadTreeRenderer().
void FIFE::RendererBase::setPipelinePosition | ( | int32_t | position | ) |
Sets renderer position in the rendering pipeline Pipeline position defines in which order view calls the renderers when update occurs Note that renderers are called once per rendered layer, thus to update the whole screen, renderer might receive multiple calls.
Definition at line 64 of file rendererbase.cpp.
References m_listener, m_pipeline_position, and FIFE::IRendererListener::onRendererPipelinePositionChanged().
Referenced by RendererBase().
|
inline |
Sets listener for renderer.
Definition at line 140 of file rendererbase.h.
Referenced by FIFE::Camera::addRenderer().
|
protected |
Definition at line 170 of file rendererbase.h.
Referenced by addActiveLayer(), clearActiveLayers(), isActivedLayer(), and removeActiveLayer().
|
private |
Definition at line 174 of file rendererbase.h.
Referenced by setEnabled().
|
private |
Definition at line 176 of file rendererbase.h.
Referenced by setEnabled(), and setPipelinePosition().
|
private |
Definition at line 175 of file rendererbase.h.
Referenced by RendererBase(), and setPipelinePosition().
|
protected |
Definition at line 171 of file rendererbase.h.
Referenced by FIFE::InstanceRenderer::bindColoring(), FIFE::InstanceRenderer::bindMultiOutline(), FIFE::InstanceRenderer::bindOutline(), FIFE::InstanceRenderer::getMultiColorOverlay(), FIFE::InstanceRenderer::getRenderBackend(), FIFE::InstanceRenderer::InstanceRenderer(), FIFE::GridRenderer::render(), FIFE::QuadTreeRenderer::render(), FIFE::CellSelectionRenderer::render(), FIFE::BlockingInfoRenderer::render(), FIFE::CellRenderer::render(), FIFE::LightRenderer::render(), FIFE::GenericRenderer::render(), FIFE::InstanceRenderer::renderAlreadySorted(), FIFE::InstanceRenderer::renderOverlay(), FIFE::InstanceRenderer::renderUnsorted(), FIFE::RenderVisitor::RenderVisitor(), and FIFE::RenderVisitor::visit().