TuttleOFX  1
tuttle::host::ofx::imageEffect::OfxhImageEffectNode Class Reference

#include <OfxhImageEffectNode.hpp>

Inheritance diagram for tuttle::host::ofx::imageEffect::OfxhImageEffectNode:
Collaboration diagram for tuttle::host::ofx::imageEffect::OfxhImageEffectNode:

Public Types

typedef OfxhImageEffectNode This
typedef std::map
< attribute::OfxhClipImage
*, std::vector< OfxRangeD > > 
ClipRangeMap
 a map used to specify needed frame ranges on set of clips
typedef std::set< OfxTime > TimesSet
typedef std::map< std::string,
TimesSet
ClipTimesSetMap

Public Member Functions

 OfxhImageEffectNode (const OfxhImageEffectPlugin &plugin, const OfxhImageEffectNodeDescriptor &other, const std::string &context, bool interactive)
 constructor based on clip descriptor
 OfxhImageEffectNode (const OfxhImageEffectNode &other)
virtual ~OfxhImageEffectNode ()=0
void copyAttributesValues (const OfxhImageEffectNode &other)
bool operator== (const This &) const
bool operator!= (const This &other) const
virtual property::OfxhSetgetParamSetProps ()
 implemented for Param::SetInstance
virtual void paramChanged (const attribute::OfxhParam &param, const attribute::EChange change)
 implemented for Param::SetInstance
const
OfxhImageEffectNodeDescriptor
getDescriptor () const
 get the descriptor for this instance
const
tuttle::host::ofx::imageEffect::OfxhImageEffectPlugin
getPlugin () const
 return the plugin this instance was created with
const std::string & getContext () const
 return the context this instance was created with
virtual const std::string & getDefaultOutputFielding () const =0
const std::string & getOutputFielding () const
 get output fielding as set in the clip preferences action.
const std::string & getOutputPreMultiplication () const
 get output fielding as set in the clip preferences action.
double getOutputFrameRate () const
 get the output frame rate, as set in the clip prefences action.
double getOutputPixelAspectRatio () const
bool checkClipConnectionStatus () const
 are all the non optional clips connected
bool continuousSamples () const
bool isFrameVarying () const
virtual int abort ()=0
 override this to make processing abort, return 1 to abort processing
virtual OfxhMemorynewMemoryInstance (size_t nBytes)=0
 override this to use your own memory instance - must inherrit from OfxhMemory
OfxhMemoryimageMemoryAlloc (size_t nBytes)
size_t upperGetDimension (const std::string &name)
virtual void notify (const std::string &name, bool singleValue, int indexOrN) OFX_EXCEPTION_SPEC
 overridden from Property::Notify
virtual double getDoubleProperty (const std::string &name, int index) const OFX_EXCEPTION_SPEC
 overridden from gethook, get the virtuals for viewport size, pixel scale, background colour
virtual void getDoublePropertyN (const std::string &name, double *values, int count) const OFX_EXCEPTION_SPEC
 overridden from gethook, get the virtuals for viewport size, pixel scale, background colour
virtual void reset (const std::string &name) OFX_EXCEPTION_SPEC
 overridden from gethook, don't know what to do
virtual size_t getDimension (const std::string &name) const OFX_EXCEPTION_SPEC
 override this to fetch the dimension size.
virtual void getProjectSize (double &xSize, double &ySize) const =0
virtual void getProjectOffset (double &xOffset, double &yOffset) const =0
virtual void getProjectExtent (double &xSize, double &ySize) const =0
virtual double getProjectPixelAspectRatio () const =0
virtual double getEffectDuration () const =0
virtual double getFrameRecursive () const =0
virtual void getRenderScaleRecursive (double &x, double &y) const =0
virtual bool isChromaticComponent (const std::string &str) const
virtual void createInstanceAction () OFX_EXCEPTION_SPEC
virtual void beginInstanceChangedAction (const std::string &why) OFX_EXCEPTION_SPEC
virtual void paramInstanceChangedAction (const std::string &paramName, const std::string &why, OfxTime time, OfxPointD renderScale) OFX_EXCEPTION_SPEC
virtual void clipInstanceChangedAction (const std::string &clipName, const std::string &why, OfxTime time, OfxPointD renderScale) OFX_EXCEPTION_SPEC
virtual void endInstanceChangedAction (const std::string &why) OFX_EXCEPTION_SPEC
virtual void purgeCachesAction () OFX_EXCEPTION_SPEC
virtual void syncPrivateDataAction () OFX_EXCEPTION_SPEC
virtual void beginInstanceEditAction () OFX_EXCEPTION_SPEC
virtual void endInstanceEditAction () OFX_EXCEPTION_SPEC
virtual void beginSequenceRenderAction (OfxTime startFrame, OfxTime endFrame, double step, bool interactive, OfxPointD renderScale) OFX_EXCEPTION_SPEC
virtual void renderAction (OfxTime time, const std::string &field, const OfxRectI &renderWindow, OfxPointD renderScale) OFX_EXCEPTION_SPEC
virtual void endSequenceRenderAction (OfxTime startFrame, OfxTime endFrame, double step, bool interactive, OfxPointD renderScale) OFX_EXCEPTION_SPEC
virtual void getRegionOfDefinitionAction (OfxTime time, OfxPointD renderScale, OfxRectD &rod) const OFX_EXCEPTION_SPEC
virtual void getRegionOfInterestAction (OfxTime time, OfxPointD renderScale, const OfxRectD &roi, std::map< attribute::OfxhClipImage *, OfxRectD > &rois) const OFX_EXCEPTION_SPEC
virtual void getFramesNeededAction (OfxTime time, ClipRangeMap &rangeMap) const OFX_EXCEPTION_SPEC
ClipTimesSetMap getFramesNeeded (const OfxTime time) const
virtual bool isIdentityAction (OfxTime &time, const std::string &field, const OfxRectI &renderWindow, OfxPointD renderScale, std::string &clip) const OFX_EXCEPTION_SPEC
virtual bool getTimeDomainAction (OfxRangeD &range) const OFX_EXCEPTION_SPEC
void initOverlayDescriptor (int bitDepthPerComponent=8, bool hasAlpha=false)
const
interact::OfxhInteractDescriptor
getOverlayDescriptor () const
virtual void getClipPreferencesAction () OFX_EXCEPTION_SPEC
bool runGetClipPrefsConditionally ()

Protected Member Functions

void initHook ()
void populate ()
void populateParams (const imageEffect::OfxhImageEffectNodeDescriptor &descriptor)
virtual void vmessage (const char *type, const char *id, const char *format, va_list args) const OFX_EXCEPTION_SPEC=0
 make a clip
virtual OfxStatus mainEntry (const char *action, const void *handle, property::OfxhSet *inArgs, property::OfxhSet *outArgs) const
 call the effect entry point
virtual bool canCurrentlyHandleMultipleClipDepths () const
OfxRectD computeClipRodUnionAtTimes (const attribute::OfxhClipImage &clip, const TimesSet &timesSet) const
virtual OfxRectD calcDefaultRegionOfDefinition (OfxTime time, OfxPointD renderScale) const
 calculate the default rod for this effect instance
virtual void setCustomInArgs (const std::string &action, property::OfxhSet &inArgs) const
 this is used to populate with any extra action in arguments that may be needed
virtual void setCustomOutArgs (const std::string &action, property::OfxhSet &outArgs) const
 this is used to populate with any extra action out arguments that may be needed
virtual void examineOutArgs (const std::string &action, OfxStatus stat, const property::OfxhSet &outArgs) const
 this is used retrieve any out args after the action was called in mainEntry
virtual ofx::attribute::OfxhParamnewParam (const ofx::attribute::OfxhParamDescriptor &Descriptor)=0
virtual const std::string & bestSupportedBitDepth (const std::string &depth) const
virtual const std::string & findMostChromaticComponents (const std::string &a, const std::string &b) const
bool isSupportedBitDepth (const std::string &depth) const

Protected Attributes

const OfxhImageEffectPlugin_plugin
std::string _context
const
OfxhImageEffectNodeDescriptor
_descriptor
bool _interactive
bool _created
bool _continuousSamples
 set by clip prefs
bool _frameVarying
 set by clip prefs
std::string _outputPreMultiplication
 set by clip prefs
std::string _outputFielding
 set by clip prefs
double _outputFrameRate
 set by clip prefs

Private Member Functions

attribute::OfxhClipImagegetOutputOfxhClip ()
const attribute::OfxhClipImagegetOutputOfxhClip () const
virtual void setDefaultClipPreferences ()
 Setup the default clip preferences on the clips.
virtual void setupClipInstancePreferences (property::OfxhSet &outArgs)
 Setup the default host clip instance members data retrieved from the plugin instance.
virtual void setupClipPreferencesArgs (property::OfxhSet &outArgs, std::list< std::string > &outKeepPropNamesOwnership)
bool isLeafNode () const
 Check if the node is a leaf in the graph. If there is no input clip connected.
template<class Archive >
void serialize (Archive &ar, const unsigned int version)

Friends

class boost::serialization::access

Detailed Description

an image effect plugin instance.

Client code needs to filling the pure virtuals in this.

Definition at line 62 of file OfxhImageEffectNode.hpp.


Member Typedef Documentation

a map used to specify needed frame ranges on set of clips

Definition at line 74 of file OfxhImageEffectNode.hpp.

Definition at line 75 of file OfxhImageEffectNode.hpp.


Constructor & Destructor Documentation

tuttle::host::ofx::imageEffect::OfxhImageEffectNode::OfxhImageEffectNode ( const OfxhImageEffectNode other)
tuttle::host::ofx::imageEffect::OfxhImageEffectNode::~OfxhImageEffectNode ( ) [pure virtual]

Member Function Documentation

virtual int tuttle::host::ofx::imageEffect::OfxhImageEffectNode::abort ( ) [pure virtual]

override this to make processing abort, return 1 to abort processing

Implemented in tuttle::host::ImageEffectNode.

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::beginInstanceChangedAction ( const std::string &  why) [virtual]

begin/change/end instance changed

Definition at line 479 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::property::ePropTypeString.

Referenced by paramChanged().

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::beginInstanceEditAction ( ) [virtual]

end edit instance

Definition at line 605 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::getHandle(), and mainEntry().

Here is the call graph for this function:

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::beginSequenceRenderAction ( OfxTime  startFrame,
OfxTime  endFrame,
double  step,
bool  interactive,
OfxPointD  renderScale 
) [virtual]
const std::string & tuttle::host::ofx::imageEffect::OfxhImageEffectNode::bestSupportedBitDepth ( const std::string &  depth) const [protected, virtual]

find the best supported bit depth for the given one. Override this if you define more depths

given the bit depth, find the best match for it.

Something wrong here

Definition at line 1496 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::isBitDepthSupported().

Referenced by tuttle::host::ImageEffectNode::maximizeBitDepthFromReadsToWrites(), and setDefaultClipPreferences().

Here is the call graph for this function:

OfxRectD tuttle::host::ofx::imageEffect::OfxhImageEffectNode::calcDefaultRegionOfDefinition ( OfxTime  time,
OfxPointD  renderScale 
) const [protected, virtual]
bool tuttle::host::ofx::imageEffect::OfxhImageEffectNode::canCurrentlyHandleMultipleClipDepths ( ) const [protected, virtual]

function to check for multiple bit depth support The answer will depend on host, plugin and context

does the host support 'em

does the plug-in support 'em

no support, so no

Definition at line 1197 of file OfxhImageEffectNode.cpp.

References _context, tuttle::host::core(), tuttle::host::Core::getHost(), tuttle::host::ofx::property::OfxhSet::getIntProperty(), tuttle::host::ofx::OfxhHost::getProperties(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::supportsMultipleClipDepths().

Referenced by setDefaultClipPreferences(), and setupClipPreferencesArgs().

Here is the call graph for this function:

bool tuttle::host::ofx::imageEffect::OfxhImageEffectNode::checkClipConnectionStatus ( ) const

are all the non optional clips connected

check for connection

Definition at line 378 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages.

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::clipInstanceChangedAction ( const std::string &  clipName,
const std::string &  why,
OfxTime  time,
OfxPointD  renderScale 
) [virtual]
OfxRectD tuttle::host::ofx::imageEffect::OfxhImageEffectNode::computeClipRodUnionAtTimes ( const attribute::OfxhClipImage clip,
const TimesSet timesSet 
) const [protected]

Definition at line 713 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::attribute::OfxhClipImage::fetchRegionOfDefinition(), and tuttle::ofx::rectUnion().

Referenced by calcDefaultRegionOfDefinition().

Here is the call graph for this function:

bool tuttle::host::ofx::imageEffect::OfxhImageEffectNode::continuousSamples ( ) const [inline]

can this this instance render images at arbitrary times, not just frame boundaries set by getClipPreferenceAction()

Definition at line 167 of file OfxhImageEffectNode.hpp.

References _continuousSamples.

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::copyAttributesValues ( const OfxhImageEffectNode other) [inline]
void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::createInstanceAction ( ) [virtual]

create an instance. This needs to be called _after_ construction and _after_ the host populates it's params and clips with the 'correct' values (either persisted ones or the defaults)

create a clip instance

we need to init the clips before we call create instance incase they try and fetch something in create instance, which they are allowed

Definition at line 461 of file OfxhImageEffectNode.cpp.

References _created, tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::getHandle(), tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::getName(), mainEntry(), and setDefaultClipPreferences().

Referenced by tuttle::host::ofx::imageEffect::OfxhImageEffectPlugin::createInstance(), and tuttle::host::ImageEffectNode::ImageEffectNode().

Here is the call graph for this function:

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::endInstanceChangedAction ( const std::string &  why) [virtual]

Definition at line 565 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::property::ePropTypeString.

Referenced by paramChanged().

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::endInstanceEditAction ( ) [virtual]

end edit instance

Definition at line 616 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::getHandle(), and mainEntry().

Here is the call graph for this function:

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::endSequenceRenderAction ( OfxTime  startFrame,
OfxTime  endFrame,
double  step,
bool  interactive,
OfxPointD  renderScale 
) [virtual]
void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::examineOutArgs ( const std::string &  action,
OfxStatus  stat,
const property::OfxhSet outArgs 
) const [protected, virtual]

this is used retrieve any out args after the action was called in mainEntry

this is used to populate with any extra action out arguments that may be needed

Definition at line 373 of file OfxhImageEffectNode.cpp.

Referenced by mainEntry().

const std::string & tuttle::host::ofx::imageEffect::OfxhImageEffectNode::findMostChromaticComponents ( const std::string &  a,
const std::string &  b 
) const [protected, virtual]

find the most chromatic components out of the two. Override this if you define more chromatic components

Definition at line 1478 of file OfxhImageEffectNode.cpp.

Referenced by tuttle::host::ImageEffectNode::initComponents(), and setDefaultClipPreferences().

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getClipPreferencesAction ( ) [virtual]

Run the clip preferences action from the effect.

This will look into the input clips and output clip and set the following properties that the effect should fetch the image at.

  • pixel depth
  • components
  • pixel aspect ratio It will also set on the effect itself
  • whether it is continuously samplable
  • the premult state of the output
  • whether the effect is frame varying
  • the fielding of the output clip

This will be run automatically by the effect in the following situations...

  • an input clip is changed
  • a clip preferences slave param is changed

The host still needs to call this explicitly just after the effect is wired up.

the idea here is the clip prefs live as active props on the effect and are set up by clip preferences. The action manages the clip preferences bits. We also monitor clip and param changes and flag when clip prefs is dirty. call the clip preferences action

create the out args with the stuff that does not depend on individual clips

Definition at line 1448 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipPrefsDirty, tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::getHandle(), mainEntry(), setupClipInstancePreferences(), and setupClipPreferencesArgs().

Referenced by runGetClipPrefsConditionally(), and tuttle::host::ImageEffectNode::setup1().

Here is the call graph for this function:

const std::string& tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getContext ( ) const [inline]

return the context this instance was created with

Definition at line 140 of file OfxhImageEffectNode.hpp.

References _context.

Referenced by tuttle::host::Graph::getNodesByContext(), and tuttle::host::ImageEffectNode::progressStart().

virtual const std::string& tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getDefaultOutputFielding ( ) const [pure virtual]

get default output fielding. This is passed into the clip prefs action and might be mapped (if the host allows such a thing)

Implemented in tuttle::host::ImageEffectNode.

Referenced by setDefaultClipPreferences().

const OfxhImageEffectNodeDescriptor& tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getDescriptor ( ) const [inline]

get the descriptor for this instance

Definition at line 134 of file OfxhImageEffectNode.hpp.

References _descriptor.

Referenced by tuttle::host::ImageEffectNode::getVersion().

size_t tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getDimension ( const std::string &  name) const [virtual]

override this to fetch the dimension size.

Reimplemented from tuttle::host::ofx::property::OfxhGetHook.

Definition at line 227 of file OfxhImageEffectNode.cpp.

References TUTTLE_LOG_ERROR.

double tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getDoubleProperty ( const std::string &  name,
int  index 
) const [virtual]

overridden from gethook, get the virtuals for viewport size, pixel scale, background colour

get the virtuals for viewport size, pixel scale, background colour

Reimplemented from tuttle::host::ofx::property::OfxhGetHook.

Definition at line 256 of file OfxhImageEffectNode.cpp.

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getDoublePropertyN ( const std::string &  name,
double *  values,
int  count 
) const [virtual]

overridden from gethook, get the virtuals for viewport size, pixel scale, background colour

Reimplemented from tuttle::host::ofx::property::OfxhGetHook.

Definition at line 304 of file OfxhImageEffectNode.cpp.

virtual double tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getEffectDuration ( ) const [pure virtual]
virtual double tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getFrameRecursive ( ) const [pure virtual]

This is called whenever a param is changed by the plugin so that the recursive instanceChangedAction will be fed the correct frame

Implemented in tuttle::host::ImageEffectNode.

Referenced by paramChanged().

const std::string& tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getOutputFielding ( ) const [inline]

get output fielding as set in the clip preferences action.

Definition at line 152 of file OfxhImageEffectNode.hpp.

References _outputFielding.

double tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getOutputFrameRate ( ) const [inline]

get the output frame rate, as set in the clip prefences action.

Definition at line 158 of file OfxhImageEffectNode.hpp.

References _outputFrameRate.

Referenced by tuttle::host::attribute::ClipImage::getUnmappedFrameRate(), and tuttle::host::ImageEffectNode::initFps().

attribute::OfxhClipImage& tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getOutputOfxhClip ( ) [inline, private]

Definition at line 114 of file OfxhImageEffectNode.hpp.

References tuttle::host::ofx::attribute::OfxhClipImageSet::getClip().

Referenced by getOutputPixelAspectRatio(), and setDefaultClipPreferences().

Here is the call graph for this function:

const attribute::OfxhClipImage& tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getOutputOfxhClip ( ) const [inline, private]

Definition at line 115 of file OfxhImageEffectNode.hpp.

References tuttle::host::ofx::attribute::OfxhClipImageSet::getClip().

Here is the call graph for this function:

double tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getOutputPixelAspectRatio ( ) const [inline]
const std::string& tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getOutputPreMultiplication ( ) const [inline]

get output fielding as set in the clip preferences action.

Definition at line 155 of file OfxhImageEffectNode.hpp.

References _outputPreMultiplication.

const interact::OfxhInteractDescriptor& tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getOverlayDescriptor ( ) const [inline]

Definition at line 400 of file OfxhImageEffectNode.hpp.

References _descriptor, and tuttle::host::ofx::imageEffect::OfxhImageEffectNodeDescriptor::getOverlayDescriptor().

Here is the call graph for this function:

property::OfxhSet & tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getParamSetProps ( ) [virtual]

implemented for Param::SetInstance

implemented for Param::SetDescriptor

Implements tuttle::host::ofx::attribute::OfxhParamSetAccessor.

Definition at line 221 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::_properties.

virtual void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getProjectExtent ( double &  xSize,
double &  ySize 
) const [pure virtual]
virtual void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getProjectOffset ( double &  xOffset,
double &  yOffset 
) const [pure virtual]
virtual double tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getProjectPixelAspectRatio ( ) const [pure virtual]
virtual void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getProjectSize ( double &  xSize,
double &  ySize 
) const [pure virtual]
void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getRegionOfDefinitionAction ( OfxTime  time,
OfxPointD  renderScale,
OfxRectD &  rod 
) const [virtual]

Call the region of definition action the plugin at the given time and with the given render scales. The value is returned in rod. Note that if the plugin does not trap the action the default RoD is calculated and returned.

RoD call

Definition at line 836 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::property::ePropTypeDouble, tuttle::host::ofx::property::OfxhSet::getDoublePropertyN(), tuttle::host::ofx::property::OfxhSet::setDoubleProperty(), and tuttle::host::ofx::property::OfxhSet::setDoublePropertyN().

Referenced by tuttle::host::ImageEffectNode::preProcess1().

Here is the call graph for this function:

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getRegionOfInterestAction ( OfxTime  time,
OfxPointD  renderScale,
const OfxRectD &  roi,
std::map< attribute::OfxhClipImage *, OfxRectD > &  rois 
) const [virtual]

call the get region of interest action on the plugin for the given frame and renderscale. The render RoI is passed in in roi, the std::map will contain the requested rois. Note That this call will check for tiling support and for default replies and set up the correct rois in these cases as well

get the region of interest for each input and return it in the given std::map

No tiling support on the effect at all. So set the roi of each input clip to be the RoD of that clip.

Todo:
tuttle: how to support size on generators... check if this is correct in all cases.

set up the in args

initialise to the default

call the action

set the thing up

not supporting tiles on this input, so set it to the rod

Definition at line 885 of file OfxhImageEffectNode.cpp.

References tuttle::ofx::clamp(), tuttle::host::ofx::property::OfxhSet::createProperty(), tuttle::host::ofx::property::OfxhPropSpec::defaultValue, tuttle::host::ofx::property::OfxhPropSpec::dimension, tuttle::host::ofx::property::ePropTypeDouble, tuttle::host::ofx::property::OfxhSet::getDoubleProperty(), tuttle::host::ofx::property::OfxhPropSpec::name, tuttle::host::ofx::property::OfxhPropSpec::readonly, tuttle::host::ofx::property::OfxhSet::setDoubleProperty(), tuttle::host::ofx::property::OfxhSet::setDoublePropertyN(), and tuttle::host::ofx::property::OfxhPropSpec::type.

Referenced by tuttle::host::ImageEffectNode::preProcess2_reverse().

Here is the call graph for this function:

virtual void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getRenderScaleRecursive ( double &  x,
double &  y 
) const [pure virtual]

This is called whenever a param is changed by the plugin so that the recursive instanceChangedAction will be fed the correct renderScale

Implemented in tuttle::host::ImageEffectNode.

Referenced by paramChanged().

bool tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getTimeDomainAction ( OfxRangeD &  range) const [virtual]
OfxhMemory * tuttle::host::ofx::imageEffect::OfxhImageEffectNode::imageMemoryAlloc ( size_t  nBytes)

override this to make processing abort, return 1 to abort processing

int OfxhImageEffectNode::abort() { return 0; } override this to use your own memory instance - must inherrit from memory::instance

OfxhMemory* OfxhImageEffectNode::newMemoryInstance( size_t nBytes ) { OfxhMemory* instance = new OfxhMemory(); instance->alloc( nBytes ); return instance; }

Returns:
an memory::instance calls makeMemoryInstance that can be overriden

Definition at line 414 of file OfxhImageEffectNode.cpp.

References newMemoryInstance().

Here is the call graph for this function:

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::initOverlayDescriptor ( int  bitDepthPerComponent = 8,
bool  hasAlpha = false 
) [inline]

Get the interact description, this will also call describe on the interact This will return NULL if there is not main entry point or if the description failed otherwise it will return the described overlay This is called by the CTOR of OverlayInteract to get the descriptor to do things with

Todo:
tuttle initOverlayDescriptor... !!! Correct the constness

Definition at line 394 of file OfxhImageEffectNode.hpp.

References _descriptor.

Referenced by tuttle::host::OverlayInteract::OverlayInteract().

bool tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isChromaticComponent ( const std::string &  str) const [virtual]

Get whether the component is a supported 'chromatic' component (RGBA or alpha) in the base API. Override this if you have extended your chromatic colour types (eg RGB) and want the clip preferences logic to still work

Definition at line 1182 of file OfxhImageEffectNode.cpp.

Referenced by setDefaultClipPreferences().

bool tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isFrameVarying ( ) const [inline]

does this instance generate a different picture on a frame change, even if the params and input images are exactly the same. eg: random noise generator

Definition at line 171 of file OfxhImageEffectNode.hpp.

References _frameVarying.

Referenced by tuttle::host::ImageEffectNode::getLocalHashAtTime().

bool tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isLeafNode ( ) const [private]

Check if the node is a leaf in the graph. If there is no input clip connected.

Definition at line 1384 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), and tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput().

Referenced by setupClipInstancePreferences().

Here is the call graph for this function:

bool tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isSupportedBitDepth ( const std::string &  depth) const [inline, protected]
OfxStatus tuttle::host::ofx::imageEffect::OfxhImageEffectNode::mainEntry ( const char *  action,
const void *  handle,
property::OfxhSet inArgs,
property::OfxhSet outArgs 
) const [protected, virtual]
virtual OfxhMemory* tuttle::host::ofx::imageEffect::OfxhImageEffectNode::newMemoryInstance ( size_t  nBytes) [pure virtual]

override this to use your own memory instance - must inherrit from OfxhMemory

Implemented in tuttle::host::ImageEffectNode.

Referenced by imageMemoryAlloc().

virtual ofx::attribute::OfxhParam* tuttle::host::ofx::imageEffect::OfxhImageEffectNode::newParam ( const ofx::attribute::OfxhParamDescriptor Descriptor) [protected, pure virtual]

Implemented in tuttle::host::ImageEffectNode.

Referenced by populateParams().

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::notify ( const std::string &  name,
bool  singleValue,
int  indexOrN 
) [virtual]

overridden from Property::Notify

Implements tuttle::host::ofx::property::OfxhNotifyHook.

Definition at line 239 of file OfxhImageEffectNode.cpp.

References TUTTLE_LOG_ERROR.

bool tuttle::host::ofx::imageEffect::OfxhImageEffectNode::operator!= ( const This other) const [inline]

Reimplemented from tuttle::host::ofx::attribute::OfxhClipImageSet.

Definition at line 125 of file OfxhImageEffectNode.hpp.

References operator==().

Here is the call graph for this function:

bool tuttle::host::ofx::imageEffect::OfxhImageEffectNode::operator== ( const This ) const
void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::paramChanged ( const attribute::OfxhParam param,
const attribute::EChange  change 
) [virtual]
void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::paramInstanceChangedAction ( const std::string &  paramName,
const std::string &  why,
OfxTime  time,
OfxPointD  renderScale 
) [virtual]
void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::populate ( ) [protected]

called after construction to populate the various members ideally should be called in the ctor, but it relies on virtuals so has to be delayed until after the effect is constructed

called after construction to populate clips and params

Definition at line 152 of file OfxhImageEffectNode.cpp.

References _descriptor, tuttle::host::ofx::attribute::OfxhClipImageSet::populateClips(), and populateParams().

Referenced by tuttle::host::ImageEffectNode::ImageEffectNode().

Here is the call graph for this function:

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::purgeCachesAction ( ) [virtual]

purge plugin caches

Definition at line 583 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::getHandle(), and mainEntry().

Here is the call graph for this function:

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::renderAction ( OfxTime  time,
const std::string &  field,
const OfxRectI &  renderWindow,
OfxPointD  renderScale 
) [virtual]
void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::reset ( const std::string &  name) [virtual]

overridden from gethook, don't know what to do

don't know what to do

Reimplemented from tuttle::host::ofx::property::OfxhGetHook.

Definition at line 247 of file OfxhImageEffectNode.cpp.

References TUTTLE_LOG_ERROR.

bool tuttle::host::ofx::imageEffect::OfxhImageEffectNode::runGetClipPrefsConditionally ( ) [inline]

calls getClipPreferences only if the prefs are dirty

returns whether the clips prefs were dirty or not

Definition at line 452 of file OfxhImageEffectNode.hpp.

References tuttle::host::ofx::attribute::OfxhClipImageSet::areClipPrefsDirty(), and getClipPreferencesAction().

Here is the call graph for this function:

template<class Archive >
void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::serialize ( Archive &  ar,
const unsigned int  version 
) [inline, private]
void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::setCustomInArgs ( const std::string &  action,
property::OfxhSet inArgs 
) const [protected, virtual]

this is used to populate with any extra action in arguments that may be needed

Definition at line 363 of file OfxhImageEffectNode.cpp.

Referenced by mainEntry().

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::setCustomOutArgs ( const std::string &  action,
property::OfxhSet outArgs 
) const [protected, virtual]

this is used to populate with any extra action out arguments that may be needed

Definition at line 368 of file OfxhImageEffectNode.cpp.

Referenced by mainEntry().

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::setDefaultClipPreferences ( ) [private, virtual]

Setup the default clip preferences on the clips.

Setup the default clip preferences on the clips

is there multiple bit depth support? Depends on host, plugin and context

OK find the deepest chromatic component on our input clips and the one with the most components

set some stuff up

now find the best depth that the plugin supports

now add the clip gubbins to the out args

hmm custom component type, don't touch it and pass it through

Definition at line 1225 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, _continuousSamples, _frameVarying, _outputFielding, _outputFrameRate, _outputPreMultiplication, bestSupportedBitDepth(), canCurrentlyHandleMultipleClipDepths(), tuttle::host::ofx::property::eModifiedByHost, tuttle::ofx::imageEffect::findDeepestBitDepth(), findMostChromaticComponents(), tuttle::host::ofx::attribute::OfxhClipImage::findSupportedComp(), getDefaultOutputFielding(), tuttle::host::ofx::attribute::OfxhClipImage::getFrameRate(), getOutputOfxhClip(), tuttle::host::ofx::attribute::OfxhClipImage::getPixelAspectRatio(), tuttle::host::ofx::attribute::OfxhClipImage::getPremult(), tuttle::host::ofx::attribute::OfxhClipImage::getUnmappedBitDepth(), tuttle::host::ofx::attribute::OfxhClipImage::getUnmappedComponents(), isChromaticComponent(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), tuttle::max(), tuttle::ofx::maximum(), tuttle::host::ofx::attribute::OfxhClipImage::setBitDepthString(), tuttle::host::ofx::attribute::OfxhClipImage::setComponentsString(), and tuttle::host::ofx::attribute::OfxhClipImage::setPixelAspectRatio().

Referenced by createInstanceAction(), and setupClipPreferencesArgs().

Here is the call graph for this function:

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::setupClipPreferencesArgs ( property::OfxhSet outArgs,
std::list< std::string > &  outKeepPropNamesOwnership 
) [private, virtual]

Initialise the clip preferences arguments, override this to do stuff with wierd components etc... Calls setDefaultClipPreferences

Initialise the clip preferences arguments, override this to do stuff with wierd components etc...

reset all the clip prefs stuff to their defaults

set the default for those

is there multiple bit depth support? Depends on host, plugin and context

now add the clip gubbins to the out args

Definition at line 1329 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, _outputFielding, _outputFrameRate, _outputPreMultiplication, tuttle::host::ofx::property::OfxhSet::addProperties(), canCurrentlyHandleMultipleClipDepths(), tuttle::host::ofx::property::OfxhSet::createProperty(), tuttle::host::ofx::property::ePropTypeDouble, tuttle::host::ofx::property::ePropTypeInt, tuttle::host::ofx::property::ePropTypeString, tuttle::host::ofx::attribute::OfxhClipImage::getBitDepthString(), tuttle::host::ofx::attribute::OfxhClipImage::getComponentsString(), tuttle::host::ofx::attribute::OfxhClipImage::getPixelAspectRatio(), setDefaultClipPreferences(), tuttle::host::ofx::property::OfxhSet::setDoubleProperty(), and tuttle::host::ofx::property::OfxhSet::setStringProperty().

Referenced by getClipPreferencesAction().

Here is the call graph for this function:

void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::syncPrivateDataAction ( ) [virtual]

sync plugin private data

Definition at line 594 of file OfxhImageEffectNode.cpp.

References tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::getHandle(), and mainEntry().

Here is the call graph for this function:

size_t tuttle::host::ofx::imageEffect::OfxhImageEffectNode::upperGetDimension ( const std::string &  name)
virtual void tuttle::host::ofx::imageEffect::OfxhImageEffectNode::vmessage ( const char *  type,
const char *  id,
const char *  format,
va_list  args 
) const [protected, pure virtual]

make a clip

Implements tuttle::host::ofx::OfxhIMessage.

Implemented in tuttle::host::ImageEffectNode.


Friends And Related Function Documentation

friend class boost::serialization::access [friend]

Field Documentation


The documentation for this class was generated from the following files: