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"),
                });
            }
        }
Ejemplo n.º 3
0
 public ShaderGroup(string name, ShaderGroupType shaderGroupType)
 {
     Name            = name;
     ShaderGroupType = shaderGroupType;
 }