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