diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-03-19 11:46:32 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-03-19 11:46:32 +0400 |
commit | dc3ce6db6a7e6a5dc53ece60bc0486b28c7de749 (patch) | |
tree | 12315bd516437e69b8ddd3189a9940d6d81f7daf /source/blender/compositor/nodes | |
parent | 460d21af6f31881a3c1f74da75a2196fe7deadfe (diff) |
Added alpha output to movie clip compositor node
Pretty much straightforward change, made in the same way as
texture input node.
Shall not be any regressions or crashes when mixing usage
of 2.66 and current trunk.
Diffstat (limited to 'source/blender/compositor/nodes')
-rw-r--r-- | source/blender/compositor/nodes/COM_MovieClipNode.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/source/blender/compositor/nodes/COM_MovieClipNode.cpp b/source/blender/compositor/nodes/COM_MovieClipNode.cpp index 5d5e68fba37..10dd72ec7bf 100644 --- a/source/blender/compositor/nodes/COM_MovieClipNode.cpp +++ b/source/blender/compositor/nodes/COM_MovieClipNode.cpp @@ -41,10 +41,11 @@ MovieClipNode::MovieClipNode(bNode *editorNode) : Node(editorNode) void MovieClipNode::convertToOperations(ExecutionSystem *graph, CompositorContext *context) { OutputSocket *outputMovieClip = this->getOutputSocket(0); - OutputSocket *offsetXMovieClip = this->getOutputSocket(1); - OutputSocket *offsetYMovieClip = this->getOutputSocket(2); - OutputSocket *scaleMovieClip = this->getOutputSocket(3); - OutputSocket *angleMovieClip = this->getOutputSocket(4); + OutputSocket *alphaMovieClip = this->getOutputSocket(1); + OutputSocket *offsetXMovieClip = this->getOutputSocket(2); + OutputSocket *offsetYMovieClip = this->getOutputSocket(3); + OutputSocket *scaleMovieClip = this->getOutputSocket(4); + OutputSocket *angleMovieClip = this->getOutputSocket(5); bNode *editorNode = this->getbNode(); MovieClip *movieClip = (MovieClip *)editorNode->id; @@ -73,6 +74,16 @@ void MovieClipNode::convertToOperations(ExecutionSystem *graph, CompositorContex operation->setCacheFrame(cacheFrame); graph->addOperation(operation); + if (alphaMovieClip->isConnected()) { + MovieClipAlphaOperation *alphaOperation = new MovieClipAlphaOperation(); + alphaOperation->setMovieClip(movieClip); + alphaOperation->setMovieClipUser(movieClipUser); + alphaOperation->setFramenumber(context->getFramenumber()); + alphaOperation->setCacheFrame(cacheFrame); + alphaMovieClip->relinkConnections(alphaOperation->getOutputSocket()); + graph->addOperation(alphaOperation); + } + MovieTrackingStabilization *stab = &movieClip->tracking.stabilization; float loc[2], scale, angle; loc[0] = 0.0f; @@ -87,7 +98,7 @@ void MovieClipNode::convertToOperations(ExecutionSystem *graph, CompositorContex BKE_tracking_stabilization_data_get(&movieClip->tracking, clip_framenr, ibuf->x, ibuf->y, loc, &scale, &angle); } } - + if (offsetXMovieClip->isConnected()) { SetValueOperation *operationSetValue = new SetValueOperation(); operationSetValue->setValue(loc[0]); |