public override void OnVersionChanged(VisualElement ve, VersionChangeType versionChangeType) { bool flag = (versionChangeType & (VersionChangeType.Hierarchy | VersionChangeType.Overflow | VersionChangeType.BorderWidth | VersionChangeType.Transform | VersionChangeType.Size)) == (VersionChangeType)0; if (!flag) { bool flag2 = (versionChangeType & VersionChangeType.Transform) > (VersionChangeType)0; bool flag3 = (versionChangeType & (VersionChangeType.Overflow | VersionChangeType.BorderWidth | VersionChangeType.Transform | VersionChangeType.Size)) > (VersionChangeType)0; flag2 = (flag2 && !ve.isWorldTransformDirty); flag3 = (flag3 && !ve.isWorldClipDirty); bool flag4 = flag2 | flag3; if (flag4) { VisualTreeTransformClipUpdater.DirtyHierarchy(ve, flag2, flag3); } VisualTreeTransformClipUpdater.DirtyBoundingBoxHierarchy(ve); this.m_Version += 1u; } }
private static void DirtyHierarchy(VisualElement ve, bool mustDirtyWorldTransform, bool mustDirtyWorldClip) { if (mustDirtyWorldTransform) { ve.isWorldTransformDirty = true; ve.isWorldBoundingBoxDirty = true; } if (mustDirtyWorldClip) { ve.isWorldClipDirty = true; } int childCount = ve.hierarchy.childCount; for (int i = 0; i < childCount; i++) { VisualElement visualElement = ve.hierarchy[i]; bool flag = (mustDirtyWorldTransform && !visualElement.isWorldTransformDirty) || (mustDirtyWorldClip && !visualElement.isWorldClipDirty); if (flag) { VisualTreeTransformClipUpdater.DirtyHierarchy(visualElement, mustDirtyWorldTransform, mustDirtyWorldClip); } } }