Previously, node types had a callback that creates internal links. Pretty much all nodes used the same callback though. The exceptions are the reroute node (which probably shouldn't be mutable anyway) and some input/output nodes that are not mutable. Removing the callback helps with D13246, because it makes it easier to reason about which internal links are created and when they change. In the future, the internal links should be part of the node declaration.
56 lines
1.7 KiB
C++
56 lines
1.7 KiB
C++
/*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* The Original Code is Copyright (C) 2006 Blender Foundation.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
/** \file
|
|
* \ingroup nodes
|
|
*/
|
|
|
|
#include "node_composite_util.hh"
|
|
|
|
bool cmp_node_poll_default(bNodeType *UNUSED(ntype),
|
|
bNodeTree *ntree,
|
|
const char **r_disabled_hint)
|
|
{
|
|
if (!STREQ(ntree->idname, "CompositorNodeTree")) {
|
|
*r_disabled_hint = "Not a compositor node tree";
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
void cmp_node_update_default(bNodeTree *UNUSED(ntree), bNode *node)
|
|
{
|
|
LISTBASE_FOREACH (bNodeSocket *, sock, &node->outputs) {
|
|
if (sock->cache) {
|
|
// free_compbuf(sock->cache);
|
|
// sock->cache = nullptr;
|
|
}
|
|
}
|
|
node->need_exec = 1;
|
|
}
|
|
|
|
void cmp_node_type_base(bNodeType *ntype, int type, const char *name, short nclass, short flag)
|
|
{
|
|
node_type_base(ntype, type, name, nclass, flag);
|
|
|
|
ntype->poll = cmp_node_poll_default;
|
|
ntype->updatefunc = cmp_node_update_default;
|
|
ntype->insert_link = node_insert_link_default;
|
|
}
|