summaryrefslogtreecommitdiff
path: root/VRCSDK3Avatars/Assets/_PoiyomiShaders/Scripts/ModularShaderSystem/Scriptables/Variable.cs
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2024-12-27 00:56:58 -0500
committerFreya Murphy <freya@freyacat.org>2024-12-27 00:58:02 -0500
commit799e6680d40119dc9c2a9e0b320054a40324bebe (patch)
treedbcd308d59eb6e4f937a5547dd77d9f91d4fec20 /VRCSDK3Avatars/Assets/_PoiyomiShaders/Scripts/ModularShaderSystem/Scriptables/Variable.cs
parentmove to self host (diff)
downloadunityprojects-799e6680d40119dc9c2a9e0b320054a40324bebe.tar.gz
unityprojects-799e6680d40119dc9c2a9e0b320054a40324bebe.tar.bz2
unityprojects-799e6680d40119dc9c2a9e0b320054a40324bebe.zip
VRCSDK3Avatars found!
Diffstat (limited to 'VRCSDK3Avatars/Assets/_PoiyomiShaders/Scripts/ModularShaderSystem/Scriptables/Variable.cs')
-rw-r--r--VRCSDK3Avatars/Assets/_PoiyomiShaders/Scripts/ModularShaderSystem/Scriptables/Variable.cs138
1 files changed, 138 insertions, 0 deletions
diff --git a/VRCSDK3Avatars/Assets/_PoiyomiShaders/Scripts/ModularShaderSystem/Scriptables/Variable.cs b/VRCSDK3Avatars/Assets/_PoiyomiShaders/Scripts/ModularShaderSystem/Scriptables/Variable.cs
new file mode 100644
index 00000000..892210bc
--- /dev/null
+++ b/VRCSDK3Avatars/Assets/_PoiyomiShaders/Scripts/ModularShaderSystem/Scriptables/Variable.cs
@@ -0,0 +1,138 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Poiyomi.ModularShaderSystem
+{
+ [Serializable]
+ public class Variable : IEquatable<Variable>
+ {
+ public override int GetHashCode()
+ {
+ int hashCode = (Name != null ? Name.GetHashCode() : 0);
+ return hashCode;
+ }
+
+ public string Name;
+ public VariableType Type;
+ public string CustomType;
+
+ public string GetDefinition()
+ {
+ switch (Type)
+ {
+ case VariableType.Half:
+ return $"half {Name};";
+ case VariableType.Half2:
+ return $"half2 {Name};";
+ case VariableType.Half3:
+ return $"half3 {Name};";
+ case VariableType.Half4:
+ return $"half4 {Name};";
+ case VariableType.Float:
+ return $"float {Name};";
+ case VariableType.Float2:
+ return $"float2 {Name};";
+ case VariableType.Float3:
+ return $"float3 {Name};";
+ case VariableType.Float4:
+ return $"float4 {Name};";
+ case VariableType.Sampler2D:
+ return $"sampler2D {Name};";
+ case VariableType.SamplerCUBE:
+ return $"samplerCUBE {Name};";
+ case VariableType.Sampler3D:
+ return $"sampler3D {Name};";
+ case VariableType.Texture2D:
+ return $"Texture2D {Name};";
+ case VariableType.Texture2DArray:
+ return $"Texture2DArray {Name};";
+ case VariableType.Texture2DMS:
+ return $"Texture2DMS {Name};";
+ case VariableType.TextureCube:
+ return $"TextureCube {Name};";
+ case VariableType.TextureCubeArray:
+ return $"TextureCubeArray {Name};";
+ case VariableType.Texture3D:
+ return $"Texture3D {Name};";
+ case VariableType.UnityTex2D:
+ return $"UNITY_DECLARE_TEX2D({Name});";
+ case VariableType.UnityTex2DNoSampler:
+ return $"UNITY_DECLARE_TEX2D_NOSAMPLER({Name});";
+ case VariableType.UnityTexCube:
+ return $"UNITY_DECLARE_TEXCUBE({Name});";
+ case VariableType.UnityTexCubeNoSampler:
+ return $"UNITY_DECLARE_TEXCUBE_NOSAMPLER({Name});";
+ case VariableType.UnityTex3D:
+ return $"UNITY_DECLARE_TEX3D({Name});";
+ case VariableType.UnityTex3DNoSampler:
+ return $"UNITY_DECLARE_TEX3D_NOSAMPLER({Name});";
+ case VariableType.UnityTex2DArray:
+ return $"UNITY_DECLARE_TEX2DARRAY({Name});";
+ case VariableType.UnityTex2DArrayNoSampler:
+ return $"UNITY_DECLARE_TEX2DARRAY_NOSAMPLER({Name});";
+ case VariableType.UnityTexCubeArray:
+ return $"UNITY_DECLARE_TEXCUBEARRAY({Name});";
+ case VariableType.UnityTexCubeArrayNoSampler:
+ return $"UNITY_DECLARE_TEXCUBEARRAY_NOSAMPLER({Name});";
+ case VariableType.Custom:
+ return $"{CustomType} {Name};";
+ }
+
+ return "";
+ }
+
+ public override bool Equals(object obj)
+ {
+ return Equals(obj as Variable);
+ }
+
+ public bool Equals(Variable other)
+ {
+ return other != null &&
+ Name.Equals(other.Name);
+ }
+
+ public static bool operator ==(Variable left, Variable right)
+ {
+ return EqualityComparer<Variable>.Default.Equals(left, right);
+ }
+
+ public static bool operator !=(Variable left, Variable right)
+ {
+ return !(left == right);
+ }
+ }
+
+ public enum VariableType
+ {
+ Half,
+ Half2,
+ Half3,
+ Half4,
+ Float,
+ Float2,
+ Float3,
+ Float4,
+ Sampler2D,
+ SamplerCUBE,
+ Sampler3D,
+ Texture2D,
+ Texture2DArray,
+ Texture2DMS,
+ TextureCube,
+ TextureCubeArray,
+ Texture3D,
+ UnityTex2D,
+ UnityTex2DNoSampler,
+ UnityTexCube,
+ UnityTexCubeNoSampler,
+ UnityTex3D,
+ UnityTex3DNoSampler,
+ UnityTex2DArray,
+ UnityTex2DArrayNoSampler,
+ UnityTexCubeArray,
+ UnityTexCubeArrayNoSampler,
+ Custom = 999
+ }
+} \ No newline at end of file