Rasagar/Library/PackageCache/com.unity.shadergraph/Editor/Generation/Target.cs

55 lines
2.3 KiB
C#
Raw Normal View History

2024-08-26 13:07:20 -07:00
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.UIElements;
using UnityEditor.ShaderGraph.Serialization;
namespace UnityEditor.ShaderGraph
{
[Serializable, GenerationAPI] // TODO: Public
internal abstract class Target : JsonObject
{
public string displayName { get; set; }
public bool isHidden { get; set; }
internal virtual bool ignoreCustomInterpolators => true;
internal virtual int padCustomInterpolatorLimit => 4;
internal virtual bool prefersSpritePreview => false;
public abstract bool IsActive();
public abstract void Setup(ref TargetSetupContext context);
public abstract void GetFields(ref TargetFieldContext context);
public abstract void GetActiveBlocks(ref TargetActiveBlockContext context);
public abstract void GetPropertiesGUI(ref TargetPropertyGUIContext context, Action onChange, Action<string> registerUndo);
public virtual void CollectShaderProperties(PropertyCollector collector, GenerationMode generationMode) { }
public virtual void ProcessPreviewMaterial(Material material) { }
public virtual object saveContext => null;
public virtual bool IsNodeAllowedByTarget(Type nodeType)
{
NeverAllowedByTargetAttribute never = NodeClassCache.GetAttributeOnNodeType<NeverAllowedByTargetAttribute>(nodeType);
return never == null;
}
public virtual bool DerivativeModificationCallback(
out string dstGraphFunctions,
out string dstGraphPixel,
out bool[] adjustedUvDerivs,
string primaryShaderName,
string passName,
string propStr,
string surfaceDescStr,
string graphFuncStr,
string graphPixelStr,
List<string> customFuncs,
bool applyEmulatedDerivatives)
{
dstGraphFunctions = "";
dstGraphPixel = "";
adjustedUvDerivs = new bool[4];
return false;
}
// think this is not called by anyone anymore, leaving it to avoid changing client code
public abstract bool WorksWithSRP(RenderPipelineAsset scriptableRenderPipeline);
}
}