public void Refresh(bool viewSwitched, bool rootNodeChanged) { this.sceneSwitched |= viewSwitched; this.rootNodeChanged |= rootNodeChanged; if (viewSwitched || rootNodeChanged) { this.dirtyViewState |= SceneViewModel.ViewStateBits.EntireScene; this.dirtyPipelineCalcState |= SceneViewModel.PipelineCalcBits.EntireScene; } if (this.viewModel == null || this.viewModel.Document == null || this.viewModel.XamlDocument == null) { return; } if ((int)this.viewModel.ChangeStamp != (int)this.viewStateChangeStamp) { this.viewStateChangeStamp = this.viewModel.ChangeStamp; this.dirtyViewState |= this.viewModel.DirtyState; } if ((int)this.viewModel.XamlDocument.ChangeStamp != (int)this.documentChangeStamp) { this.documentChangeStamp = this.viewModel.XamlDocument.ChangeStamp; this.documentChanges.Merge((DocumentNodeMarkerSortedListOf <DocumentNodeChange>) this.viewModel.Damage, true); this.viewModel.AnnotateDamage(this.documentChanges); } if ((int)this.viewModel.PipelineCalcChangeStamp == (int)this.pipelineCalcChangeStamp) { return; } this.pipelineCalcChangeStamp = this.viewModel.PipelineCalcChangeStamp; this.dirtyPipelineCalcState |= this.viewModel.DirtyPipelineCalcState; }
public SceneUpdatePhaseEventArgs(SceneViewModel viewModel, bool sceneSwitched, bool rootNodeChanged) { this.viewModel = viewModel; this.documentChanges = new DocumentNodeChangeList(); if (this.viewModel != null) { this.dirtyViewState = viewModel.DirtyState; this.viewStateChangeStamp = viewModel.ChangeStamp; this.documentChanges.Merge((DocumentNodeMarkerSortedListOf <DocumentNodeChange>)viewModel.Damage, false); this.documentChangeStamp = viewModel.XamlDocument.ChangeStamp; this.viewModel.AnnotateDamage(this.documentChanges); this.dirtyPipelineCalcState = viewModel.DirtyPipelineCalcState; this.pipelineCalcChangeStamp = viewModel.PipelineCalcChangeStamp; } this.sceneSwitched = sceneSwitched; this.rootNodeChanged = rootNodeChanged; if (!this.sceneSwitched && !this.rootNodeChanged) { return; } this.dirtyViewState = SceneViewModel.ViewStateBits.EntireScene; this.dirtyPipelineCalcState = SceneViewModel.PipelineCalcBits.EntireScene; }
public bool IsDirtyPipelineCalcState(SceneViewModel.PipelineCalcBits bits) { return((this.dirtyPipelineCalcState & bits) != SceneViewModel.PipelineCalcBits.None); }