Blender
V2.93
source
blender
depsgraph
intern
node
deg_node_factory.cc
Go to the documentation of this file.
1
/*
2
* This program is free software; you can redistribute it and/or
3
* modify it under the terms of the GNU General Public License
4
* as published by the Free Software Foundation; either version 2
5
* of the License, or (at your option) any later version.
6
*
7
* This program is distributed in the hope that it will be useful,
8
* but WITHOUT ANY WARRANTY; without even the implied warranty of
9
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
* GNU General Public License for more details.
11
*
12
* You should have received a copy of the GNU General Public License
13
* along with this program; if not, write to the Free Software Foundation,
14
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15
*
16
* The Original Code is Copyright (C) 2019 Blender Foundation.
17
* All rights reserved.
18
*/
19
24
#include "
intern/node/deg_node_factory.h
"
25
26
namespace
blender::deg
{
27
28
/* Global type registry */
29
static
DepsNodeFactory
*
node_typeinfo_registry
[
static_cast<
int
>
(
NodeType::NUM_TYPES
)] = {
nullptr
};
30
31
void
register_node_typeinfo
(
DepsNodeFactory
*factory)
32
{
33
BLI_assert
(factory !=
nullptr
);
34
const
int
type_as_int =
static_cast<
int
>
(factory->
type
());
35
node_typeinfo_registry
[type_as_int] = factory;
36
}
37
38
DepsNodeFactory
*
type_get_factory
(
const
NodeType
type
)
39
{
40
/* Look up type - at worst, it doesn't exist in table yet, and we fail. */
41
const
int
type_as_int =
static_cast<
int
>
(
type
);
42
return
node_typeinfo_registry
[type_as_int];
43
}
44
45
}
// namespace blender::deg
BLI_assert
#define BLI_assert(a)
Definition:
BLI_assert.h:58
type
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Definition:
GPU_legacy_stubs.h:167
deg_node_factory.h
blender::deg
Definition:
deg_builder.cc:53
blender::deg::register_node_typeinfo
void register_node_typeinfo(DepsNodeFactory *factory)
Definition:
deg_node_factory.cc:31
blender::deg::NodeType::NUM_TYPES
@ NUM_TYPES
blender::deg::type_get_factory
DepsNodeFactory * type_get_factory(const NodeType type)
Definition:
deg_node_factory.cc:38
blender::deg::node_typeinfo_registry
static DepsNodeFactory * node_typeinfo_registry[static_cast< int >(NodeType::NUM_TYPES)]
Definition:
deg_node_factory.cc:29
NodeType
Definition:
node_type.h:106
blender::deg::DepsNodeFactory
Definition:
deg_node_factory.h:36
blender::deg::DepsNodeFactory::type
virtual NodeType type() const =0
Generated on Tue Jan 31 2023 14:37:24 for Blender by
doxygen
1.9.1