BALL
1.4.79
|
#include <BALL/VIEW/RENDERING/RENDERERS/bufferedRenderer.h>
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. More... | |
virtual void | updateCamera (const Camera *camera=0) |
virtual void | updateMaterialForRepresentation (Representation const *) |
virtual void | updateBackgroundColor () |
Update the background color from the stage. More... | |
virtual void | setupEnvironmentMap (const QImage &image) |
Setup an environment map. More... | |
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. More... | |
virtual void | setSize (float width, float height) |
Set the size of the display. More... | |
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. More... | |
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 |
Protected Member Functions inherited from BALL::VIEW::Renderer | |
virtual void | renderClippingPlane_ (const ClippingPlane &) |
virtual void | renderLabel_ (const Label &) |
virtual void | renderLine_ (const Line &) |
Render a line. More... | |
virtual void | renderMultiLine_ (const MultiLine &) |
Render an illuminated line. More... | |
virtual void | renderMesh_ (const Mesh &) |
Render a surface mesh. More... | |
virtual void | renderPoint_ (const Point &) |
Render a single point. More... | |
virtual void | renderBox_ (const Box &) |
Render a box. More... | |
virtual void | renderSimpleBox_ (const SimpleBox &) |
Render a simple box (parallel to the axes) More... | |
virtual void | renderSphere_ (const Sphere &) |
Render a sphere. More... | |
virtual void | renderDisc_ (const Disc &) |
Render a disc. More... | |
virtual void | renderTube_ (const Tube &) |
Render a tube. More... | |
virtual void | renderTwoColoredLine_ (const TwoColoredLine &) |
Render a line with two colors. More... | |
virtual void | renderTwoColoredTube_ (const TwoColoredTube &) |
Render a tube with two colors. More... | |
virtual void | renderGridVisualisation_ (const GridVisualisation &) |
Render a grid. More... | |
virtual void | renderQuadMesh_ (const QuadMesh &) |
Render a quad mesh. More... | |
Protected Attributes | |
Size | offset_ |
Size | stride_ |
Protected Attributes inherited from BALL::VIEW::Renderer | |
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 } |
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.
|
inline |
Definition at line 34 of file bufferedRenderer.h.
|
protectedpure 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::RTfactRenderer, and BALL::VIEW::CudaVolumeRenderer.
|
inlineprotected |
Returns the current FrameBufferFormat.
Definition at line 125 of file bufferedRenderer.h.
|
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.
Exception::FormatUnsupported | if the FrameBufferFormat is not supported by the renderer |
Implemented in BALL::VIEW::RaytracingRenderer.
|
protectedpure virtual |
Prepare for the rendering, taking into account settings in Stage, eg. Camera, Lights, Background colors, etc.
Implemented in BALL::VIEW::RTfactRenderer, and BALL::VIEW::CudaVolumeRenderer.
|
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().
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.
|
protectedpure virtual |
Render to the frame buffer.
Implemented in BALL::VIEW::RTfactRenderer, and BALL::VIEW::CudaVolumeRenderer.
|
inline |
Tries to choose a format for buffered rendering.
Definition at line 43 of file bufferedRenderer.h.
|
inlinevirtual |
Set an offset into the data buffer
Definition at line 94 of file bufferedRenderer.h.
|
inlinevirtual |
Set a stride for the data buffer
Definition at line 98 of file bufferedRenderer.h.
|
pure virtual |
Checks if a particular PixelFormat is supported by the renderer.
Implemented in BALL::VIEW::RaytracingRenderer.
|
protectedpure 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.
|
protected |
Definition at line 127 of file bufferedRenderer.h.
|
protected |
Definition at line 128 of file bufferedRenderer.h.