The Vish Visualization Shell 0.3
Vish
Wizt::VFrameBuffer::Grab Struct Referenceabstract

Callback class for grabbing frames. More...

#include <ocean/Anemonia/VFrameBuffer.hpp>

Inheritance diagram for Wizt::VFrameBuffer::Grab:
MemCore::ReferenceBase< Grab > PNGRetrieveImageSizedFrame

Classes

struct  Exception
struct  Layer
struct  MovieManager
 A movie manager is base class for frame grabbers to manage rendering frame sequence. More...

Public Member Functions

virtual bool closeFrame (VGrabContext &theContext, const RefPtr< MovieManager > &M)
 Close this frame.
virtual bool closeLayer (VGrabContext &theContext, const RefPtr< MovieManager > &M)=0
 Close this layer.
virtual Layer getLayerProperties (VGrabContext &theContext, int i) const
 which properties would this grabber want from layer nr. i ?
virtual RefPtr< MovieManagergetMovieManager (const string &MovieOutputUrl, int NumberOfFrames, double Tmin, double Tmax, int StartFrame=0)
 Indicate start of a rendering sequence.
virtual unsigned getNumberOfLayers (VGrabContext &theContext, const RefPtr< MovieManager > &M)
 How many layers does this grabber want?
virtual unsigned horizontal_alignment () const
 Horizontal bit-alignment, for instance 4 to do 32 bit alignment.
virtual bool openLayer (VGrabContext &theContext, const Size &FullSize, const Size &SizeOfThisTile, const Layer &LayerProperties, const RefPtr< MovieManager > &M)=0
 Open the output device, possibly using a certain url that has been set via setOutputName().
virtual string setUrl (const string &prefixurl, const string &formatid, const RefPtr< MovieManager > &M, const MetaInfo &=MetaInfo())=0
 Setting the url to which the data should be sent.
virtual unsigned vertical_alignment () const
 Vertical bit-alignment, for instance 4 to do 32 bit alignment.
Public Member Functions inherited from MemCore::ReferenceBase< Grab >
auto getObjectCountID () const noexcept
 Get a unique ID for this object in the given domain.
bool isIdentical (const WeakPtr< Grab, Grab > &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 (Grab *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.

Protected Member Functions

virtual bool retrieve (VGrabContext &theContext, const ImageTile &theImageTile, const RefPtr< MovieManager > &M)=0
 Virtual function to be used for retrieving pixel data and storing them to some image, movie or video stream.
Protected Member Functions inherited from MemCore::ReferenceBase< Grab >
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.

Additional Inherited Members

Public Types inherited from MemCore::ReferenceBase< Grab >
using reference_domain_t
 The type of the base class.
using SelfPtr_t
 Type for a pointer to this object itself.

Detailed Description

Callback class for grabbing frames.

Member Function Documentation

◆ getMovieManager()

RefPtr< VFrameBuffer::Grab::MovieManager > Wizt::VFrameBuffer::Grab::getMovieManager ( const string & MovieOutputUrl,
int NumberOfFrames,
double Tmin,
double Tmax,
int StartFrame = 0 )
virtual

Indicate start of a rendering sequence.

This function is called whenever a frame sequence is about to be started. The created object will be released once the frame sequences has been finished. This functionality can be used by a Grabber implementation to collect all frames and push them all into one location, for instance when starting a movie encoding at the destructor. By default this function yields a nullptr.

◆ getNumberOfLayers()

unsigned Wizt::VFrameBuffer::Grab::getNumberOfLayers ( VGrabContext & theContext,
const RefPtr< MovieManager > & M )
virtual

How many layers does this grabber want?

This function indicates a new frame to be rendered.

◆ openLayer()

virtual bool Wizt::VFrameBuffer::Grab::openLayer ( VGrabContext & theContext,
const Size & FullSize,
const Size & SizeOfThisTile,
const Layer & LayerProperties,
const RefPtr< MovieManager > & M )
pure virtual

Open the output device, possibly using a certain url that has been set via setOutputName().

Returns
false if the output could not be opened.

◆ setUrl()

string Wizt::VFrameBuffer::Grab::setUrl ( const string & prefixurl,
const string & formatid,
const RefPtr< MovieManager > & M,
const MetaInfo & = MetaInfo() )
pure virtual

Setting the url to which the data should be sent.

Can be a local filename, of course.

Returns
The full filename produced here.
Todo
Make more cooperative with the MovieManager