Esempio n. 1
0
        public override void Enable(bool fromInspector)
        {
            base.Enable(fromInspector);

            var node = nodeTarget as RandomColorNode;

            var h = new MinMaxSlider("H", node.minHue, node.maxHue, 0.0f, 1.0f);
            var s = new MinMaxSlider("S", node.minSat, node.maxSat, 0.0f, 1.0f);
            var v = new MinMaxSlider("V", node.minValue, node.maxValue, 0.0f, 1.0f);

            h.RegisterValueChangedCallback(e => {
                owner.RegisterCompleteObjectUndo("Updated Hue " + e.newValue);
                node.minHue = e.newValue.x;
                node.maxHue = e.newValue.y;
                NotifyNodeChanged();
            });

            s.RegisterValueChangedCallback(e => {
                owner.RegisterCompleteObjectUndo("Updated Saturation " + e.newValue);
                node.minSat = e.newValue.x;
                node.maxSat = e.newValue.y;
                NotifyNodeChanged();
            });

            v.RegisterValueChangedCallback(e => {
                owner.RegisterCompleteObjectUndo("Updated Value " + e.newValue);
                node.minValue = e.newValue.x;
                node.maxValue = e.newValue.y;
                NotifyNodeChanged();
            });

            controlsContainer.Add(h);
            controlsContainer.Add(s);
            controlsContainer.Add(v);
        }
Esempio n. 2
0
        public VFXMinMaxSliderField()
        {
            AddToClassList("sliderMinMaxField");
            m_Slider = new MinMaxSlider(1, 10, 0, 100);

            m_Slider.RegisterValueChangedCallback(evt => ValueChanged(evt.newValue));
            m_IndeterminateLabel = new Label()
            {
                name = "indeterminate",
                text = VFXControlConstants.indeterminateText
            };
            m_IndeterminateLabel.SetEnabled(false);
            m_Slider.RegisterValueChangedCallback(ValueChanged);

            Add(m_Slider);
            RegisterCallBack();
        }
Esempio n. 3
0
        public override void Enable(bool fromInspector)
        {
            levelsNode = nodeTarget as Levels;

            base.Enable(fromInspector);

            var slider = new MinMaxSlider("Luminance", levelsNode.min, levelsNode.max, 0, 1);

            sliders.Add(slider);
            slider.RegisterValueChangedCallback(e => {
                owner.RegisterCompleteObjectUndo("Changed Luminance remap");
                levelsNode.min = e.newValue.x;
                levelsNode.max = e.newValue.y;
                foreach (var s in sliders)
                {
                    if (s != null && s.parent != null)
                    {
                        s.SetValueWithoutNotify(e.newValue);
                    }
                }
                NotifyNodeChanged();
            });
            controlsContainer.Add(slider);

            var mode = this.Q <EnumField>();

            mode.RegisterValueChangedCallback((m) => {
                UpdateMinMaxSliderVisibility((Levels.Mode)m.newValue);
            });
            UpdateMinMaxSliderVisibility(levelsNode.mode);

            // Compute histogram only when the inspector is selected
            if (fromInspector)
            {
                owner.graph.afterCommandBufferExecuted += UpdateHistogram;
                controlsContainer.RegisterCallback <DetachFromPanelEvent>(e => {
                    owner.graph.afterCommandBufferExecuted -= UpdateHistogram;
                });
            }

            void UpdateHistogram()
            {
                if (levelsNode.output != null)
                {
                    var cmd = CommandBufferPool.Get("Update Histogram");
                    HistogramUtility.ComputeHistogram(cmd, levelsNode.output, levelsNode.histogramData);
                    Graphics.ExecuteCommandBuffer(cmd);
                }
            }

            UpdateHistogram();

            void UpdateMinMaxSliderVisibility(Levels.Mode mode)
            {
                if (mode == Levels.Mode.Automatic)
                {
                    slider.style.display = DisplayStyle.None;
                }
                else
                {
                    slider.style.display = DisplayStyle.Flex;
                }
            }

            if (fromInspector)
            {
                var histogram = new HistogramView(levelsNode.histogramData, owner);
                controlsContainer.Add(histogram);
            }
        }