static public void FillBuffer(CommandBuffer buffer) { // Update all highlighters for (int i = sHighlighters.Count - 1; i >= 0; i--) { var highlighter = sHighlighters[i]; // Cleanup null highlighters for extra safety if (highlighter == null) { sHighlighters.RemoveAt(i); continue; } // Update mode and color highlighter.UpdateHighlighting(); // Cleanup again in case Highlighter has been destroyed in UpdateHighlighting() call if (highlighter == null) { sHighlighters.RemoveAt(i); continue; } // Update Renderer's if dirty highlighter.UpdateRenderers(); } // Fill CommandBuffer with highlighters rendering commands for (int i = 0; i < renderingOrder.Length; i++) { HighlighterMode renderMode = renderingOrder[i]; for (int j = sHighlighters.Count - 1; j >= 0; j--) { var highlighter = sHighlighters[j]; if (highlighter.mode == renderMode) { highlighter.FillBufferInternal(buffer); } } } }
/// <summary> /// Show control and hilighter /// </summary> public void ShowControl() { this.Visibility = Visibility.Visible; this.prevHighlighterState = HollowHighlightDriver.GetDefaultInstance().IsEnabled; this.prevMode = HollowHighlightDriver.GetDefaultInstance().HighlighterMode; HollowHighlightDriver.GetDefaultInstance().HighlighterMode = HighlighterMode.Highlighter; MainWin.SetHighlightBtnState(true); HollowHighlightDriver.GetDefaultInstance().IsEnabled = true; HollowHighlightDriver.GetDefaultInstance().Clear(); SelectAction.GetDefaultInstance().ClearSelectedContext(); Dispatcher.InvokeAsync(() => { this.SetFocusOnDefaultControl(); } , System.Windows.Threading.DispatcherPriority.Input); ctrlContrast.SetAutoCCAState(true); }