void BuildColorPropertyField(ColorShaderProperty property)
        {
            var colorField = new ColorField {
                value = property.value, showEyeDropper = false, hdr = property.colorMode == ColorMode.HDR
            };

            colorField.RegisterValueChangedCallback(evt =>
            {
                graph.owner.RegisterCompleteObjectUndo("Change property value");
                property.value = evt.newValue;
                DirtyNodes();
            });
            AddRow("Default", colorField);

            if (!graph.isSubGraph)
            {
                var colorModeField = new EnumField((Enum)property.colorMode);
                colorModeField.RegisterValueChangedCallback(evt =>
                {
                    graph.owner.RegisterCompleteObjectUndo("Change Color Mode");
                    if (property.colorMode == (ColorMode)evt.newValue)
                    {
                        return;
                    }
                    property.colorMode = (ColorMode)evt.newValue;
                    colorField.hdr     = property.colorMode == ColorMode.HDR;
                    colorField.MarkDirtyRepaint();
                    DirtyNodes();
                });
                AddRow("Mode", colorModeField);
            }
        }
Exemplo n.º 2
0
        void HandleColorProperty(PropertySheet propertySheet, ColorShaderProperty colorProperty)
        {
            var colorPropertyDrawer = new ColorPropertyDrawer();

            propertySheet.Add(colorPropertyDrawer.CreateGUI(
                                  newValue =>
            {
                this._preChangeValueCallback("Change property value");
                this._changeValueCallback(newValue);
                this._postChangeValueCallback();
            },
                                  colorProperty.value,
                                  "Default",
                                  out var propertyColorField));

            var colorField = (ColorField)propertyColorField;

            colorField.hdr = colorProperty.colorMode == ColorMode.HDR;

            if (!isSubGraph)
            {
                var enumPropertyDrawer = new EnumPropertyDrawer();

                propertySheet.Add(enumPropertyDrawer.CreateGUI(
                                      newValue =>
                {
                    this._preChangeValueCallback("Change Color Mode");
                    colorProperty.colorMode = (ColorMode)newValue;
                    this._postChangeValueCallback(true, ModificationScope.Graph);
                },
                                      colorProperty.colorMode,
                                      "Mode",
                                      ColorMode.Default,
                                      out var colorModeField));
            }
        }
Exemplo n.º 3
0
        static public ShaderInput GetShaderInput(BlackboardShaderInputOrder order)
        {
            ShaderInput output;

            if (order.isKeyword)
            {
                if (order.builtInKeyword == null)
                {
                    output = new ShaderKeyword(order.keywordType);
                }
                else
                {
                    output = order.builtInKeyword;
                }
            }
            else if (order.isDropdown)
            {
                output = new ShaderDropdown();
            }
            else
            {
                switch (order.deprecatedPropertyName)
                {
                case "Color":
                    output = new ColorShaderProperty(order.version);
                    break;

                default:
                    output = null;
                    AssertHelpers.Fail("BlackboardShaderInputFactory: Unknown deprecated property type.");
                    break;
                }
            }

            return(output);
        }