summaryrefslogtreecommitdiff
path: root/Valheim_r202102_v0.141.2/Valheim/assembly_postprocessing/UnityEngine.PostProcessing/UserLutComponent.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Valheim_r202102_v0.141.2/Valheim/assembly_postprocessing/UnityEngine.PostProcessing/UserLutComponent.cs')
-rw-r--r--Valheim_r202102_v0.141.2/Valheim/assembly_postprocessing/UnityEngine.PostProcessing/UserLutComponent.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/Valheim_r202102_v0.141.2/Valheim/assembly_postprocessing/UnityEngine.PostProcessing/UserLutComponent.cs b/Valheim_r202102_v0.141.2/Valheim/assembly_postprocessing/UnityEngine.PostProcessing/UserLutComponent.cs
new file mode 100644
index 0000000..69399bf
--- /dev/null
+++ b/Valheim_r202102_v0.141.2/Valheim/assembly_postprocessing/UnityEngine.PostProcessing/UserLutComponent.cs
@@ -0,0 +1,38 @@
+namespace UnityEngine.PostProcessing;
+
+public sealed class UserLutComponent : PostProcessingComponentRenderTexture<UserLutModel>
+{
+ private static class Uniforms
+ {
+ internal static readonly int _UserLut = Shader.PropertyToID("_UserLut");
+
+ internal static readonly int _UserLut_Params = Shader.PropertyToID("_UserLut_Params");
+ }
+
+ public override bool active
+ {
+ get
+ {
+ UserLutModel.Settings settings = base.model.settings;
+ if (base.model.enabled && settings.lut != null && settings.contribution > 0f && settings.lut.height == (int)Mathf.Sqrt(settings.lut.width))
+ {
+ return !context.interrupted;
+ }
+ return false;
+ }
+ }
+
+ public override void Prepare(Material uberMaterial)
+ {
+ UserLutModel.Settings settings = base.model.settings;
+ uberMaterial.EnableKeyword("USER_LUT");
+ uberMaterial.SetTexture(Uniforms._UserLut, settings.lut);
+ uberMaterial.SetVector(Uniforms._UserLut_Params, new Vector4(1f / (float)settings.lut.width, 1f / (float)settings.lut.height, (float)settings.lut.height - 1f, settings.contribution));
+ }
+
+ public void OnGUI()
+ {
+ UserLutModel.Settings settings = base.model.settings;
+ GUI.DrawTexture(new Rect(context.viewport.x * (float)Screen.width + 8f, 8f, settings.lut.width, settings.lut.height), settings.lut);
+ }
+}