Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/compositor/intern/COM_NodeOperation.cpp29
-rw-r--r--source/blender/compositor/operations/COM_CombineChannelsOperation.cpp26
-rw-r--r--source/blender/compositor/operations/COM_CombineChannelsOperation.h2
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