diff options
Diffstat (limited to 'source/blender/depsgraph/intern/depsgraph_types.h')
-rw-r--r-- | source/blender/depsgraph/intern/depsgraph_types.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/depsgraph_types.h b/source/blender/depsgraph/intern/depsgraph_types.h index b2dbe5d2a62..3f4df21b8d6 100644 --- a/source/blender/depsgraph/intern/depsgraph_types.h +++ b/source/blender/depsgraph/intern/depsgraph_types.h @@ -53,8 +53,10 @@ struct FCurve; namespace DEG { +/* TODO(sergey): Find a better place for this. */ using std::string; using std::vector; +using std::max; /* Evaluation Operation for atomic operation */ // XXX: move this to another header that can be exposed? @@ -79,6 +81,18 @@ typedef enum eDepsNode_Class { DEG_NODE_CLASS_OPERATION = 2, } eDepsNode_Class; +/* Note: We use max comparison to mark an id node that is linked more than once + * So keep this enum ordered accordingly. + */ +typedef enum eDepsNode_LinkedState_Type { + /* Generic indirectly linked id node. */ + DEG_ID_LINKED_INDIRECTLY = 0, + /* Id node present in the set (background) only. */ + DEG_ID_LINKED_VIA_SET = 1, + /* Id node directly linked via the ScenLayer. */ + DEG_ID_LINKED_DIRECTLY = 2, +} eDepsNode_LinkedState_Type; + /* Types of Nodes */ typedef enum eDepsNode_Type { /* Fallback type for invalid return value */ @@ -111,6 +125,14 @@ typedef enum eDepsNode_Type { DEG_NODE_TYPE_GEOMETRY, /* Sequencer Component (Scene Only) */ DEG_NODE_TYPE_SEQUENCER, + /* Component which contains all operations needed for layer collections + * evaluation. + */ + DEG_NODE_TYPE_LAYER_COLLECTIONS, + /* Entry component of majority of ID nodes: prepares CoW pointers for + * execution. + */ + DEG_NODE_TYPE_COPY_ON_WRITE, /* **** Evaluation-Related Outer Types (with Subdata) **** */ @@ -122,8 +144,11 @@ typedef enum eDepsNode_Type { DEG_NODE_TYPE_EVAL_PARTICLES, /* Material Shading Component */ DEG_NODE_TYPE_SHADING, + DEG_NODE_TYPE_SHADING_PARAMETERS, /* Cache Component */ DEG_NODE_TYPE_CACHE, + /* Batch Cache Component */ + DEG_NODE_TYPE_BATCH_CACHE, /* Total number of meaningful node types. */ NUM_DEG_NODE_TYPES, @@ -148,6 +173,9 @@ typedef enum eDepsOperation_Code { /* Driver */ DEG_OPCODE_DRIVER, + /* Object related. --------------------------------- */ + DEG_OPCODE_OBJECT_BASE_FLAGS, + /* Transform. -------------------------------------- */ /* Transform entry point - local transforms only */ DEG_OPCODE_TRANSFORM_LOCAL, @@ -209,9 +237,27 @@ typedef enum eDepsOperation_Code { /* Particle System evaluation. */ DEG_OPCODE_PARTICLE_SYSTEM_EVAL_INIT, DEG_OPCODE_PARTICLE_SYSTEM_EVAL, + DEG_OPCODE_PARTICLE_SETTINGS_EVAL, + DEG_OPCODE_PARTICLE_SETTINGS_RECALC_CLEAR, + + /* Point Cache. ------------------------------------- */ + DEG_OPCODE_POINT_CACHE_RESET, + + /* Collections. ------------------------------------- */ + DEG_OPCODE_VIEW_LAYER_INIT, + DEG_OPCODE_VIEW_LAYER_EVAL, + DEG_OPCODE_VIEW_LAYER_DONE, + + /* Copy on Write. ------------------------------------ */ + DEG_OPCODE_COPY_ON_WRITE, /* Shading. ------------------------------------------- */ DEG_OPCODE_SHADING, + DEG_OPCODE_MATERIAL_UPDATE, + DEG_OPCODE_WORLD_UPDATE, + + /* Batch caches. -------------------------------------- */ + DEG_OPCODE_GEOMETRY_SELECT_UPDATE, /* Masks. ------------------------------------------ */ DEG_OPCODE_MASK_ANIMATION, |