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 'intern/cycles/graph/node_type.h')
-rw-r--r--intern/cycles/graph/node_type.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/intern/cycles/graph/node_type.h b/intern/cycles/graph/node_type.h
index a79d44b82f3..3b9b3007099 100644
--- a/intern/cycles/graph/node_type.h
+++ b/intern/cycles/graph/node_type.h
@@ -28,6 +28,8 @@ CCL_NAMESPACE_BEGIN
struct Node;
struct NodeType;
+typedef uint64_t SocketModifiedFlags;
+
/* Socket Type */
struct SocketType {
@@ -88,6 +90,7 @@ struct SocketType {
const NodeType **node_type;
int flags;
ustring ui_name;
+ SocketModifiedFlags modified_flag_bit;
size_t size() const;
bool is_array() const;
@@ -162,12 +165,12 @@ struct NodeType {
/* Sock Definition Macros */
-#define SOCKET_OFFSETOF(T, name) (((char *)&(((T *)1)->name)) - (char *)1)
-#define SOCKET_SIZEOF(T, name) (sizeof(((T *)1)->name))
+#define SOCKET_OFFSETOF(T, name) offsetof(T, name)
+#define SOCKET_SIZEOF(T, name) (sizeof(T::name))
#define SOCKET_DEFINE(name, ui_name, default_value, datatype, TYPE, flags, ...) \
{ \
static datatype defval = default_value; \
- CHECK_TYPE(((T *)1)->name, datatype); \
+ CHECK_TYPE(T::name, datatype); \
type->register_input(ustring(#name), \
ustring(ui_name), \
TYPE, \
@@ -264,8 +267,8 @@ struct NodeType {
##__VA_ARGS__)
#define SOCKET_NODE_ARRAY(name, ui_name, node_type, ...) \
{ \
- static Node *defval = NULL; \
- assert(SOCKET_SIZEOF(T, name) == sizeof(Node *)); \
+ static array<Node *> defval = {}; \
+ assert(SOCKET_SIZEOF(T, name) == sizeof(array<Node *>)); \
type->register_input(ustring(#name), \
ustring(ui_name), \
SocketType::NODE_ARRAY, \