The Vish Visualization Shell 0.3
Vish
Public Member Functions | List of all members
Wizt::GLRenderer Struct Reference

A renderer class that captures OpenGL renderings from a viewer object into some offline buffer, using FrameBuffer objects with multisampling. More...

#include <ocean/GLvish/GLRenderer.hpp>

Inheritance diagram for Wizt::GLRenderer:
Wizt::VFrameBuffer::Renderer MemCore::ReferenceBase< Renderer > MemCore::Intercube

Public Member Functions

bool canRender (const VFrameBuffer::Size &Sz, VFrameBuffer::format what=VFrameBuffer::rgb, const type_info &type=typeid(unsigned char)) const override
 Check in advance if this renderer is able to provide an image of the specified quality.
 
 GLRenderer (const WeakPtr< Viewer > &V, const WeakPtr< VRenderContext::Interruptor > &theInterruptor)
 Construct a GLRenderer with a GLViewer which provides the GL Context via the.
 
LayeredRenderResultWithError grab (const VRequest &Context, const VSceneLayers &RenderObjects, const RefPtr< VFrameBuffer::Grab > &, const VFrameBuffer::Size &Sz, const RefPtr< VFrameBuffer::Grab::MovieManager > &M, const RefPtr< VRenderPrecision > &RenderHints, const RefPtr< VContext::Addendum > &ContextAddendum) const override
 
- Public Member Functions inherited from Wizt::VFrameBuffer::Renderer
virtual LayeredRenderResultWithError grab (const VRequest &Context, const RefPtr< Grab > &, const Size &Sz, const RefPtr< VFrameBuffer::Grab::MovieManager > &M, const RefPtr< VRenderPrecision > &RenderHints, const RefPtr< VContext::Addendum > &ContextAddendum=nullptr) const =0
 Virtual grab function that knows how to get the render objects.
 
virtual LayeredRenderResultWithError grab (const VRequest &Context, const VSceneLayers &RenderObjects, const RefPtr< Grab > &, const Size &Sz, const RefPtr< VFrameBuffer::Grab::MovieManager > &M, const RefPtr< VRenderPrecision > &RenderHints, const RefPtr< VContext::Addendum > &ContextAddendum=nullptr) const =0
 Virtual grab function, it is supposed to call Grab::retrieve();.
 
bool ProcessTile (VGrabContext &theContext, const RefPtr< Grab > &Grabber, const ImageTile &theImageTile, const RefPtr< VFrameBuffer::Grab::MovieManager > &) const
 Call this function to deliver frame data to the Grab object after processing it with the local TileProcessor.
 
 Renderer (const WeakPtr< VRenderInterruptor > &theInterruptor)
 Constructor.
 
int Samples () const
 Current antialiasing sample.
 
virtual void setCamera (const VCamera &TheCameraSettings)
 An optionally implementable function that sets the camera parameters for the given shot.
 
virtual bool setupMultiSampling (int samples)
 Setup samples for antialiasing default for virtual function is just assignment implementation in derived class would check for hardware capabilities.
 
 ~Renderer ()
 Destructor.
 
- Public Member Functions inherited from MemCore::ReferenceBase< Renderer >
auto getObjectCountID () const noexcept
 Get a unique ID for this object in the given domain.
 
bool isIdentical (const WeakPtr< Renderer, Renderer > &PossibleSelf) const noexcept
 Check if this object is identical to the one used by the given pointer.
 
void mkAutoDestructive ()
 Marks this object as being automatically destructed, e.g.
 
refcount_t refcount () const noexcept
 The strong reference count.
 
 ReferenceBase (Renderer *that) noexcept
 Constructor, initializes reference counter to zero.
 
const auto & self () const
 Return weak pointer to the object self.
 
refcount_t wrefcount () const noexcept
 The weak reference count.
 
- Public Member Functions inherited from MemCore::Intercube
void addInterface (const RefPtr< InterfaceBase > &I) const
 Add an interface class object.
 
template<class Data >
void addInterfaceData (const Data &D)
 Add data via an interface class object.
 
template<class Data , typename TypeSelector >
void addInterfaceData (const Data &D)
 Add data via an interface class object.
 
void clearInterfaces ()
 Remove all interfaces.
 
bool const_iterateInterfaces (const RefPtr< InterfaceIterationParameter > &IIP) const
 Constant iterator.
 
virtual RefPtr< InterfaceBasecreateInterface (const type_info &) const
 Virtual function which allows derived objects to create Interface objects on demand.
 
RefPtr< InterfaceBasefindInterface (const type_info &t) const
 Find a certain interface of specified type.
 
RefPtr< InterfaceBasegetInterface (const type_info &t)
 Retrieve an interface object from a certain type.
 
std::string getInterfaceNames (const char delim=';') const
 Debug function retrieving all interfaces as human-readable string.
 
template<class Data >
bool gotNewInterfaceData (const Data &D)
 Check whether data on the given interface have changed, and if so, set new data as interface.
 
template<class Data >
bool gotNewInterfaceData (mutex &M, const Data &D)
 Check whether interface data have changed, if so, then set new interface data and return true.
 
template<class Data , typename Selector >
bool gotNewInterfaceData (mutex &M, const Data &D)
 Check whether interface data have changed, if so, then set new interface data and return true.
 
template<class Data , typename Selector >
bool gotNewInterfaceData (mutex &M, const Data &D, const Selector &S)
 Check whether interface data have changed, if so, then set new interface data and return true.
 
template<class Data , typename Selector >
bool gotNewInterfaceData (mutex &M, const Data &D, const Selector *S)
 Check whether interface data have changed, if so, then set new interface data and return true.
 
template<class Data >
bool hasChangedInterfaceData (const Data &D) const
 Check whether interface data have changed.
 
template<class Data , typename Selector >
bool hasChangedInterfaceData (const Data &D) const
 Check whether interface data have changed.
 
template<class Data , typename Selector >
bool hasChangedInterfaceData (const Data &D, const Selector &) const
 Check whether interface data have changed.
 
template<class Data , typename Selector >
bool hasChangedInterfaceData (const Data &D, const Selector *) const
 Check whether interface data have changed.
 
bool hasInterface (const type_info &t) const
 Check if some Interface might exist.
 
 Intercube ()
 Constructor.
 
bool iterateInterfaces (const RefPtr< InterfaceIterationParameter > &IIP)
 Modifyable iterator.
 
void printInterfaces () const
 Debug function that prints the names of all interfaces.
 
void registerInterface (const type_info &t)
 Register an interface type; when the interface is actually required, the virtual createInterface() function will be called.
 
template<class InterfaceType >
void removeInterface ()
 Remove an interface.
 
void removeInterfaceBase (const type_info &InterfaceBaseID)
 Remove an interface.
 
virtual ~Intercube ()
 Destructor.
 

Additional Inherited Members

- Public Types inherited from MemCore::ReferenceBase< Renderer >
using reference_domain_t = Renderer
 The type of the base class.
 
using SelfPtr_t = WeakPtr< Renderer, Renderer >
 Type for a pointer to this object itself.
 
- Protected Member Functions inherited from MemCore::ReferenceBase< Renderer >
virtual void extremeUnction ()
 A virtual function that will be called just before the object is destroyed.
 
ReferenceBaseoperator= (const ReferenceBase &R)
 Protected assignment operator (should not be called).
 
void suicide ()
 Delete this.
 
virtual ~ReferenceBase ()
 Virtual destructor.
 

Detailed Description

A renderer class that captures OpenGL renderings from a viewer object into some offline buffer, using FrameBuffer objects with multisampling.

class MyViewer : public Viewer
{
MyViewer()
:img( self(), VFrameBuffer( new GLRenderer(self()) ), "OpenGLViewport", new VCreationPreferences("OpenGL") )
{}
};
A certain object (especcially input types) might have multiple implementations by the GUI or alternat...
Definition VCreationPreferences.hpp:24
Output properties of an object.
Definition VSlotContainerIO.hpp:222
A viewer is a Vish object that takes a VSceneLayers as input (a selection of Vish objects which can r...
Definition Viewer.hpp:42
A renderer class that captures OpenGL renderings from a viewer object into some offline buffer,...
Definition GLRenderer.hpp:27
Encapsulation of a framebuffer, which is used to collect image rendering results.
Definition VFrameBuffer.hpp:46

Constructor & Destructor Documentation

◆ GLRenderer()

Wizt::GLRenderer::GLRenderer ( const WeakPtr< Viewer > &  V,
const WeakPtr< VRenderContext::Interruptor > &  theInterruptor 
)

Construct a GLRenderer with a GLViewer which provides the GL Context via the.

GLViewer::initializeContext(Context) )
A set of variable names, with indices associated to each type.
Definition Context.hpp:18

function.

Member Function Documentation

◆ grab()

GLRenderer::LayeredRenderResultWithError Wizt::GLRenderer::grab ( const VRequest Context,
const VSceneLayers &  RenderObjects,
const RefPtr< VFrameBuffer::Grab > &  GrabIt,
const VFrameBuffer::Size Sz,
const RefPtr< VFrameBuffer::Grab::MovieManager > &  M,
const RefPtr< VRenderPrecision > &  RenderHints,
const RefPtr< VContext::Addendum > &  ContextAddendum 
) const
override

TODO: EXPORT DEPTH LAYERS AS PARAMETER (Once depth layering works)

TODO: Consider using the VRequest's ROOT VObject as ROOT object here as well since this is/may be an indirectly triggered request.

antialiasing samples

References MemCore::getEnvInteger(), Wizt::VFrameBuffer::Renderer::Samples(), and MemCore::Timer::secs().