TuttleOFX
1
|
#include <ImageEffectNode.hpp>
Public Types | |
typedef ImageEffectNode | This |
Public Member Functions | |
ImageEffectNode (ofx::imageEffect::OfxhImageEffectPlugin &plugin, ofx::imageEffect::OfxhImageEffectNodeDescriptor &desc, const std::string &context) | |
ImageEffectNode (const ImageEffectNode &other) | |
~ImageEffectNode () | |
std::string | getLabel () const |
const std::string & | getName () const |
void | setName (const std::string &name) |
std::size_t | getNbParams () const |
const ofx::attribute::OfxhParam & | getParam (const std::string &name) const |
ofx::attribute::OfxhParam & | getParam (const std::string &name) |
const ofx::attribute::OfxhParam & | getParamByScriptName (const std::string &name, const bool acceptPartialName=false) const |
ofx::attribute::OfxhParam & | getParamByScriptName (const std::string &name, const bool acceptPartialName=false) |
const ofx::attribute::OfxhParam & | getParam (const std::size_t index) const |
ofx::attribute::OfxhParam & | getParam (const std::size_t index) |
const ofx::property::OfxhSet & | getProperties () const |
ofx::property::OfxhSet & | getEditableProperties () |
std::vector< int > | getVersion () const |
ImageEffectNode * | clone () const |
bool | operator== (const INode &other) const |
bool | operator== (const ImageEffectNode &other) const |
const ENodeType | getNodeType () const |
void | connect (const INode &sourceEffect, attribute::Attribute &attr) |
attribute::ClipImage & | getClip (const std::string &name, const bool acceptPartialName=false) |
const attribute::ClipImage & | getClip (const std::string &name, const bool acceptPartialName=false) const |
attribute::Attribute & | getAttribute (const std::string &name) |
attribute::Attribute & | getSingleInputAttribute () |
const attribute::Attribute & | getSingleInputAttribute () const |
ofx::attribute::OfxhParamSet & | getParamSet () |
const ofx::attribute::OfxhParamSet & | getParamSet () const |
ofx::attribute::OfxhClipImageSet & | getClipImageSet () |
const ofx::attribute::OfxhClipImageSet & | getClipImageSet () const |
std::size_t | getLocalHashAtTime (const OfxTime time) const |
OfxRectD | getRegionOfDefinition (const OfxTime time) const |
OfxRangeD | getTimeDomain () const |
void | debugOutputImage (const OfxTime time) const |
OfxRangeD | getDefaultTimeDomain () const |
std::ostream & | print (std::ostream &os) const |
const std::string & | getDefaultOutputFielding () const |
int | abort () |
ofx::OfxhMemory * | newMemoryInstance (size_t nBytes) |
ofx::attribute::OfxhClipImage * | newClipImage (const ofx::attribute::OfxhClipImageDescriptor &descriptor) |
make a clip | |
void | vmessage (const char *type, const char *id, const char *format, va_list args) const OFX_EXCEPTION_SPEC |
vmessage | |
void | getProjectSize (double &xSize, double &ySize) const |
void | getProjectOffset (double &xOffset, double &yOffset) const |
void | getProjectExtent (double &xSize, double &ySize) const |
double | getProjectPixelAspectRatio () const |
const std::string | getProjectPixelComponentsType () const |
const std::string | getProjectBitDepth () const |
double | getEffectDuration () const |
double | getFrameRecursive () const |
void | getRenderScaleRecursive (double &x, double &y) const |
ofx::attribute::OfxhParam * | newParam (const ofx::attribute::OfxhParamDescriptor &Descriptor) OFX_EXCEPTION_SPEC |
void | editBegin (const std::string &name) OFX_EXCEPTION_SPEC |
void | editEnd () OFX_EXCEPTION_SPEC |
void | progressStart (const std::string &message) |
Start doing progress. | |
void | progressEnd () |
finish yer progress | |
bool | progressUpdate (const double t) |
double | timelineGetTime () |
void | timelineGotoTime (double t) |
set the timeline to a specific time | |
void | timelineGetBounds (double &t1, double &t2) |
get the first and last times available on the effect's timeline | |
const OfxRangeD & | getEffectFrameRange () const |
void | beginSequenceRenderAction (OfxTime startFrame, OfxTime endFrame, OfxTime step, bool interactive, OfxPointD renderScale) OFX_EXCEPTION_SPEC |
override to get frame range of the effect | |
OfxRangeD | computeTimeDomain () |
void | setup1 () |
void | setup2_reverse () |
void | setup3 () |
void | beginSequence (graph::ProcessVertexData &vData) |
Begin of the a new frame range to process. Initilize this node. | |
INode::ClipTimesSetMap | getTimesNeeded (const OfxTime time) const |
Asks the plugin all times it needs for each of it's input clips. | |
void | preProcess1 (graph::ProcessVertexAtTimeData &vData) |
Initialization pass to propagate informations from inputs to outputs. | |
void | preProcess2_reverse (graph::ProcessVertexAtTimeData &vData) |
Initialization pass to propagate informations from outputs to inputs. | |
bool | isIdentity (const graph::ProcessVertexAtTimeData &vData, std::string &clip, OfxTime &time) const |
The node can declare to be an identity operation. In this case, the node is not processed and the rendering engine direcly use the indicated input clip at a particular time. | |
void | preProcess_infos (const graph::ProcessVertexAtTimeData &vData, const OfxTime time, graph::ProcessVertexAtTimeInfo &nodeInfos) const |
Fill ProcessInfo to compute statistics for the current process, like memory used by this node, by all input nodes, etc. | |
void | process (graph::ProcessVertexAtTimeData &vData) |
Process this node. All inputs are compute. | |
void | postProcess (graph::ProcessVertexAtTimeData &vData) |
The process of all nodes is done for one frame, now finalize this node. | |
void | endSequence (graph::ProcessVertexData &vData) |
End of the whole frame range process, now finalize this node. | |
Private Member Functions | |
void | checkClipsConnections () const |
void | initComponents () |
void | initInputClipsPixelAspectRatio () |
void | initPixelAspectRatio () |
void | initInputClipsFps () |
void | initFps () |
void | maximizeBitDepthFromReadsToWrites () |
void | maximizeBitDepthFromWritesToReads () |
void | coutBitDepthConnections () const |
void | validBitDepthConnections () const |
Friends | |
std::ostream & | operator<< (std::ostream &os, const This &v) |
Definition at line 18 of file ImageEffectNode.hpp.
Reimplemented from tuttle::host::INode.
Definition at line 22 of file ImageEffectNode.hpp.
tuttle::host::ImageEffectNode::ImageEffectNode | ( | ofx::imageEffect::OfxhImageEffectPlugin & | plugin, |
ofx::imageEffect::OfxhImageEffectNodeDescriptor & | desc, | ||
const std::string & | context | ||
) |
Definition at line 47 of file ImageEffectNode.cpp.
References tuttle::host::ofx::imageEffect::OfxhImageEffectNode::populate().
Referenced by clone().
tuttle::host::ImageEffectNode::ImageEffectNode | ( | const ImageEffectNode & | other | ) |
Definition at line 56 of file ImageEffectNode.cpp.
References tuttle::host::ofx::imageEffect::OfxhImageEffectNode::copyAttributesValues(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::createInstanceAction(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNode::populate().
tuttle::host::ImageEffectNode::~ImageEffectNode | ( | ) |
Definition at line 65 of file ImageEffectNode.cpp.
int tuttle::host::ImageEffectNode::abort | ( | ) | [virtual] |
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 155 of file ImageEffectNode.cpp.
void tuttle::host::ImageEffectNode::beginSequence | ( | graph::ProcessVertexData & | processData | ) | [virtual] |
Begin of the a new frame range to process. Initilize this node.
[in] | processData |
Implements tuttle::host::INode.
Definition at line 774 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexData::_interactive, tuttle::host::graph::ProcessVertexData::_renderScale, tuttle::host::graph::ProcessVertexData::_renderTimeRange, tuttle::host::graph::ProcessVertexData::_step, beginSequenceRenderAction(), OfxRangeD::max, and OfxRangeD::min.
void tuttle::host::ImageEffectNode::beginSequenceRenderAction | ( | OfxTime | startFrame, |
OfxTime | endFrame, | ||
OfxTime | step, | ||
bool | interactive, | ||
OfxPointD | renderScale | ||
) | [virtual] |
override to get frame range of the effect
Reimplemented from tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 386 of file ImageEffectNode.cpp.
References OFX::Private::beginSequenceRenderAction().
Referenced by beginSequence().
void tuttle::host::ImageEffectNode::checkClipsConnections | ( | ) | const [private] |
Definition at line 395 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::attribute::ClipImage::getFullName(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhClipAccessor::isOptional(), and tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput().
Referenced by setup1().
ImageEffectNode* tuttle::host::ImageEffectNode::clone | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 58 of file ImageEffectNode.hpp.
References ImageEffectNode().
OfxRangeD tuttle::host::ImageEffectNode::computeTimeDomain | ( | ) | [virtual] |
Implementation of INode virtual functions
Implements tuttle::host::INode.
Definition at line 712 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::attribute::ClipImage::getConnectedClip(), getDefaultTimeDomain(), tuttle::host::ofx::attribute::OfxhClipImage::getFrameRange(), getName(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getTimeDomainAction(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), kOfxImageEffectOutputClipName, OfxRangeD::max, OfxRangeD::min, tuttle::quotes(), tuttle::host::attribute::ClipImage::setFrameRange(), TUTTLE_INFO, and TUTTLE_TLOG.
void tuttle::host::ImageEffectNode::connect | ( | const INode & | sourceEffect, |
attribute::Attribute & | attr | ||
) | [virtual] |
Implements tuttle::host::INode.
Definition at line 84 of file ImageEffectNode.cpp.
References tuttle::host::INode::getClip(), kOfxImageEffectOutputClipName, and tuttle::host::attribute::ClipImage::setConnectedClip().
void tuttle::host::ImageEffectNode::coutBitDepthConnections | ( | ) | const [private] |
Definition at line 625 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::ofx::attribute::OfxhClipImage::getBitDepth(), tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::attribute::ClipImage::getFullName(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), TUTTLE_INFO, and TUTTLE_TLOG.
void tuttle::host::ImageEffectNode::debugOutputImage | ( | const OfxTime | time | ) | const |
Definition at line 1060 of file ImageEffectNode.cpp.
References tuttle::host::core(), getName(), and kOfxOutputAttributeName.
Referenced by process().
void tuttle::host::ImageEffectNode::editBegin | ( | const std::string & | name | ) | [virtual] |
Triggered when the plug-in calls OfxParameterSuiteV1::paramEditBegin
Client host code needs to implement this
Implements tuttle::host::ofx::attribute::OfxhParamSet.
Definition at line 330 of file ImageEffectNode.cpp.
void tuttle::host::ImageEffectNode::editEnd | ( | ) | [virtual] |
Triggered when the plug-in calls OfxParameterSuiteV1::paramEditEnd
Client host code needs to implement this
Implements tuttle::host::ofx::attribute::OfxhParamSet.
Definition at line 335 of file ImageEffectNode.cpp.
void tuttle::host::ImageEffectNode::endSequence | ( | graph::ProcessVertexData & | processData | ) | [virtual] |
End of the whole frame range process, now finalize this node.
[in] | processData |
Implements tuttle::host::INode.
Definition at line 1019 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexData::_interactive, tuttle::host::graph::ProcessVertexData::_renderScale, tuttle::host::graph::ProcessVertexData::_renderTimeRange, tuttle::host::graph::ProcessVertexData::_step, tuttle::host::ofx::imageEffect::OfxhImageEffectNode::endSequenceRenderAction(), OfxRangeD::max, and OfxRangeD::min.
attribute::Attribute& tuttle::host::ImageEffectNode::getAttribute | ( | const std::string & | name | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 73 of file ImageEffectNode.hpp.
References getClip().
attribute::ClipImage& tuttle::host::ImageEffectNode::getClip | ( | const std::string & | name, |
const bool | acceptPartialName = false |
||
) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 70 of file ImageEffectNode.hpp.
Referenced by getAttribute(), getClip(), and process().
const attribute::ClipImage& tuttle::host::ImageEffectNode::getClip | ( | const std::string & | name, |
const bool | acceptPartialName = false |
||
) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 71 of file ImageEffectNode.hpp.
References getClip().
ofx::attribute::OfxhClipImageSet& tuttle::host::ImageEffectNode::getClipImageSet | ( | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 81 of file ImageEffectNode.hpp.
const ofx::attribute::OfxhClipImageSet& tuttle::host::ImageEffectNode::getClipImageSet | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 82 of file ImageEffectNode.hpp.
const std::string & tuttle::host::ImageEffectNode::getDefaultOutputFielding | ( | ) | const [virtual] |
get default output fielding. This is passed into the clip prefs action and might be mapped (if the host allows such a thing)
our clip is pretending to be progressive PAL SD, so return kOfxImageFieldNone
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 144 of file ImageEffectNode.cpp.
References kOfxImageFieldNone.
OfxRangeD tuttle::host::ImageEffectNode::getDefaultTimeDomain | ( | ) | const |
Definition at line 679 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::attribute::Attribute::getNode(), tuttle::host::INode::getTimeDomain(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), kOfxFlagInfiniteMax, kOfxFlagInfiniteMin, tuttle::max(), OfxRangeD::max, tuttle::min(), and OfxRangeD::min.
Referenced by computeTimeDomain().
ofx::property::OfxhSet& tuttle::host::ImageEffectNode::getEditableProperties | ( | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 45 of file ImageEffectNode.hpp.
double tuttle::host::ImageEffectNode::getEffectDuration | ( | void | ) | const [virtual] |
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 233 of file ImageEffectNode.cpp.
const OfxRangeD& tuttle::host::ImageEffectNode::getEffectFrameRange | ( | ) | const [inline] |
Definition at line 250 of file ImageEffectNode.hpp.
References tuttle::host::graph::ProcessVertexData::_renderTimeRange, and tuttle::host::INode::getData().
double tuttle::host::ImageEffectNode::getFrameRecursive | ( | ) | const [virtual] |
This is called whenever a param is changed by the plugin so that the recursive instanceChangedAction will be fed the correct frame
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 240 of file ImageEffectNode.cpp.
std::string tuttle::host::ImageEffectNode::getLabel | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 33 of file ImageEffectNode.hpp.
Referenced by print().
std::size_t tuttle::host::ImageEffectNode::getLocalHashAtTime | ( | const OfxTime | time | ) | const [virtual] |
Implements tuttle::host::INode.
Definition at line 128 of file ImageEffectNode.cpp.
References tuttle::host::ofx::OfxhPluginDesc::getHash(), tuttle::host::ofx::attribute::OfxhParamSet::getHashAtTime(), getParamSet(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getPlugin(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isFrameVarying().
const std::string& tuttle::host::ImageEffectNode::getName | ( | void | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 34 of file ImageEffectNode.hpp.
Referenced by computeTimeDomain(), debugOutputImage(), maximizeBitDepthFromReadsToWrites(), preProcess1(), progressStart(), and validBitDepthConnections().
std::size_t tuttle::host::ImageEffectNode::getNbParams | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 36 of file ImageEffectNode.hpp.
const ENodeType tuttle::host::ImageEffectNode::getNodeType | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 66 of file ImageEffectNode.hpp.
References tuttle::host::INode::eNodeTypeImageEffect.
const ofx::attribute::OfxhParam& tuttle::host::ImageEffectNode::getParam | ( | const std::string & | name | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 37 of file ImageEffectNode.hpp.
Referenced by getParam().
ofx::attribute::OfxhParam& tuttle::host::ImageEffectNode::getParam | ( | const std::string & | name | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 38 of file ImageEffectNode.hpp.
References getParam().
const ofx::attribute::OfxhParam& tuttle::host::ImageEffectNode::getParam | ( | const std::size_t | index | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 41 of file ImageEffectNode.hpp.
References getParam().
ofx::attribute::OfxhParam& tuttle::host::ImageEffectNode::getParam | ( | const std::size_t | index | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 42 of file ImageEffectNode.hpp.
References getParam().
const ofx::attribute::OfxhParam& tuttle::host::ImageEffectNode::getParamByScriptName | ( | const std::string & | name, |
const bool | acceptPartialName = false |
||
) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 39 of file ImageEffectNode.hpp.
Referenced by getParamByScriptName().
ofx::attribute::OfxhParam& tuttle::host::ImageEffectNode::getParamByScriptName | ( | const std::string & | name, |
const bool | acceptPartialName = false |
||
) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 40 of file ImageEffectNode.hpp.
References getParamByScriptName().
ofx::attribute::OfxhParamSet& tuttle::host::ImageEffectNode::getParamSet | ( | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 78 of file ImageEffectNode.hpp.
Referenced by getLocalHashAtTime().
const ofx::attribute::OfxhParamSet& tuttle::host::ImageEffectNode::getParamSet | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 79 of file ImageEffectNode.hpp.
const std::string tuttle::host::ImageEffectNode::getProjectBitDepth | ( | ) | const |
The pixel bit depth of the current project (host work in float)
Definition at line 266 of file ImageEffectNode.cpp.
References kOfxBitDepthFloat.
void tuttle::host::ImageEffectNode::getProjectExtent | ( | double & | xSize, |
double & | ySize | ||
) | const [virtual] |
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 206 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::INode::_dataAtTime, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoD, tuttle::host::INode::getLastData(), OfxRectD::x1, OfxRectD::x2, OfxRectD::y1, and OfxRectD::y2.
void tuttle::host::ImageEffectNode::getProjectOffset | ( | double & | xOffset, |
double & | yOffset | ||
) | const [virtual] |
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 199 of file ImageEffectNode.cpp.
double tuttle::host::ImageEffectNode::getProjectPixelAspectRatio | ( | void | ) | const [virtual] |
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 227 of file ImageEffectNode.cpp.
const std::string tuttle::host::ImageEffectNode::getProjectPixelComponentsType | ( | ) | const |
The pixel components type of the current project
Definition at line 257 of file ImageEffectNode.cpp.
References kOfxImageComponentRGBA.
void tuttle::host::ImageEffectNode::getProjectSize | ( | double & | xSize, |
double & | ySize | ||
) | const [virtual] |
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 178 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::INode::_dataAtTime, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoD, tuttle::host::INode::getLastData(), OfxRectD::x1, OfxRectD::x2, OfxRectD::y1, and OfxRectD::y2.
const ofx::property::OfxhSet& tuttle::host::ImageEffectNode::getProperties | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 44 of file ImageEffectNode.hpp.
Definition at line 86 of file ImageEffectNode.hpp.
References tuttle::host::INode::getData().
Referenced by tuttle::host::attribute::ClipImage::fetchRegionOfDefinition().
void tuttle::host::ImageEffectNode::getRenderScaleRecursive | ( | double & | x, |
double & | y | ||
) | const [virtual] |
This is called whenever a param is changed by the plugin so that the recursive instanceChangedAction will be fed the correct renderScale
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 248 of file ImageEffectNode.cpp.
attribute::Attribute & tuttle::host::ImageEffectNode::getSingleInputAttribute | ( | ) | [virtual] |
Implements tuttle::host::INode.
Definition at line 92 of file ImageEffectNode.cpp.
References clips, tuttle::host::ofx::attribute::OfxhClipImageSet::getClipsByName(), tuttle::host::ofx::attribute::OfxhClipImageSet::getClipsByOrder(), and kOfxSimpleSourceAttributeName.
const attribute::Attribute& tuttle::host::ImageEffectNode::getSingleInputAttribute | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 76 of file ImageEffectNode.hpp.
References getSingleInputAttribute().
Referenced by getSingleInputAttribute().
OfxRangeD tuttle::host::ImageEffectNode::getTimeDomain | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 91 of file ImageEffectNode.hpp.
References tuttle::host::graph::ProcessVertexData::_timeDomain, and tuttle::host::INode::getData().
INode::ClipTimesSetMap tuttle::host::ImageEffectNode::getTimesNeeded | ( | const OfxTime | time | ) | const [inline, virtual] |
Asks the plugin all times it needs for each of it's input clips.
[in] | time |
Implements tuttle::host::INode.
Definition at line 110 of file ImageEffectNode.hpp.
References tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getFramesNeeded().
std::vector<int> tuttle::host::ImageEffectNode::getVersion | ( | ) | const [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 47 of file ImageEffectNode.hpp.
References tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getDescriptor(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getPlugin().
void tuttle::host::ImageEffectNode::initComponents | ( | ) | [private] |
Definition at line 410 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::ofx::imageEffect::OfxhImageEffectNode::findMostChromaticComponents(), tuttle::host::ofx::attribute::OfxhClipImage::getComponentsString(), tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::INode::getOutputClip(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), tuttle::host::ofx::attribute::OfxhClipImageAccessor::isSupportedComponent(), kOfxImageComponentNone, and tuttle::host::ofx::attribute::OfxhClipImage::setComponentsStringIfNotModifiedByPlugin().
Referenced by setup1().
void tuttle::host::ImageEffectNode::initFps | ( | ) | [private] |
Definition at line 500 of file ImageEffectNode.cpp.
References tuttle::host::INode::getOutputClip(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getOutputFrameRate(), and tuttle::host::attribute::ClipImage::setFrameRate().
Referenced by setup1().
void tuttle::host::ImageEffectNode::initInputClipsFps | ( | ) | [private] |
Definition at line 485 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::attribute::ClipImage::getFrameRate(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), and tuttle::host::attribute::ClipImage::setFrameRate().
Referenced by setup1().
void tuttle::host::ImageEffectNode::initInputClipsPixelAspectRatio | ( | ) | [private] |
Definition at line 446 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::ofx::property::eModifiedByHost, tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::attribute::ClipImage::getName(), tuttle::host::ofx::attribute::OfxhClipImageSet::getNbClips(), tuttle::host::ofx::attribute::OfxhClipImage::getPixelAspectRatio(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), tuttle::host::ofx::attribute::OfxhClipImage::setPixelAspectRatio(), tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::supportsMultipleClipPARs(), TUTTLE_INFO, and TUTTLE_TLOG.
Referenced by setup1().
void tuttle::host::ImageEffectNode::initPixelAspectRatio | ( | ) | [private] |
Definition at line 506 of file ImageEffectNode.cpp.
References tuttle::host::ofx::property::eModifiedByHost, tuttle::host::INode::getOutputClip(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getOutputPixelAspectRatio(), and tuttle::host::ofx::attribute::OfxhClipImage::setPixelAspectRatio().
Referenced by setup1().
bool tuttle::host::ImageEffectNode::isIdentity | ( | const graph::ProcessVertexAtTimeData & | processData, |
std::string & | clip, | ||
OfxTime & | time | ||
) | const [virtual] |
The node can declare to be an identity operation. In this case, the node is not processed and the rendering engine direcly use the indicated input clip at a particular time.
[in] | processData | |
[out] | clip | the input clip to use as identity |
[out] | time | the time to use as identity |
Implements tuttle::host::INode.
Definition at line 818 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_field, tuttle::host::graph::ProcessVertexAtTimeData::_nodeData, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoI, tuttle::host::graph::ProcessVertexAtTimeData::_time, tuttle::host::INode::getOutputClip(), tuttle::host::ofx::attribute::OfxhClipImage::getPixelAspectRatio(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isIdentityAction(), OfxRectI::x1, OfxRectD::x1, OfxRectI::x2, OfxRectD::x2, OfxRectI::y1, OfxRectD::y1, OfxRectI::y2, and OfxRectD::y2.
void tuttle::host::ImageEffectNode::maximizeBitDepthFromReadsToWrites | ( | ) | [private] |
Definition at line 512 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::INode::asImageEffectNode(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::bestSupportedBitDepth(), tuttle::host::INode::eNodeTypeBuffer, tuttle::host::INode::eNodeTypeImageEffect, tuttle::ofx::imageEffect::findDeepestBitDepth(), tuttle::host::ofx::attribute::OfxhClipImage::getBitDepthString(), tuttle::host::attribute::ClipImage::getConnectedClip(), getName(), tuttle::host::attribute::Attribute::getNode(), tuttle::host::INode::getNodeType(), tuttle::host::INode::getOutputClip(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isSupportedBitDepth(), kOfxBitDepthNone, tuttle::host::ofx::attribute::OfxhClipImage::setBitDepthStringIfUpperAndNotModifiedByPlugin(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::supportsMultipleClipDepths().
Referenced by setup1(), and setup3().
void tuttle::host::ImageEffectNode::maximizeBitDepthFromWritesToReads | ( | ) | [private] |
Definition at line 584 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::INode::asImageEffectNode(), tuttle::host::INode::eNodeTypeImageEffect, tuttle::host::ofx::attribute::OfxhClipImage::getBitDepthString(), tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::attribute::Attribute::getNode(), tuttle::host::INode::getNodeType(), tuttle::host::INode::getOutputClip(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::isSupportedBitDepth(), tuttle::host::ofx::attribute::OfxhClipImage::setBitDepthStringIfUpper(), tuttle::host::ofx::attribute::OfxhClipImage::setBitDepthStringIfUpperAndNotModifiedByPlugin(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::supportsMultipleClipDepths().
Referenced by setup2_reverse().
tuttle::host::ofx::attribute::OfxhClipImage * tuttle::host::ImageEffectNode::newClipImage | ( | const ofx::attribute::OfxhClipImageDescriptor & | descriptor | ) | [virtual] |
make a clip
Implements tuttle::host::ofx::attribute::OfxhClipImageSet.
Definition at line 123 of file ImageEffectNode.cpp.
ofx::OfxhMemory * tuttle::host::ImageEffectNode::newMemoryInstance | ( | size_t | nBytes | ) | [virtual] |
Allocating memory using the memoryPool
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 160 of file ImageEffectNode.cpp.
References tuttle::host::ofx::OfxhMemory::alloc().
ofx::attribute::OfxhParam * tuttle::host::ImageEffectNode::newParam | ( | const ofx::attribute::OfxhParamDescriptor & | Descriptor | ) | [virtual] |
make a parameter instance
Client host code needs to implement this
Implements tuttle::host::ofx::attribute::OfxhParamSet.
Definition at line 273 of file ImageEffectNode.cpp.
References kOfxParamTypeBoolean, kOfxParamTypeChoice, kOfxParamTypeCustom, kOfxParamTypeDouble, kOfxParamTypeDouble2D, kOfxParamTypeDouble3D, kOfxParamTypeGroup, kOfxParamTypeInteger, kOfxParamTypeInteger2D, kOfxParamTypeInteger3D, kOfxParamTypePage, kOfxParamTypePushButton, kOfxParamTypeRGB, kOfxParamTypeRGBA, kOfxParamTypeString, kOfxStatErrUnknown, and tuttle::quotes().
bool tuttle::host::ImageEffectNode::operator== | ( | const INode & | other | ) | const [virtual] |
Implements tuttle::host::INode.
Definition at line 68 of file ImageEffectNode.cpp.
Referenced by operator==().
bool tuttle::host::ImageEffectNode::operator== | ( | const ImageEffectNode & | other | ) | const |
Definition at line 79 of file ImageEffectNode.cpp.
References operator==().
void tuttle::host::ImageEffectNode::postProcess | ( | graph::ProcessVertexAtTimeData & | processData | ) | [virtual] |
The process of all nodes is done for one frame, now finalize this node.
[in] | processData |
Implements tuttle::host::INode.
Definition at line 1013 of file ImageEffectNode.cpp.
void tuttle::host::ImageEffectNode::preProcess1 | ( | graph::ProcessVertexAtTimeData & | processData | ) | [virtual] |
Initialization pass to propagate informations from inputs to outputs.
[in] | processData |
<
Reimplemented from tuttle::host::INode.
Definition at line 786 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::graph::ProcessVertexAtTimeData::_nodeData, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoD, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoI, tuttle::host::graph::ProcessVertexAtTimeData::_time, getName(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getRegionOfDefinitionAction(), TUTTLE_INFO, TUTTLE_TLOG, OfxRectD::x1, OfxRectD::x2, OfxRectD::y1, and OfxRectD::y2.
void tuttle::host::ImageEffectNode::preProcess2_reverse | ( | graph::ProcessVertexAtTimeData & | processData | ) | [virtual] |
Initialization pass to propagate informations from outputs to inputs.
[in] | processData |
Reimplemented from tuttle::host::INode.
Definition at line 805 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_inputsRoI, tuttle::host::graph::ProcessVertexAtTimeData::_nodeData, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoI, tuttle::host::graph::ProcessVertexAtTimeData::_time, and tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getRegionOfInterestAction().
void tuttle::host::ImageEffectNode::preProcess_infos | ( | const graph::ProcessVertexAtTimeData & | processData, |
const OfxTime | time, | ||
graph::ProcessVertexAtTimeInfo & | nodeInfos | ||
) | const [virtual] |
Fill ProcessInfo to compute statistics for the current process, like memory used by this node, by all input nodes, etc.
[in] | processData |
Implements tuttle::host::INode.
Definition at line 833 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::graph::ProcessVertexAtTimeInfo::_memory, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoD, tuttle::host::ofx::attribute::OfxhClipImage::getBitDepth(), tuttle::host::ofx::attribute::OfxhClipImage::getNbComponents(), tuttle::host::INode::getOutputClip(), OfxRectD::x1, OfxRectD::x2, OfxRectD::y1, and OfxRectD::y2.
std::ostream & tuttle::host::ImageEffectNode::print | ( | std::ostream & | os | ) | const [virtual] |
Implements tuttle::host::INode.
Definition at line 1030 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::ofx::imageEffect::OfxhImageEffectNode::_context, tuttle::host::ofx::attribute::OfxhParamSet::_paramVector, getLabel(), and tuttle::host::ofx::imageEffect::OfxhImageEffectNodeBase::getLongLabel().
Referenced by tuttle::host::operator<<().
void tuttle::host::ImageEffectNode::process | ( | graph::ProcessVertexAtTimeData & | processData | ) | [virtual] |
Process this node. All inputs are compute.
[in] | processData |
Implements tuttle::host::INode.
Definition at line 843 of file ImageEffectNode.cpp.
References tuttle::host::graph::ProcessVertexAtTimeData::_apiImageEffect, tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_field, tuttle::host::graph::ProcessVertexAtTimeData::_inEdges, tuttle::host::graph::ProcessVertexAtTimeData::_nodeData, tuttle::host::graph::ProcessVertexAtTimeData::_outDegree, tuttle::host::graph::ProcessVertexAtTimeData::ImageEffect::_renderRoI, tuttle::host::graph::ProcessVertexAtTimeData::_time, OFX::memory::allocate(), tuttle::host::core(), debugOutputImage(), tuttle::host::attribute::Image::eImageOrientationFromBottomToTop, tuttle::host::ofx::imageEffect::OfxhImage::eReferenceOwnerHost, tuttle::host::memory::IMemoryCache::get(), getClip(), tuttle::host::attribute::ClipImage::getClipIdentifier(), tuttle::host::attribute::ClipImage::getFullName(), tuttle::host::graph::IEdge::getIn(), tuttle::host::graph::IEdge::getInAttrName(), tuttle::host::graph::IEdge::getOut(), tuttle::host::INode::getOutputClip(), tuttle::host::graph::ProcessEdgeAtTime::getOutTime(), tuttle::host::ofx::attribute::OfxhClipImage::getPixelAspectRatio(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput(), tuttle::host::memory::IMemoryCache::put(), tuttle::quotes(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::renderAction(), TUTTLE_INFO, TUTTLE_TLOG, OfxRectD::x1, OfxRectD::x2, OfxRectD::y1, and OfxRectD::y2.
void tuttle::host::ImageEffectNode::progressEnd | ( | ) | [virtual] |
finish yer progress
Implements tuttle::host::ofx::OfxhIProgress.
Definition at line 349 of file ImageEffectNode.cpp.
void tuttle::host::ImageEffectNode::progressStart | ( | const std::string & | message | ) | [virtual] |
Start doing progress.
Implements tuttle::host::ofx::OfxhIProgress.
Definition at line 341 of file ImageEffectNode.cpp.
References tuttle::common::Color::get(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getContext(), getName(), kOfxImageEffectContextReader, kOfxImageEffectContextWriter, TUTTLE_LOG_INFO, and TUTTLE_LOG_PLUGIN_NAME_WIDTH.
bool tuttle::host::ImageEffectNode::progressUpdate | ( | const double | progress | ) | [virtual] |
set the progress to some level of completion, returns true if you should abandon processing, false to continue
Implements tuttle::host::ofx::OfxhIProgress.
Definition at line 356 of file ImageEffectNode.cpp.
void tuttle::host::ImageEffectNode::setName | ( | const std::string & | name | ) | [inline, virtual] |
Implements tuttle::host::INode.
Definition at line 35 of file ImageEffectNode.hpp.
void tuttle::host::ImageEffectNode::setup1 | ( | ) | [virtual] |
Implements tuttle::host::INode.
Definition at line 746 of file ImageEffectNode.cpp.
References checkClipsConnections(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getClipPreferencesAction(), initComponents(), initFps(), initInputClipsFps(), initInputClipsPixelAspectRatio(), initPixelAspectRatio(), and maximizeBitDepthFromReadsToWrites().
void tuttle::host::ImageEffectNode::setup2_reverse | ( | ) | [virtual] |
Implements tuttle::host::INode.
Definition at line 762 of file ImageEffectNode.cpp.
References maximizeBitDepthFromWritesToReads().
void tuttle::host::ImageEffectNode::setup3 | ( | ) | [virtual] |
Implements tuttle::host::INode.
Definition at line 767 of file ImageEffectNode.cpp.
References maximizeBitDepthFromReadsToWrites(), and validBitDepthConnections().
void tuttle::host::ImageEffectNode::timelineGetBounds | ( | double & | t1, |
double & | t2 | ||
) | [virtual] |
get the first and last times available on the effect's timeline
Implements tuttle::host::ofx::OfxhITimeline.
Definition at line 379 of file ImageEffectNode.cpp.
double tuttle::host::ImageEffectNode::timelineGetTime | ( | ) | [virtual] |
get the current time on the timeline. This is not necessarily the same time as being passed to an action (eg render)
Implements tuttle::host::ofx::OfxhITimeline.
Definition at line 369 of file ImageEffectNode.cpp.
void tuttle::host::ImageEffectNode::timelineGotoTime | ( | double | t | ) | [virtual] |
set the timeline to a specific time
Implements tuttle::host::ofx::OfxhITimeline.
Definition at line 375 of file ImageEffectNode.cpp.
void tuttle::host::ImageEffectNode::validBitDepthConnections | ( | ) | const [private] |
Definition at line 656 of file ImageEffectNode.cpp.
References tuttle::host::ofx::attribute::OfxhClipImageSet::_clipImages, tuttle::host::ofx::attribute::OfxhClipImage::getBitDepth(), tuttle::host::attribute::ClipImage::getConnectedClip(), tuttle::host::attribute::ClipImage::getFullName(), getName(), tuttle::host::ofx::imageEffect::OfxhImageEffectNode::getPlugin(), tuttle::host::ofx::attribute::OfxhClipAccessor::isConnected(), and tuttle::host::ofx::attribute::OfxhAttributeAccessor::isOutput().
Referenced by setup3().
void tuttle::host::ImageEffectNode::vmessage | ( | const char * | type, |
const char * | id, | ||
const char * | format, | ||
va_list | args | ||
) | const [virtual] |
vmessage
Implements tuttle::host::ofx::imageEffect::OfxhImageEffectNode.
Definition at line 169 of file ImageEffectNode.cpp.
std::ostream& operator<< | ( | std::ostream & | os, |
const This & | v | ||
) | [friend] |
Definition at line 1055 of file ImageEffectNode.cpp.