private void RaiseLoaded() { if (_notification.Content == null) { _isInEditMode = false; AcceptButtonText = "New"; } else { _isInEditMode = true; _originalGroupType = _notification.ShaderGroup.ShaderGroupType; _originalHasHullDomain = _notification.ShaderGroup.HasHullDomainShader; _originalHasGeometry = _notification.ShaderGroup.HasGeometryShader; AcceptButtonText = "Edit"; } _notification.ShaderGroup.PropertyChanged += new PropertyChangedEventHandler(OnResourcePropertyChanged); _notification.ShaderGroup.PropertyChanged += new PropertyChangedEventHandler(CheckTopologyOptions); UndoRedoSystem.CustomStack = new UndoRedoStack(); // Properties are being set by ShaderEditorPageViewModel // So refresh them RaisePropertyChanged("Name"); RaisePropertyChanged("Description"); RaisePropertyChanged("Topology"); RaisePropertyChanged("CullMode"); RaisePropertyChanged("FillMode"); RaisePropertyChanged("HasHullDomainShader"); RaisePropertyChanged("HasGeometryShader"); _isLoaded = true; }
private void RaiseShaderTypeSelectionChanged(SelectionChangedEventArgs e) { if (!_isLoaded || e.AddedItems.Count == 0) { return; } ShaderGroupType groupType = ((Tuple <ShaderGroupType, string>)e.AddedItems[0]).Item1; if (groupType == ShaderGroupType.PostProcessing) { SetValueMulti(_notification.ShaderGroup, new Tuple <object, string>[] { new Tuple <object, string>(false, "HasHullDomainShader"), new Tuple <object, string>(false, "HasGeometryShader"), new Tuple <object, string>(groupType, "ShaderGroupType"), }); } else { SetValueMulti(_notification.ShaderGroup, new Tuple <object, string>[] { new Tuple <object, string>(HasHullDomainShader, "HasHullDomainShader"), new Tuple <object, string>(HasGeometryShader, "HasGeometryShader"), new Tuple <object, string>(groupType, "ShaderGroupType"), }); } }
public ShaderGroup(string name, ShaderGroupType shaderGroupType) { Name = name; ShaderGroupType = shaderGroupType; }