Rasagar/Library/PackageCache/com.unity.shadergraph/Editor/Data/Graphs/Texture3DMaterialSlot.cs
2024-08-26 23:07:20 +03:00

60 lines
1.8 KiB
C#

using System;
using UnityEditor.Graphing;
using UnityEngine;
namespace UnityEditor.ShaderGraph
{
[Serializable]
class Texture3DMaterialSlot : MaterialSlot
{
public Texture3DMaterialSlot()
{ }
public Texture3DMaterialSlot(
int slotId,
string displayName,
string shaderOutputName,
SlotType slotType,
ShaderStageCapability shaderStageCapability = ShaderStageCapability.All,
bool hidden = false)
: base(slotId, displayName, shaderOutputName, slotType, shaderStageCapability, hidden)
{ }
[SerializeField]
bool m_BareResource = false;
internal override bool bareResource
{
get { return m_BareResource; }
set { m_BareResource = value; }
}
public override void AppendHLSLParameterDeclaration(ShaderStringBuilder sb, string paramName)
{
if (m_BareResource)
{
sb.Append("TEXTURE3D(");
sb.Append(paramName);
sb.Append(")");
}
else
base.AppendHLSLParameterDeclaration(sb, paramName);
}
public override SlotValueType valueType { get { return SlotValueType.Texture3D; } }
public override ConcreteSlotValueType concreteValueType { get { return ConcreteSlotValueType.Texture3D; } }
public override bool isDefaultValue => true;
public override void AddDefaultProperty(PropertyCollector properties, GenerationMode generationMode)
{ }
public override void CopyValuesFrom(MaterialSlot foundSlot)
{
var slot = foundSlot as Texture3DMaterialSlot;
if (slot != null)
{
m_BareResource = slot.m_BareResource;
}
}
}
}