public void StartTracking(List <VisualElement> elements) { if (!enable) { return; } // Some panels like the main Toolbar don't have any tracking set up if (panel.contextType == ContextType.Editor && m_EditorVisualTreeAssetTracker == null) { return; } VisualTreeAsset currentAsset = null; ILiveReloadAssetTracker <VisualTreeAsset> tracker = null; foreach (var ve in elements) { if (ve.visualTreeAssetSource != null) { if (ve.visualTreeAssetSource != currentAsset) { currentAsset = ve.visualTreeAssetSource; tracker = FindTracker(ve); } StartVisualTreeAssetTracking(tracker, ve.visualTreeAssetSource); } if (ve.styleSheetList?.Count > 0) { foreach (var styleSheet in ve.styleSheetList) { m_LiveReloadStyleSheetAssetTracker.StartTrackingAsset(styleSheet); } } } }
private void StartVisualTreeAssetTracking(ILiveReloadAssetTracker <VisualTreeAsset> tracker, VisualTreeAsset asset) { int dirtyCount = tracker.StartTrackingAsset(asset); if (!m_AssetToTrackerMap.TryGetValue(asset, out var trackers)) { trackers = new VisualTreeAssetToTrackMappingEntry() { m_LastDirtyCount = dirtyCount, m_Trackers = new HashSet <ILiveReloadAssetTracker <VisualTreeAsset> >() }; m_AssetToTrackerMap[asset] = trackers; } trackers.m_Trackers.Add(tracker); }
internal void StartVisualTreeAssetTracking(ILiveReloadAssetTracker <VisualTreeAsset> tracker, VisualElement visualElementUsingAsset) { tracker.StartTrackingAsset(visualElementUsingAsset.m_VisualTreeAssetSource); if (m_TrackerToVisualElementMap.TryGetValue(tracker, out var visualElements)) { visualElements.Add(visualElementUsingAsset); } else { visualElements = new HashSet <VisualElement>(); m_TrackerToVisualElementMap[tracker] = visualElements; m_LiveReloadVisualTreeAssetTrackers.Add(tracker); } }
private void StartVisualTreeAssetTracking(ILiveReloadAssetTracker <VisualTreeAsset> tracker, VisualTreeAsset asset) { int dirtyCount = tracker.StartTrackingAsset(asset); if (!m_AssetToTrackerMap.TryGetValue(asset, out var trackers)) { trackers = new VisualTreeAssetToTrackMappingEntry() { m_LastDirtyCount = dirtyCount, m_LastElementCount = asset.visualElementAssets.Count, m_LastInlinePropertiesCount = asset.inlineSheet.rules.Sum(r => r.properties.Length), m_LastAttributePropertiesDirtyCount = asset.GetAttributePropertiesDirtyCount(), m_Trackers = new HashSet <ILiveReloadAssetTracker <VisualTreeAsset> >() }; m_AssetToTrackerMap[asset] = trackers; } trackers.m_Trackers.Add(tracker); }