BloomPane.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. using UnityEngine;
  2. namespace MeidoPhotoStudio.Plugin;
  3. public class BloomPane : EffectPane<BloomEffectManager>
  4. {
  5. private readonly Slider intensitySlider;
  6. private readonly Slider blurSlider;
  7. private readonly Slider redSlider;
  8. private readonly Slider greenSlider;
  9. private readonly Slider blueSlider;
  10. private readonly Toggle hdrToggle;
  11. public BloomPane(EffectManager effectManager)
  12. : base(effectManager)
  13. {
  14. intensitySlider = new(Translation.Get("effectBloom", "intensity"), 0f, 100f, EffectManager.BloomValue);
  15. intensitySlider.ControlEvent += (_, _) =>
  16. {
  17. if (updating)
  18. return;
  19. EffectManager.BloomValue = intensitySlider.Value;
  20. };
  21. blurSlider = new(Translation.Get("effectBloom", "blur"), 0f, 15f, EffectManager.BlurIterations);
  22. blurSlider.ControlEvent += (_, _) =>
  23. {
  24. if (updating)
  25. return;
  26. EffectManager.BlurIterations = (int)blurSlider.Value;
  27. };
  28. redSlider = new(Translation.Get("backgroundWindow", "red"), 1f, 0.5f, EffectManager.BloomThresholdColorRed);
  29. redSlider.ControlEvent += (_, _) =>
  30. {
  31. if (updating)
  32. return;
  33. EffectManager.BloomThresholdColorRed = redSlider.Value;
  34. };
  35. greenSlider =
  36. new(Translation.Get("backgroundWindow", "green"), 1f, 0.5f, EffectManager.BloomThresholdColorGreen);
  37. greenSlider.ControlEvent += (_, _) =>
  38. {
  39. if (updating)
  40. return;
  41. EffectManager.BloomThresholdColorGreen = greenSlider.Value;
  42. };
  43. blueSlider = new(Translation.Get("backgroundWindow", "blue"), 1f, 0.5f, EffectManager.BloomThresholdColorBlue);
  44. blueSlider.ControlEvent += (_, _) =>
  45. {
  46. if (updating)
  47. return;
  48. EffectManager.BloomThresholdColorBlue = blueSlider.Value;
  49. };
  50. hdrToggle = new(Translation.Get("effectBloom", "hdrToggle"), EffectManager.BloomHDR);
  51. hdrToggle.ControlEvent += (_, _) =>
  52. {
  53. if (updating)
  54. return;
  55. EffectManager.BloomHDR = hdrToggle.Value;
  56. };
  57. }
  58. protected override BloomEffectManager EffectManager { get; set; }
  59. protected override void TranslatePane()
  60. {
  61. intensitySlider.Label = Translation.Get("effectBloom", "intensity");
  62. blurSlider.Label = Translation.Get("effectBloom", "blur");
  63. redSlider.Label = Translation.Get("backgroundWindow", "red");
  64. greenSlider.Label = Translation.Get("backgroundWindow", "green");
  65. blueSlider.Label = Translation.Get("backgroundWindow", "blue");
  66. hdrToggle.Label = Translation.Get("effectBloom", "hdrToggle");
  67. }
  68. protected override void UpdateControls()
  69. {
  70. intensitySlider.Value = EffectManager.BloomValue;
  71. blurSlider.Value = EffectManager.BlurIterations;
  72. redSlider.Value = EffectManager.BloomThresholdColorRed;
  73. greenSlider.Value = EffectManager.BloomThresholdColorGreen;
  74. blueSlider.Value = EffectManager.BloomThresholdColorBlue;
  75. hdrToggle.Value = EffectManager.BloomHDR;
  76. }
  77. protected override void DrawPane()
  78. {
  79. var sliderWidth = MpsGui.HalfSlider;
  80. GUILayout.BeginHorizontal();
  81. intensitySlider.Draw(sliderWidth);
  82. blurSlider.Draw(sliderWidth);
  83. GUILayout.EndHorizontal();
  84. GUILayout.BeginHorizontal();
  85. redSlider.Draw(sliderWidth);
  86. greenSlider.Draw(sliderWidth);
  87. GUILayout.EndHorizontal();
  88. GUILayout.BeginHorizontal();
  89. blueSlider.Draw(sliderWidth);
  90. GUILayout.FlexibleSpace();
  91. hdrToggle.Draw(GUILayout.ExpandWidth(false));
  92. GUILayout.EndHorizontal();
  93. }
  94. }