Loading...
Searching...
No Matches
BALL::VIEW::BufferedRenderer Class Referenceabstract

`#include <BALL/VIEW/RENDERING/RENDERERS/bufferedRenderer.h>`

Inheritance diagram for BALL::VIEW::BufferedRenderer:

## Public Member Functions

| BufferedRenderer ()
bool | setFrameBufferFormat (const FrameBufferFormat &format)
void | renderToBuffer (RenderTarget *renderTarget, const Stage &stage)
virtual bool | supports (const PixelFormat &format) const =0
virtual Resolution | getSupportedResolution (const Resolution &min, const Resolution &max, const PixelFormat &format) const =0
virtual void | setOffset (Size offset)
virtual void | setStride (Size stride)
Public Member Functions inherited from BALL::VIEW::Renderer
| Renderer ()
| Renderer (const Renderer &renderer)
virtual | ~Renderer ()
virtual void | clear ()
virtual bool | init (Scene &scene)
virtual bool | init (const Stage &stage, float height, float width)
virtual void | setLights (bool reset_all=false)
| Set the light sources according to the stage.
virtual void | updateCamera (const Camera *camera=0)
virtual void | updateMaterialForRepresentation (Representation const *)
virtual void | updateBackgroundColor ()
| Update the background color from the stage.
virtual void | setupEnvironmentMap (const QImage &image)
| Setup an environment map.
virtual void | setupStereo (float eye_separation, float focal_length)
virtual void | useContinuousLoop (bool use_loop)
bool | isContinuous ()
virtual bool | hasFPScounter ()
virtual double | getFPS ()
virtual bool | finish ()
virtual Vector3 | mapViewportTo3D (Position x, Position y)
virtual Vector2 | map3DToViewport (const Vector3 &vec)
virtual void | pickObjects (Position x1, Position y1, Position x2, Position y2, std::list< GeometricObject * > &objects)
virtual void | getFrustum (float &near_f, float &far_f, float &left_f, float &right_f, float &top_f, float &bottom_f)
virtual bool | renderOneRepresentation (const Representation &representation)
virtual void | bufferRepresentation (const Representation &)
virtual void | removeRepresentation (const Representation &)
virtual const Stage & | getStage () const
virtual void | setStage (const Stage &stage)
bool | hasStage () const
| Test if a Stage was assigned to the Renderer.
virtual void | setSize (float width, float height)
| Set the size of the display.
virtual float | getWidth () const
virtual float | getHeight () const
virtual void | setPreviewMode (bool show_preview)
virtual void | showLightSources (bool show_light_sources)
virtual void | renderRuler ()
virtual void | setStereoMode (StereoMode state)
virtual StereoMode | getStereoMode () const
virtual void | setStereoFrustumConversion (int width_factor, int height_factor)
bool | operator== (const Renderer &) const
virtual void | render_ (const GeometricObject *object)
| Wrapper for the renderering of special GeometricObjects.

## Protected Member Functions

virtual bool | supports (const FrameBufferFormat &format) const =0
virtual void | formatUpdated ()=0
virtual void | prepareBufferedRendering (const Stage &stage)=0
virtual void | renderToBufferImpl (FrameBufferPtr buffer)=0
const FrameBufferFormat & | getFrameBufferFormat () const
virtual void | renderClippingPlane_ (const ClippingPlane &)
virtual void | renderLabel_ (const Label &)
virtual void | renderLine_ (const Line &)
| Render a line.
virtual void | renderMultiLine_ (const MultiLine &)
| Render an illuminated line.
virtual void | renderMesh_ (const Mesh &)
| Render a surface mesh.
virtual void | renderPoint_ (const Point &)
| Render a single point.
virtual void | renderBox_ (const Box &)
| Render a box.
virtual void | renderSimpleBox_ (const SimpleBox &)
| Render a simple box (parallel to the axes).
virtual void | renderSphere_ (const Sphere &)
| Render a sphere.
virtual void | renderDisc_ (const Disc &)
| Render a disc.
virtual void | renderTube_ (const Tube &)
| Render a tube.
virtual void | renderTwoColoredLine_ (const TwoColoredLine &)
| Render a line with two colors.
virtual void | renderTwoColoredTube_ (const TwoColoredTube &)
| Render a tube with two colors.
virtual void | renderGridVisualisation_ (const GridVisualisation &)
| Render a grid.
virtual void | renderQuadMesh_ (const QuadMesh &)
| Render a quad mesh.

## Protected Attributes

Size | offset_
Size | stride_
Scene * | scene_
const Stage * | stage_
float | width_
float | height_
bool | show_preview_
float | volume_width_
bool | show_light_sources_
Camera | camera_
Vector3 | camera_offset_
bool | use_continuous_loop_
Size | stereo_frustum_conversion_width_
Size | stereo_frustum_conversion_height_
StereoMode | stereo_

## Additional Inherited Members

Public Types inherited from BALL::VIEW::Renderer
enum | StereoMode { NO_STEREO = 0 , ACTIVE_STEREO , DUAL_VIEW_STEREO , DUAL_VIEW_DIFFERENT_DISPLAY_STEREO , TOP_BOTTOM_STEREO , INTERLACED_STEREO }

## Detailed Description

Interface for Buffered Rendering. BufferedRenderers don't create their own window. Instead, they render the scene to a FrameBuffer which is provided by a RenderTarget. The FrameBuffer contains a pointer to a memory area where the results will be stored, as well as the pixel format and the resolution. Before rendering can start, you have to choose an output format using the setFrameBufferFormat() function. After that, you can call renderToBuffer(), as long as the format of the RenderTarget is the same that you set before.

Definition at line 29 of file bufferedRenderer.h.

## Constructor & Destructor Documentation

## BufferedRenderer()

BALL::VIEW::BufferedRenderer::BufferedRenderer | ( |  | ) |

inline

Definition at line 34 of file bufferedRenderer.h.

## Member Function Documentation

## formatUpdated()

virtual void BALL::VIEW::BufferedRenderer::formatUpdated | ( |  | ) |

protected pure virtual

This is called once the FrameBufferFormat has been set so the renderer can perform any initialization steps that are needed.

Implemented in BALL::VIEW::CudaVolumeRenderer, and BALL::VIEW::RTfactRenderer.

## getFrameBufferFormat()

const FrameBufferFormat & BALL::VIEW::BufferedRenderer::getFrameBufferFormat | ( |  | ) | const

inline protected

Returns the current FrameBufferFormat.

Definition at line 125 of file bufferedRenderer.h.

## getSupportedResolution()

virtual Resolution BALL::VIEW::BufferedRenderer::getSupportedResolution | ( | const Resolution & | min,
|  | const Resolution & | max,
|  | const PixelFormat & | format ) const

pure virtual

Returns a supported resolution within the given limits. The x resolution will be between min.x and max.x and the y resolution will be between min.y and max.y. The returned resolution must be supported by the renderer with the requested PixelFormat.

Exceptions

  Exception::FormatUnsupported | if the FrameBufferFormat is not supported by the renderer

Implemented in BALL::VIEW::RaytracingRenderer.

## prepareBufferedRendering()

virtual void BALL::VIEW::BufferedRenderer::prepareBufferedRendering | ( | const Stage & | stage | ) |

protected pure virtual

Prepare for the rendering, taking into account settings in Stage, eg. Camera, Lights, Background colors, etc.

Implemented in BALL::VIEW::CudaVolumeRenderer, and BALL::VIEW::RTfactRenderer.

## renderToBuffer()

void BALL::VIEW::BufferedRenderer::renderToBuffer | ( | RenderTarget * | renderTarget,
|  | const Stage & | stage )

inline

Render the current frame to the target's buffer using the Stage setup. Throws FrameBufferFormatException if the RenderTarget's format is not the one that you set before with setFrameBufferFormat().

Exceptions

  Exception::InvalidFormat | if the FrameBufferFormat is not supported by the renderer
  Exception::NoBufferAvailable | if the frame buffer was not correctly initialized

Definition at line 62 of file bufferedRenderer.h.

## renderToBufferImpl()

virtual void BALL::VIEW::BufferedRenderer::renderToBufferImpl | ( | FrameBufferPtr | buffer | ) |

protected pure virtual

Render to the frame buffer.

Precondition
  The frame buffer's format is the one stored in bufferFormat and prepareBufferedRendering() has been called.

Implemented in BALL::VIEW::CudaVolumeRenderer, and BALL::VIEW::RTfactRenderer.

## setFrameBufferFormat()

bool BALL::VIEW::BufferedRenderer::setFrameBufferFormat | ( | const FrameBufferFormat & | format | ) |

inline

Tries to choose a format for buffered rendering.

Returns
  true if the format could be set,
  false if it is not supported.

Definition at line 43 of file bufferedRenderer.h.

## setOffset()

virtual void BALL::VIEW::BufferedRenderer::setOffset | ( | Size | offset | ) |

inline virtual

Set an offset into the data buffer

Definition at line 94 of file bufferedRenderer.h.

## setStride()

virtual void BALL::VIEW::BufferedRenderer::setStride | ( | Size | stride | ) |

inline virtual

Set a stride for the data buffer

Definition at line 98 of file bufferedRenderer.h.

## supports() [1/2]

virtual bool BALL::VIEW::BufferedRenderer::supports | ( | const FrameBufferFormat & | format | ) | const

protected pure virtual

Checks if a particular FrameBufferFormat is supported by the renderer. This checks the combination of pixel format and resolution. If this returns true, the renderer is able to write to a buffer in this format.

Implemented in BALL::VIEW::RaytracingRenderer.

## supports() [2/2]

virtual bool BALL::VIEW::BufferedRenderer::supports | ( | const PixelFormat & | format | ) | const

pure virtual

Checks if a particular PixelFormat is supported by the renderer.

Implemented in BALL::VIEW::RaytracingRenderer.

## Member Data Documentation

## offset_

Size BALL::VIEW::BufferedRenderer::offset_

protected

Definition at line 127 of file bufferedRenderer.h.

## stride_

Size BALL::VIEW::BufferedRenderer::stride_

protected

Definition at line 128 of file bufferedRenderer.h.