Fixed despill on keying node not using input socket for screen color properly

This commit is contained in:
Sergey Sharybin
2012-06-12 16:57:11 +00:00
parent 331d7e5691
commit c2f97f9171
2 changed files with 6 additions and 4 deletions

View File

@@ -119,14 +119,14 @@ OutputSocket *KeyingNode::setupDilateErode(ExecutionSystem *graph, OutputSocket
return dilateErodeOperation->getOutputSocket(0);
}
OutputSocket *KeyingNode::setupDespill(ExecutionSystem *graph, OutputSocket *despillInput, InputSocket *inputScreen, float factor)
OutputSocket *KeyingNode::setupDespill(ExecutionSystem *graph, OutputSocket *despillInput, OutputSocket *inputScreen, float factor)
{
KeyingDespillOperation *despillOperation = new KeyingDespillOperation();
despillOperation->setDespillFactor(factor);
addLink(graph, despillInput, despillOperation->getInputSocket(0));
inputScreen->relinkConnections(despillOperation->getInputSocket(1), 1, graph);
addLink(graph, inputScreen, despillOperation->getInputSocket(1));
graph->addOperation(despillOperation);
@@ -213,7 +213,9 @@ void KeyingNode::convertToOperations(ExecutionSystem *graph, CompositorContext *
/* despill output image */
if (keying_data->despill_factor > 0.0f) {
postprocessedImage = setupDespill(graph, postprocessedImage, inputScreen, keying_data->despill_factor);
postprocessedImage = setupDespill(graph, postprocessedImage,
keyingOperation->getInputSocket(0)->getConnection()->getFromSocket(),
keying_data->despill_factor);
}
/* connect result to output sockets */

View File

@@ -32,7 +32,7 @@ protected:
OutputSocket *setupPreBlur(ExecutionSystem *graph, InputSocket *inputImage, int size, OutputSocket **originalImage);
OutputSocket *setupPostBlur(ExecutionSystem *graph, OutputSocket *postBLurInput, int size);
OutputSocket *setupDilateErode(ExecutionSystem *graph, OutputSocket *dilateErodeInput, int distance);
OutputSocket *setupDespill(ExecutionSystem *graph, OutputSocket *despillInput, InputSocket *inputSrceen, float factor);
OutputSocket *setupDespill(ExecutionSystem *graph, OutputSocket *despillInput, OutputSocket *inputSrceen, float factor);
OutputSocket *setupClip(ExecutionSystem *graph, OutputSocket *clipInput, int kernelRadius, float kernelTolerance,
float clipBlack, float clipWhite, bool edgeMatte);
public: