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:
Diffstat (limited to 'source/blender/compositor/intern/COM_NodeOperation.cc')
-rw-r--r--source/blender/compositor/intern/COM_NodeOperation.cc40
1 files changed, 14 insertions, 26 deletions
diff --git a/source/blender/compositor/intern/COM_NodeOperation.cc b/source/blender/compositor/intern/COM_NodeOperation.cc
index 195073545ec..e68c53bd7b2 100644
--- a/source/blender/compositor/intern/COM_NodeOperation.cc
+++ b/source/blender/compositor/intern/COM_NodeOperation.cc
@@ -39,38 +39,24 @@ NodeOperation::NodeOperation()
this->m_btree = nullptr;
}
-NodeOperation::~NodeOperation()
+NodeOperationOutput *NodeOperation::getOutputSocket(unsigned int index)
{
- while (!this->m_outputs.is_empty()) {
- delete (this->m_outputs.pop_last());
- }
- while (!this->m_inputs.is_empty()) {
- delete (this->m_inputs.pop_last());
- }
-}
-
-NodeOperationOutput *NodeOperation::getOutputSocket(unsigned int index) const
-{
- BLI_assert(index < m_outputs.size());
- return m_outputs[index];
+ return &m_outputs[index];
}
-NodeOperationInput *NodeOperation::getInputSocket(unsigned int index) const
+NodeOperationInput *NodeOperation::getInputSocket(unsigned int index)
{
- BLI_assert(index < m_inputs.size());
- return m_inputs[index];
+ return &m_inputs[index];
}
void NodeOperation::addInputSocket(DataType datatype, ResizeMode resize_mode)
{
- NodeOperationInput *socket = new NodeOperationInput(this, datatype, resize_mode);
- m_inputs.append(socket);
+ m_inputs.append(NodeOperationInput(this, datatype, resize_mode));
}
void NodeOperation::addOutputSocket(DataType datatype)
{
- NodeOperationOutput *socket = new NodeOperationOutput(this, datatype);
- m_outputs.append(socket);
+ m_outputs.append(NodeOperationOutput(this, datatype));
}
void NodeOperation::determineResolution(unsigned int resolution[2],
@@ -79,11 +65,12 @@ void NodeOperation::determineResolution(unsigned int resolution[2],
unsigned int temp[2];
unsigned int temp2[2];
+ // TODO(jbakker): Replace for loops with direct array access.
for (unsigned int index = 0; index < m_inputs.size(); index++) {
- NodeOperationInput *input = m_inputs[index];
- if (input->isConnected()) {
+ NodeOperationInput &input = m_inputs[index];
+ if (input.isConnected()) {
if (index == this->m_resolutionInputSocketIndex) {
- input->determineResolution(resolution, preferredResolution);
+ input.determineResolution(resolution, preferredResolution);
temp2[0] = resolution[0];
temp2[1] = resolution[1];
break;
@@ -91,14 +78,15 @@ void NodeOperation::determineResolution(unsigned int resolution[2],
}
}
for (unsigned int index = 0; index < m_inputs.size(); index++) {
- NodeOperationInput *input = m_inputs[index];
- if (input->isConnected()) {
+ NodeOperationInput &input = m_inputs[index];
+ if (input.isConnected()) {
if (index != this->m_resolutionInputSocketIndex) {
- input->determineResolution(temp, temp2);
+ input.determineResolution(temp, temp2);
}
}
}
}
+
void NodeOperation::setResolutionInputSocketIndex(unsigned int index)
{
this->m_resolutionInputSocketIndex = index;