You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.2 KiB
36 lines
1.2 KiB
using System; |
|
using UnityEditor.ShaderGraph.Drawing.Slots; |
|
using UnityEditor.ShaderGraph.Internal; |
|
using UnityEngine.UIElements; |
|
|
|
namespace UnityEditor.ShaderGraph |
|
{ |
|
[Serializable] |
|
class PositionMaterialSlot : SpaceMaterialSlot, IMayRequirePosition |
|
{ |
|
public PositionMaterialSlot() |
|
{ } |
|
|
|
public PositionMaterialSlot(int slotId, string displayName, string shaderOutputName, CoordinateSpace space, |
|
ShaderStageCapability stageCapability = ShaderStageCapability.All, bool hidden = false) |
|
: base(slotId, displayName, shaderOutputName, space, stageCapability, hidden) |
|
{ } |
|
|
|
public override VisualElement InstantiateControl() |
|
{ |
|
return new LabelSlotControlView(space + " Space"); |
|
} |
|
|
|
public override string GetDefaultValue(GenerationMode generationMode) |
|
{ |
|
return string.Format("IN.{0}", space.ToVariableName(InterpolatorType.Position)); |
|
} |
|
|
|
public NeededCoordinateSpace RequiresPosition(ShaderStageCapability stageCapability) |
|
{ |
|
if (isConnected) |
|
return NeededCoordinateSpace.None; |
|
return space.ToNeededCoordinateSpace(); |
|
} |
|
} |
|
}
|
|
|