[Bf-blender-cvs] [42c53e054f1] master: Cleanup: Attempt to clarify some ID_RECALC flags

Sergey Sharybin noreply at git.blender.org
Fri Feb 15 10:56:52 CET 2019


Commit: 42c53e054f17f98a74785ba20969e1e277b892b0
Author: Sergey Sharybin
Date:   Thu Feb 14 12:17:29 2019 +0100
Branches: master
https://developer.blender.org/rB42c53e054f17f98a74785ba20969e1e277b892b0

Cleanup: Attempt to clarify some ID_RECALC flags

===================================================================

M	source/blender/makesdna/DNA_ID.h

===================================================================

diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h
index d5669bb04ed..919c7187d1b 100644
--- a/source/blender/makesdna/DNA_ID.h
+++ b/source/blender/makesdna/DNA_ID.h
@@ -530,9 +530,10 @@ enum {
 typedef enum IDRecalcFlag {
 	/* Individual update tags, this is what ID gets tagged for update with. */
 
-	/* Object transformation changed. */
+	/* ** Object transformation changed. ** */
 	ID_RECALC_TRANSFORM   = (1 << 0),
-	/* Object geometry changed.
+
+	/* ** Object geometry changed. **
 	 *
 	 * When object of armature type gets tagged with this flag, it's pose is
 	 * re-evaluated.
@@ -541,18 +542,30 @@ typedef enum IDRecalcFlag {
 	 * When object data type (mesh, curve, ...) gets tagged with this flag it
 	 * makes all objects which shares this datablock to be updated. */
 	ID_RECALC_GEOMETRY    = (1 << 1),
-	/* Animation or time changed and animation is to be re-evaluated. */
+
+	/* ** Animation or time changed and animation is to be re-evaluated. ** */
 	ID_RECALC_ANIMATION   = (1 << 2),
-	/* Particle system changed; values are aligned with ID_RECALC_PSYS_xxx. */
-	ID_RECALC_PSYS_REDO   = (1 << 3),  /* Only do pathcache etc */
-	ID_RECALC_PSYS_RESET  = (1 << 4),  /* Reset everything including pointcache. */
-	ID_RECALC_PSYS_CHILD  = (1 << 5),  /* Only child settings changed. */
-	ID_RECALC_PSYS_PHYS   = (1 << 6),  /* Physics type changed. */
-	/* Update copy on write component without flushing down the road. */
-	ID_RECALC_COPY_ON_WRITE = (1 << 7),
-	/* Tag shading components for update. Only parameters of material changed).
-	 */
-	ID_RECALC_SHADING       = (1 << 8),
+
+	/* ** Particle system changed. ** */
+	/* Only do pathcache etc. */
+	ID_RECALC_PSYS_REDO   = (1 << 3),
+	/* Reset everything including pointcache. */
+	ID_RECALC_PSYS_RESET  = (1 << 4),
+	/* Only child settings changed. */
+	ID_RECALC_PSYS_CHILD  = (1 << 5),
+	/* Physics type changed. */
+	ID_RECALC_PSYS_PHYS   = (1 << 6),
+
+	/* ** Material and shading ** */
+
+	/* For materials and node trees this means that topology of the shader tree
+	 * changed, and the shader is to be recompiled.
+	 * For objects it means that the draw batch cache is to be redone. */
+	ID_RECALC_SHADING             = (1 << 7),
+	/* TODO(sergey): Consider adding an explicit ID_RECALC_SHADING_PARAMATERS
+	 * which can be used for cases when only socket value changed, to speed up
+	 * redraw update in that case. */
+
 	/* Selection of the ID itself or its components (for example, vertices) did
 	 * change, and all the drawing data is to eb updated. */
 	ID_RECALC_SELECT        = (1 << 9),
@@ -567,6 +580,12 @@ typedef enum IDRecalcFlag {
 	 * re-rendered. */
 	ID_RECALC_EDITORS       = (1 << 12),
 
+	/* ** Update copy on write component. **
+	 * This is most generic tag which should only be used when nothing else
+	 * matches.
+	 */
+	ID_RECALC_COPY_ON_WRITE = (1 << 13),
+
 	/* Aggregate flags, use only for checks on runtime.
 	 * Do NOT use those for tagging. */



More information about the Bf-blender-cvs mailing list