diff options
3 files changed, 18 insertions, 39 deletions
diff --git a/source/blender/compositor/intern/COM_NodeOperation.cpp b/source/blender/compositor/intern/COM_NodeOperation.cpp index bae884d713e..4ae114bd031 100644 --- a/source/blender/compositor/intern/COM_NodeOperation.cpp +++ b/source/blender/compositor/intern/COM_NodeOperation.cpp @@ -124,19 +124,26 @@ bool NodeOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOper return false; } else { - unsigned int index; - vector<InputSocket *> &inputsockets = this->getInputSockets(); - - for (index = 0; index < inputsockets.size(); index++) { - InputSocket *inputsocket = inputsockets[index]; - if (inputsocket->isConnected()) { - NodeOperation *inputoperation = (NodeOperation *)inputsocket->getConnection()->getFromNode(); - bool result = inputoperation->determineDependingAreaOfInterest(input, readOperation, output); - if (result) { - return true; + rcti tempOutput; + bool first = true; + for (int i = 0 ; i < getNumberOfInputSockets() ; i ++) { + NodeOperation * inputOperation = this->getInputOperation(i); + if (inputOperation && inputOperation->determineDependingAreaOfInterest(input, readOperation, &tempOutput)) { + if (first) { + output->xmin = tempOutput.xmin; + output->ymin = tempOutput.ymin; + output->xmax = tempOutput.xmax; + output->ymax = tempOutput.ymax; + first = false; + } + else { + output->xmin = MIN2(output->xmin, tempOutput.xmin); + output->ymin = MIN2(output->ymin, tempOutput.ymin); + output->xmax = MAX2(output->xmax, tempOutput.xmax); + output->ymax = MAX2(output->ymax, tempOutput.ymax); } } } - return false; + return !first; } } diff --git a/source/blender/compositor/operations/COM_CombineChannelsOperation.cpp b/source/blender/compositor/operations/COM_CombineChannelsOperation.cpp index ded686bb5de..3ced0548bb8 100644 --- a/source/blender/compositor/operations/COM_CombineChannelsOperation.cpp +++ b/source/blender/compositor/operations/COM_CombineChannelsOperation.cpp @@ -37,31 +37,6 @@ CombineChannelsOperation::CombineChannelsOperation() : NodeOperation() this->m_inputChannel4Operation = NULL; } -bool CombineChannelsOperation::determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output) -{ - rcti tempOutput; - bool first = true; - for (int i = 0 ; i < 4 ; i ++) { - NodeOperation * inputOperation = this->getInputOperation(i); - if (inputOperation->determineDependingAreaOfInterest(input, readOperation, &tempOutput)) { - if (first) { - output->xmin = tempOutput.xmin; - output->ymin = tempOutput.ymin; - output->xmax = tempOutput.xmax; - output->ymax = tempOutput.ymax; - first = false; - } - else { - output->xmin = MIN2(output->xmin, tempOutput.xmin); - output->ymin = MIN2(output->ymin, tempOutput.ymin); - output->xmax = MAX2(output->xmax, tempOutput.xmax); - output->ymax = MAX2(output->ymax, tempOutput.ymax); - } - } - } - return !first; -} - void CombineChannelsOperation::initExecution() { this->m_inputChannel1Operation = this->getInputSocketReader(0); @@ -82,7 +57,6 @@ void CombineChannelsOperation::deinitExecution() void CombineChannelsOperation::executePixel(float output[4], float x, float y, PixelSampler sampler) { float input[4]; - /// @todo: remove if statements if (this->m_inputChannel1Operation) { this->m_inputChannel1Operation->read(input, x, y, sampler); output[0] = input[0]; diff --git a/source/blender/compositor/operations/COM_CombineChannelsOperation.h b/source/blender/compositor/operations/COM_CombineChannelsOperation.h index 460eb9bdcb1..7c8742b1557 100644 --- a/source/blender/compositor/operations/COM_CombineChannelsOperation.h +++ b/source/blender/compositor/operations/COM_CombineChannelsOperation.h @@ -37,8 +37,6 @@ public: void initExecution(); void deinitExecution(); - - bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output); }; #endif |