A game about forced loneliness, made by TACStudios
at master 2.1 kB view raw
1using System; 2using UnityEngine; 3using UnityEditor.Graphing; 4using UnityEditor.ShaderGraph.Internal; 5 6namespace UnityEditor.ShaderGraph 7{ 8 [Serializable] 9 [BlackboardInputInfo(72)] 10 class Matrix4ShaderProperty : MatrixShaderProperty 11 { 12 public Matrix4ShaderProperty() 13 { 14 displayName = "Matrix4x4"; 15 value = Matrix4x4.identity; 16 } 17 18 public override PropertyType propertyType => PropertyType.Matrix4; 19 20 internal override string GetPropertyAsArgumentString(string precisionString) 21 { 22 return $"{precisionString}4x4 {referenceName}"; 23 } 24 25 internal override AbstractMaterialNode ToConcreteNode() 26 { 27 return new Matrix4Node 28 { 29 row0 = new Vector4(value.m00, value.m01, value.m02, value.m03), 30 row1 = new Vector4(value.m10, value.m11, value.m12, value.m13), 31 row2 = new Vector4(value.m20, value.m21, value.m22, value.m23), 32 row3 = new Vector4(value.m30, value.m31, value.m32, value.m33) 33 }; 34 } 35 36 internal override PreviewProperty GetPreviewMaterialProperty() 37 { 38 return new PreviewProperty(propertyType) 39 { 40 name = referenceName, 41 matrixValue = value 42 }; 43 } 44 45 internal override ShaderInput Copy() 46 { 47 return new Matrix4ShaderProperty() 48 { 49 displayName = displayName, 50 value = value, 51 }; 52 } 53 54 public override int latestVersion => 1; 55 public override void OnAfterDeserialize(string json) 56 { 57 if (sgVersion == 0) 58 { 59 // all old matrices were declared global; yes even if flagged hybrid! 60 // maintain old behavior on versioning, users can always change the override if they wish 61 overrideHLSLDeclaration = true; 62 hlslDeclarationOverride = HLSLDeclaration.Global; 63 ChangeVersion(1); 64 } 65 } 66 } 67}