A game about forced loneliness, made by TACStudios
1using System;
2using UnityEditor.Graphing;
3using UnityEngine;
4
5namespace UnityEditor.ShaderGraph
6{
7 [Serializable]
8 class Texture2DArrayMaterialSlot : MaterialSlot
9 {
10 public Texture2DArrayMaterialSlot()
11 { }
12
13 public Texture2DArrayMaterialSlot(
14 int slotId,
15 string displayName,
16 string shaderOutputName,
17 SlotType slotType,
18 ShaderStageCapability shaderStageCapability = ShaderStageCapability.All,
19 bool hidden = false)
20 : base(slotId, displayName, shaderOutputName, slotType, shaderStageCapability, hidden)
21 { }
22
23 [SerializeField]
24 bool m_BareResource = false;
25 internal override bool bareResource
26 {
27 get { return m_BareResource; }
28 set { m_BareResource = value; }
29 }
30
31 public override void AppendHLSLParameterDeclaration(ShaderStringBuilder sb, string paramName)
32 {
33 if (m_BareResource)
34 {
35 sb.Append("TEXTURE2D_ARRAY(");
36 sb.Append(paramName);
37 sb.Append(")");
38 }
39 else
40 base.AppendHLSLParameterDeclaration(sb, paramName);
41 }
42
43 public override SlotValueType valueType { get { return SlotValueType.Texture2DArray; } }
44 public override ConcreteSlotValueType concreteValueType { get { return ConcreteSlotValueType.Texture2DArray; } }
45 public override bool isDefaultValue => true;
46
47 public override void AddDefaultProperty(PropertyCollector properties, GenerationMode generationMode)
48 { }
49
50 public override void CopyValuesFrom(MaterialSlot foundSlot)
51 {
52 var slot = foundSlot as Texture2DArrayMaterialSlot;
53 if (slot != null)
54 {
55 m_BareResource = slot.m_BareResource;
56 }
57 }
58 }
59}