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:
authorJeroen Bakker <j.bakker@atmind.nl>2012-07-04 16:30:17 +0400
committerJeroen Bakker <j.bakker@atmind.nl>2012-07-04 16:30:17 +0400
commit7cde835c2e15d39692bd6715e8d3acaffe3a5c92 (patch)
tree0a8b8695b309ba5be3e7f6963d2379234f4a0f65
parent4d2a6a8e21031702f1ca6fdd1130af73362dcb91 (diff)
relay the original node to a different place holder to resolve some
crashes.
-rw-r--r--source/blender/compositor/nodes/COM_BilateralBlurNode.cpp1
-rw-r--r--source/blender/compositor/operations/COM_WriteBufferOperation.cpp8
-rw-r--r--source/blender/makesdna/DNA_node_types.h1
-rw-r--r--source/blender/nodes/composite/node_composite_tree.c4
4 files changed, 7 insertions, 7 deletions
diff --git a/source/blender/compositor/nodes/COM_BilateralBlurNode.cpp b/source/blender/compositor/nodes/COM_BilateralBlurNode.cpp
index f96a92068f4..683093302c1 100644
--- a/source/blender/compositor/nodes/COM_BilateralBlurNode.cpp
+++ b/source/blender/compositor/nodes/COM_BilateralBlurNode.cpp
@@ -35,6 +35,7 @@ void BilateralBlurNode::convertToOperations(ExecutionSystem *graph, CompositorCo
{
NodeBilateralBlurData *data = (NodeBilateralBlurData *)this->getbNode()->storage;
BilateralBlurOperation *operation = new BilateralBlurOperation();
+ operation->setbNode(this->getbNode());
operation->setQuality(context->getQuality());
operation->setData(data);
this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, graph);
diff --git a/source/blender/compositor/operations/COM_WriteBufferOperation.cpp b/source/blender/compositor/operations/COM_WriteBufferOperation.cpp
index b23c1a02b9f..b8c7478b2f7 100644
--- a/source/blender/compositor/operations/COM_WriteBufferOperation.cpp
+++ b/source/blender/compositor/operations/COM_WriteBufferOperation.cpp
@@ -64,7 +64,7 @@ void WriteBufferOperation::executeRegion(rcti *rect, unsigned int tileNumber, Me
float *buffer = memoryBuffer->getBuffer();
if (this->m_input->isComplex()) {
bNode* bnode = this->m_input->getbNode();
-// if (bnode&& bnode->new_node) bnode->new_node->highlight++;
+ if (bnode&& bnode->original) bnode->original->highlight++;
void *data = this->m_input->initializeTileData(rect, memoryBuffers);
int x1 = rect->xmin;
@@ -90,7 +90,7 @@ void WriteBufferOperation::executeRegion(rcti *rect, unsigned int tileNumber, Me
this->m_input->deinitializeTileData(rect, memoryBuffers, data);
data = NULL;
}
-// if (bnode&& bnode->new_node) bnode->new_node->highlight++;
+ if (bnode&& bnode->original) bnode->original->highlight++;
}
else {
int x1 = rect->xmin;
@@ -144,7 +144,7 @@ void WriteBufferOperation::executeOpenCLRegion(OpenCLDevice* device, rcti *rect,
clMemToCleanUp->push_back(clOutputBuffer);
list<cl_kernel> *clKernelsToCleanUp = new list<cl_kernel>();
bNode* bnode = this->m_input->getbNode();
-// if (bnode&& bnode->new_node) bnode->new_node->highlight++;
+ if (bnode&& bnode->original) bnode->original->highlight++;
this->m_input->executeOpenCL(device, outputBuffer, clOutputBuffer, inputMemoryBuffers, clMemToCleanUp, clKernelsToCleanUp);
@@ -163,7 +163,7 @@ void WriteBufferOperation::executeOpenCLRegion(OpenCLDevice* device, rcti *rect,
this->getMemoryProxy()->getBuffer()->copyContentFrom(outputBuffer);
-// if (bnode&& bnode->new_node) bnode->new_node->highlight++;
+ if (bnode&& bnode->original) bnode->original->highlight++;
// STEP 4
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index 21cf142d1cd..e4b5a264ba3 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -166,6 +166,7 @@ typedef struct bNode {
struct bNode *parent; /* parent node */
struct ID *id; /* optional link to libdata */
void *storage; /* custom data, must be struct, for storage in file */
+ struct bNode *original; /* the original node in the tree (for localized tree) */
float locx, locy; /* root offset for drawing */
float width, height; /* node custom width and height */
diff --git a/source/blender/nodes/composite/node_composite_tree.c b/source/blender/nodes/composite/node_composite_tree.c
index 58357bdd59d..b9acf821efe 100644
--- a/source/blender/nodes/composite/node_composite_tree.c
+++ b/source/blender/nodes/composite/node_composite_tree.c
@@ -132,6 +132,7 @@ static void localize(bNodeTree *localtree, bNodeTree *ntree)
for (node= ntree->nodes.first; node; node= node->next) {
/* ensure new user input gets handled ok */
node->need_exec= 0;
+ node->new_node->original = node;
/* move over the compbufs */
/* right after ntreeCopyTree() oldsock pointers are valid */
@@ -191,8 +192,6 @@ static void local_sync(bNodeTree *localtree, bNodeTree *ntree)
/* move over the compbufs and previews */
for (lnode= localtree->nodes.first; lnode; lnode= lnode->next) {
- lnode->new_node->new_node = lnode;
- lnode->highlight = 0;
if ( (lnode->exec & NODE_READY) && !(lnode->exec & NODE_SKIPPED) ) {
if (ntreeNodeExists(ntree, lnode->new_node)) {
@@ -214,7 +213,6 @@ static void local_merge(bNodeTree *localtree, bNodeTree *ntree)
/* move over the compbufs and previews */
for (lnode= localtree->nodes.first; lnode; lnode= lnode->next) {
- lnode->highlight = 0;
if (ntreeNodeExists(ntree, lnode->new_node)) {
if (ELEM(lnode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
if (lnode->id && (lnode->flag & NODE_DO_OUTPUT)) {