/// <summary> /// Constructs a new set of GUI elements for inspecting the tone mapping settings object. /// </summary> /// <param name="settings">Initial values to assign to the GUI elements.</param> /// <param name="layout">Layout to append the GUI elements to.</param> public TonemappingSettingsGUI(TonemappingSettings settings, GUILayout layout) { this.settings = settings; shoulderStrengthField.OnChanged += x => { this.settings.FilmicCurveShoulderStrength = x; MarkAsModified(); }; shoulderStrengthField.OnFocusLost += ConfirmModify; shoulderStrengthField.OnConfirmed += ConfirmModify; linearStrengthField.OnChanged += x => { this.settings.FilmicCurveLinearStrength = x; MarkAsModified(); }; linearStrengthField.OnFocusLost += ConfirmModify; linearStrengthField.OnConfirmed += ConfirmModify; linearAngleField.OnChanged += x => { this.settings.FilmicCurveLinearAngle = x; MarkAsModified(); }; linearAngleField.OnFocusLost += ConfirmModify; linearAngleField.OnConfirmed += ConfirmModify; toeStrengthField.OnChanged += x => { this.settings.FilmicCurveToeStrength = x; MarkAsModified(); }; toeStrengthField.OnFocusLost += ConfirmModify; toeStrengthField.OnConfirmed += ConfirmModify; toeNumeratorField.OnChanged += x => { this.settings.FilmicCurveToeNumerator = x; MarkAsModified(); }; toeNumeratorField.OnFocusLost += ConfirmModify; toeNumeratorField.OnConfirmed += ConfirmModify; toeDenominatorField.OnChanged += x => { this.settings.FilmicCurveToeDenominator = x; MarkAsModified(); }; toeDenominatorField.OnFocusLost += ConfirmModify; toeDenominatorField.OnConfirmed += ConfirmModify; whitePointField.OnChanged += x => { this.settings.FilmicCurveLinearWhitePoint = x; MarkAsModified(); }; whitePointField.OnFocusLost += ConfirmModify; whitePointField.OnConfirmed += ConfirmModify; layout.AddElement(shoulderStrengthField); layout.AddElement(linearStrengthField); layout.AddElement(linearAngleField); layout.AddElement(toeStrengthField); layout.AddElement(toeNumeratorField); layout.AddElement(toeDenominatorField); layout.AddElement(whitePointField); }
public override void OnEnable() { // Tonemapping settings m_Tonemapping = new TonemappingSettings { tonemapper = FindSetting((Settings x) => x.tonemapping.tonemapper), neutralBlackIn = FindSetting((Settings x) => x.tonemapping.neutralBlackIn), neutralWhiteIn = FindSetting((Settings x) => x.tonemapping.neutralWhiteIn), neutralBlackOut = FindSetting((Settings x) => x.tonemapping.neutralBlackOut), neutralWhiteOut = FindSetting((Settings x) => x.tonemapping.neutralWhiteOut), neutralWhiteLevel = FindSetting((Settings x) => x.tonemapping.neutralWhiteLevel), neutralWhiteClip = FindSetting((Settings x) => x.tonemapping.neutralWhiteClip) }; // Basic settings m_Basic = new BasicSettings { exposure = FindSetting((Settings x) => x.basic.postExposure), temperature = FindSetting((Settings x) => x.basic.temperature), tint = FindSetting((Settings x) => x.basic.tint), hueShift = FindSetting((Settings x) => x.basic.hueShift), saturation = FindSetting((Settings x) => x.basic.saturation), contrast = FindSetting((Settings x) => x.basic.contrast) }; // Channel mixer m_ChannelMixer = new ChannelMixerSettings { channels = new[] { FindSetting((Settings x) => x.channelMixer.red), FindSetting((Settings x) => x.channelMixer.green), FindSetting((Settings x) => x.channelMixer.blue) }, currentEditingChannel = FindSetting((Settings x) => x.channelMixer.currentEditingChannel) }; // Color wheels m_ColorWheels = new ColorWheelsSettings { mode = FindSetting((Settings x) => x.colorWheels.mode), log = FindSetting((Settings x) => x.colorWheels.log), linear = FindSetting((Settings x) => x.colorWheels.linear) }; // Curves m_Curves = new CurvesSettings { master = FindSetting((Settings x) => x.curves.master.curve), red = FindSetting((Settings x) => x.curves.red.curve), green = FindSetting((Settings x) => x.curves.green.curve), blue = FindSetting((Settings x) => x.curves.blue.curve), hueVShue = FindSetting((Settings x) => x.curves.hueVShue.curve), hueVSsat = FindSetting((Settings x) => x.curves.hueVSsat.curve), satVSsat = FindSetting((Settings x) => x.curves.satVSsat.curve), lumVSsat = FindSetting((Settings x) => x.curves.lumVSsat.curve), currentEditingCurve = FindSetting((Settings x) => x.curves.e_CurrentEditingCurve), curveY = FindSetting((Settings x) => x.curves.e_CurveY), curveR = FindSetting((Settings x) => x.curves.e_CurveR), curveG = FindSetting((Settings x) => x.curves.e_CurveG), curveB = FindSetting((Settings x) => x.curves.e_CurveB) }; // Prepare the curve editor and extract curve display settings m_CurveDict = new Dictionary <SerializedProperty, Color>(); var settings = CurveEditor.Settings.defaultSettings; m_CurveEditor = new CurveEditor(settings); AddCurve(m_Curves.master, new Color(1f, 1f, 1f), 2, false); AddCurve(m_Curves.red, new Color(1f, 0f, 0f), 2, false); AddCurve(m_Curves.green, new Color(0f, 1f, 0f), 2, false); AddCurve(m_Curves.blue, new Color(0f, 0.5f, 1f), 2, false); AddCurve(m_Curves.hueVShue, new Color(1f, 1f, 1f), 0, true); AddCurve(m_Curves.hueVSsat, new Color(1f, 1f, 1f), 0, true); AddCurve(m_Curves.satVSsat, new Color(1f, 1f, 1f), 0, false); AddCurve(m_Curves.lumVSsat, new Color(1f, 1f, 1f), 0, false); }
private static extern void Internal_settonemapping(IntPtr thisPtr, TonemappingSettings value);
public override void OnEnable() { // Tonemapping settings m_Tonemapping = new TonemappingSettings { tonemapper = FindSetting((Settings x) => x.tonemapping.tonemapper), neutralBlackIn = FindSetting((Settings x) => x.tonemapping.neutralBlackIn), neutralWhiteIn = FindSetting((Settings x) => x.tonemapping.neutralWhiteIn), neutralBlackOut = FindSetting((Settings x) => x.tonemapping.neutralBlackOut), neutralWhiteOut = FindSetting((Settings x) => x.tonemapping.neutralWhiteOut), neutralWhiteLevel = FindSetting((Settings x) => x.tonemapping.neutralWhiteLevel), neutralWhiteClip = FindSetting((Settings x) => x.tonemapping.neutralWhiteClip) }; // Basic settings m_Basic = new BasicSettings { exposure = FindSetting((Settings x) => x.basic.postExposure), temperature = FindSetting((Settings x) => x.basic.temperature), tint = FindSetting((Settings x) => x.basic.tint), hueShift = FindSetting((Settings x) => x.basic.hueShift), saturation = FindSetting((Settings x) => x.basic.saturation), contrast = FindSetting((Settings x) => x.basic.contrast) }; // Channel mixer m_ChannelMixer = new ChannelMixerSettings { channels = new[] { FindSetting((Settings x) => x.channelMixer.red), FindSetting((Settings x) => x.channelMixer.green), FindSetting((Settings x) => x.channelMixer.blue) }, currentEditingChannel = FindSetting((Settings x) => x.channelMixer.currentEditingChannel) }; // Color wheels m_ColorWheels = new ColorWheelsSettings { mode = FindSetting((Settings x) => x.colorWheels.mode), log = FindSetting((Settings x) => x.colorWheels.log), linear = FindSetting((Settings x) => x.colorWheels.linear) }; // Curves m_Curves = new CurvesSettings { master = FindSetting((Settings x) => x.curves.master.curve), red = FindSetting((Settings x) => x.curves.red.curve), green = FindSetting((Settings x) => x.curves.green.curve), blue = FindSetting((Settings x) => x.curves.blue.curve), hueVShue = FindSetting((Settings x) => x.curves.hueVShue.curve), hueVSsat = FindSetting((Settings x) => x.curves.hueVSsat.curve), satVSsat = FindSetting((Settings x) => x.curves.satVSsat.curve), lumVSsat = FindSetting((Settings x) => x.curves.lumVSsat.curve), currentEditingCurve = FindSetting((Settings x) => x.curves.e_CurrentEditingCurve), curveY = FindSetting((Settings x) => x.curves.e_CurveY), curveR = FindSetting((Settings x) => x.curves.e_CurveR), curveG = FindSetting((Settings x) => x.curves.e_CurveG), curveB = FindSetting((Settings x) => x.curves.e_CurveB) }; // Prepare the curve editor and extract curve display settings m_CurveDict = new Dictionary<SerializedProperty, Color>(); var settings = CurveEditor.Settings.defaultSettings; m_CurveEditor = new CurveEditor(settings); AddCurve(m_Curves.master, new Color(1f, 1f, 1f), 2, false); AddCurve(m_Curves.red, new Color(1f, 0f, 0f), 2, false); AddCurve(m_Curves.green, new Color(0f, 1f, 0f), 2, false); AddCurve(m_Curves.blue, new Color(0f, 0.5f, 1f), 2, false); AddCurve(m_Curves.hueVShue, new Color(1f, 1f, 1f), 0, true); AddCurve(m_Curves.hueVSsat, new Color(1f, 1f, 1f), 0, true); AddCurve(m_Curves.satVSsat, new Color(1f, 1f, 1f), 0, false); AddCurve(m_Curves.lumVSsat, new Color(1f, 1f, 1f), 0, false); }
private static extern void Internal_TonemappingSettings(TonemappingSettings managedInstance);