[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53815] trunk/blender/source/blender: Code cleanup: remove some remaining code from the old compositor.
Brecht Van Lommel
brechtvanlommel at pandora.be
Tue Jan 15 13:16:46 CET 2013
Revision: 53815
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53815
Author: blendix
Date: 2013-01-15 12:16:44 +0000 (Tue, 15 Jan 2013)
Log Message:
-----------
Code cleanup: remove some remaining code from the old compositor.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_node.h
trunk/blender/source/blender/blenkernel/intern/node.c
trunk/blender/source/blender/nodes/composite/node_composite_tree.c
trunk/blender/source/blender/nodes/composite/nodes/node_composite_common.c
trunk/blender/source/blender/nodes/intern/node_exec.c
trunk/blender/source/blender/nodes/intern/node_exec.h
Modified: trunk/blender/source/blender/blenkernel/BKE_node.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_node.h 2013-01-15 12:16:27 UTC (rev 53814)
+++ trunk/blender/source/blender/blenkernel/BKE_node.h 2013-01-15 12:16:44 UTC (rev 53815)
@@ -737,8 +737,6 @@
/* API */
struct CompBuf;
-struct bNodeTreeExec *ntreeCompositBeginExecTree(struct bNodeTree *ntree, int use_tree_data);
-void ntreeCompositEndExecTree(struct bNodeTreeExec *exec, int use_tree_data);
void ntreeCompositExecTree(struct bNodeTree *ntree, struct RenderData *rd, int rendering, int do_previews,
const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings);
void ntreeCompositTagRender(struct Scene *sce);
Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c 2013-01-15 12:16:27 UTC (rev 53814)
+++ trunk/blender/source/blender/blenkernel/intern/node.c 2013-01-15 12:16:44 UTC (rev 53815)
@@ -1035,9 +1035,6 @@
*/
if (ntree->execdata) {
switch (ntree->type) {
- case NTREE_COMPOSIT:
- ntreeCompositEndExecTree(ntree->execdata, 1);
- break;
case NTREE_SHADER:
ntreeShaderEndExecTree(ntree->execdata, 1);
break;
Modified: trunk/blender/source/blender/nodes/composite/node_composite_tree.c
===================================================================
--- trunk/blender/source/blender/nodes/composite/node_composite_tree.c 2013-01-15 12:16:27 UTC (rev 53814)
+++ trunk/blender/source/blender/nodes/composite/node_composite_tree.c 2013-01-15 12:16:44 UTC (rev 53815)
@@ -51,7 +51,6 @@
#include "BKE_tracking.h"
#include "node_common.h"
-#include "node_exec.h"
#include "node_util.h"
#include "PIL_time.h"
@@ -268,92 +267,6 @@
};
-/* XXX Group nodes must set use_tree_data to false, since their trees can be shared by multiple nodes.
- * If use_tree_data is true, the ntree->execdata pointer is checked to avoid multiple execution of top-level trees.
- */
-struct bNodeTreeExec *ntreeCompositBeginExecTree(bNodeTree *ntree, int use_tree_data)
-{
- bNodeTreeExec *exec;
- bNode *node;
- bNodeSocket *sock;
-
- if (use_tree_data) {
- /* XXX hack: prevent exec data from being generated twice.
- * this should be handled by the renderer!
- */
- if (ntree->execdata)
- return ntree->execdata;
- }
-
- /* ensures only a single output node is enabled */
- ntreeSetOutput(ntree);
-
- exec = ntree_exec_begin(ntree);
-
- for (node= exec->nodetree->nodes.first; node; node= node->next) {
- /* initialize needed for groups */
- node->exec= 0;
-
- for (sock= node->outputs.first; sock; sock= sock->next) {
- bNodeStack *ns= node_get_socket_stack(exec->stack, sock);
- if (ns && sock->cache) {
- ns->data= sock->cache;
- sock->cache= NULL;
- }
- }
- /* cannot initialize them while using in threads */
- if (ELEM4(node->type, CMP_NODE_TIME, CMP_NODE_CURVE_VEC, CMP_NODE_CURVE_RGB, CMP_NODE_HUECORRECT)) {
- curvemapping_initialize(node->storage);
- if (node->type==CMP_NODE_CURVE_RGB)
- curvemapping_premultiply(node->storage, 0);
- }
- }
-
- if (use_tree_data) {
- /* XXX this should not be necessary, but is still used for cmp/sha/tex nodes,
- * which only store the ntree pointer. Should be fixed at some point!
- */
- ntree->execdata = exec;
- }
-
- return exec;
-}
-
-/* XXX Group nodes must set use_tree_data to false, since their trees can be shared by multiple nodes.
- * If use_tree_data is true, the ntree->execdata pointer is checked to avoid multiple execution of top-level trees.
- */
-void ntreeCompositEndExecTree(bNodeTreeExec *exec, int use_tree_data)
-{
- if (exec) {
- bNodeTree *ntree= exec->nodetree;
- bNode *node;
- bNodeStack *ns;
-
- for (node= exec->nodetree->nodes.first; node; node= node->next) {
- bNodeSocket *sock;
-
- for (sock= node->outputs.first; sock; sock= sock->next) {
- ns = node_get_socket_stack(exec->stack, sock);
- if (ns && ns->data) {
- sock->cache= ns->data;
- ns->data= NULL;
- }
- }
- if (node->type==CMP_NODE_CURVE_RGB)
- curvemapping_premultiply(node->storage, 1);
-
- node->need_exec= 0;
- }
-
- ntree_exec_end(exec);
-
- if (use_tree_data) {
- /* XXX clear nodetree backpointer to exec data, same problem as noted in ntreeBeginExecTree */
- ntree->execdata = NULL;
- }
- }
-}
-
void *COM_linker_hack = NULL;
void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int rendering, int do_preview,
Modified: trunk/blender/source/blender/nodes/composite/nodes/node_composite_common.c
===================================================================
--- trunk/blender/source/blender/nodes/composite/nodes/node_composite_common.c 2013-01-15 12:16:27 UTC (rev 53814)
+++ trunk/blender/source/blender/nodes/composite/nodes/node_composite_common.c 2013-01-15 12:16:44 UTC (rev 53815)
@@ -38,179 +38,6 @@
#include "node_common.h"
#include "node_exec.h"
-#if 0
-static void PRINT_BUFFERS(bNodeTreeExec *exec)
-{
- bNodeTree *ntree= exec->nodetree;
- bNode *node;
- bNodeSocket *sock;
- bNodeStack *ns;
- int i;
-
- printf("-------------- DEBUG --------------\n");
- for (sock=ntree->inputs.first, i=0; sock; sock=sock->next, ++i) {
- ns = node_get_socket_stack(exec->stack, sock);
- printf("%d. Tree Input %s", i, sock->name);
- if (ns->external)
- printf(" (external)");
- printf(": data=%p\n", ns->data);
- }
- for (sock=ntree->outputs.first, i=0; sock; sock=sock->next, ++i) {
- ns = node_get_socket_stack(exec->stack, sock);
- printf("%d. Tree Output %s", i, sock->name);
- if (ns->external)
- printf(" (external)");
- printf(": data=%p\n", ns->data);
- }
- for (node=ntree->nodes.first; node; node=node->next) {
- printf("Node %s:\n", node->name);
- for (sock=node->inputs.first, i=0; sock; sock=sock->next, ++i) {
- ns = node_get_socket_stack(exec->stack, sock);
- printf("\t%d. Input %s", i, sock->name);
- if (ns->external)
- printf(" (external)");
- printf(": data=%p\n", ns->data);
- }
- for (sock=node->outputs.first, i=0; sock; sock=sock->next, ++i) {
- ns = node_get_socket_stack(exec->stack, sock);
- printf("\t%d. Output %s", i, sock->name);
- if (ns->external)
- printf(" (external)");
- printf(": data=%p\n", ns->data);
- }
- }
-}
-#endif
-
-static void copy_stack(bNodeStack *to, bNodeStack *from)
-{
- if (to != from) {
- copy_v4_v4(to->vec, from->vec);
- to->data = from->data;
- to->datatype = from->datatype;
-
- /* tag as copy to prevent freeing */
- to->is_copy = 1;
- }
-}
-
-static void move_stack(bNodeStack *to, bNodeStack *from)
-{
- if (to != from) {
- copy_v4_v4(to->vec, from->vec);
- to->data = from->data;
- to->datatype = from->datatype;
- to->is_copy = from->is_copy;
-
- zero_v4(from->vec);
- from->data = NULL;
- from->datatype = 0;
- from->is_copy = 0;
- }
-}
-
-/**** GROUP ****/
-
-static void *group_initexec(bNode *node)
-{
- bNodeTree *ngroup = (bNodeTree *)node->id;
- bNodeTreeExec *exec;
- bNodeSocket *sock;
- bNodeStack *ns;
-
- if (!ngroup)
- return NULL;
-
- /* initialize the internal node tree execution */
- exec = ntreeCompositBeginExecTree(ngroup, 0);
-
- /* tag group outputs as external to prevent freeing */
- for (sock = ngroup->outputs.first; sock; sock = sock->next) {
- if (!(sock->flag & SOCK_INTERNAL)) {
- ns = node_get_socket_stack(exec->stack, sock);
- ns->external = 1;
- }
- }
-
- return exec;
-}
-
-static void group_freeexec(bNode *UNUSED(node), void *nodedata)
-{
- bNodeTreeExec *gexec = (bNodeTreeExec *)nodedata;
-
- if (gexec)
- ntreeCompositEndExecTree(gexec, 0);
-}
-
-/* Copy inputs to the internal stack.
- * This is a shallow copy, no buffers are duplicated here!
- */
-static void group_copy_inputs(bNode *node, bNodeStack **in, bNodeStack *gstack)
-{
- bNodeSocket *sock;
- bNodeStack *ns;
- int a;
- for (sock=node->inputs.first, a=0; sock; sock=sock->next, ++a) {
- if (sock->groupsock) {
- ns = node_get_socket_stack(gstack, sock->groupsock);
- copy_stack(ns, in[a]);
- }
- }
-}
-
-/* Copy internal results to the external outputs.
- */
-static void group_move_outputs(bNode *node, bNodeStack **out, bNodeStack *gstack)
-{
- bNodeSocket *sock;
- bNodeStack *ns;
- int a;
- for (sock = node->outputs.first, a = 0; sock; sock = sock->next, ++a) {
- if (sock->groupsock) {
- ns = node_get_socket_stack(gstack, sock->groupsock);
- move_stack(out[a], ns);
- }
- }
-}
-
-/* Free internal buffers */
-static void group_free_internal(bNodeTreeExec *gexec)
-{
- bNodeStack *ns;
- int i;
-
- for (i = 0, ns = gexec->stack; i < gexec->stacksize; ++i, ++ns) {
- if (!ns->external && !ns->is_copy) {
- if (ns->data) {
- ns->data = NULL;
- }
- }
- }
-}
-
-static void group_execute(void *data, int thread, struct bNode *node, void *nodedata, struct bNodeStack **in, struct bNodeStack **out)
-{
- bNodeTreeExec *exec= (bNodeTreeExec *)nodedata;
-
- if (!exec)
- return;
-
- /* XXX same behavior as trunk: all nodes inside group are executed.
- * it's stupid, but just makes it work. compo redesign will do this better.
- */
- {
- bNode *inode;
- for (inode=exec->nodetree->nodes.first; inode; inode=inode->next)
- inode->need_exec = 1;
- }
-
- group_copy_inputs(node, in, exec->stack);
- ntreeExecNodes(exec, data, thread);
- group_free_internal(exec);
- group_move_outputs(node, out, exec->stack);
-}
-
void register_node_type_cmp_group(bNodeTreeType *ttype)
{
static bNodeType ntype;
@@ -224,7 +51,7 @@
node_type_template(&ntype, node_group_template);
node_type_update(&ntype, NULL, node_group_verify);
node_type_group_edit(&ntype, node_group_edit_get, node_group_edit_set, node_group_edit_clear);
- node_type_exec_new(&ntype, group_initexec, group_freeexec, group_execute);
nodeRegisterType(ttype, &ntype);
}
+
Modified: trunk/blender/source/blender/nodes/intern/node_exec.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/node_exec.c 2013-01-15 12:16:27 UTC (rev 53814)
+++ trunk/blender/source/blender/nodes/intern/node_exec.c 2013-01-15 12:16:44 UTC (rev 53815)
@@ -258,7 +258,7 @@
MEM_freeN(exec);
}
-/**** Compositor/Material/Texture trees ****/
+/**** Material/Texture trees ****/
bNodeThreadStack *ntreeGetThreadStack(bNodeTreeExec *exec, int thread)
{
@@ -287,32 +287,6 @@
nts->used = 0;
}
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list