public PaintController(ModelsEx models) { this.models = models; this.gpuTimer = new AdvancedGpuTimer(); viewMode = new ViewModeController(models); // model events models.Display.PropertyChanged += DisplayOnPropertyChanged; models.Window.PropertyChanged += WindowOnPropertyChanged; models.Overlay.PropertyChanged += OverlayOnPropertyChanged; // client mouse events models.Window.Window.BorderHost.PreviewMouseMove += (sender, e) => ScheduleRedraw(); models.Window.Window.BorderHost.PreviewMouseWheel += (sender, e) => ScheduleRedraw(); foreach (var pipe in models.Pipelines) { pipe.PropertyChanged += PipeOnPropertyChanged; } models.Window.Window.Loaded += WindowOnLoaded; // clear color var col = models.Window.ThemeColor; clearColor.R = col.Red; clearColor.G = col.Green; clearColor.B = col.Blue; clearColor.A = 1.0f; }