The Vish Visualization Shell 0.3
Vish
Classes | Public Member Functions | Protected Member Functions | List of all members
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? This function indicates a new frame to be rendered.
 
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 = Grab
 The type of the base class.
 
using SelfPtr_t = WeakPtr< Grab, Grab >
 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.

◆ 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