Fix for [#32536] Mixing with translated images in compositor produces
garbage strips for each tile Promoted the behaviour of combine channels to node operation so that all nodes use the same implementation. (CombineChannel had a better implementation)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user