Type lists for the GraphCompiler. Declares collections of Type objects that represent allowable value types passed between shader graph nodes, material parameter types, shader attribute types, and types with no defaults.
namespace ShaderGraphPlus;
public sealed partial class GraphCompiler
{
/// <summary>
/// Avalible value types that are passed between <seealso cref="ShaderNodePlus"/> nodes.
/// Value represents if the key type is defined in editor code or not.
/// </summary>
internal static Dictionary<Type, bool> ValueTypes => new()
{
{ typeof( bool ), false },
{ typeof( int ), false },
{ typeof( float ), false },
{ typeof( Vector2 ),false },
{ typeof( Vector3 ), false },
{ typeof( Vector4 ), false },
{ typeof( Color ), false },
{ typeof( Float2x2 ), true },
{ typeof( Float3x3 ), true },
{ typeof( Float4x4 ), true },
{ typeof( Texture ), true },
{ typeof( Sampler ), true },
};
/// <summary>
/// Value types that are exposed to the material editor.
/// </summary>
internal static List<Type> MaterialParameterTypes => new()
{
{ typeof( bool ) },
{ typeof( int ) },
{ typeof( float ) },
{ typeof( Vector2 ) },
{ typeof( Vector3 ) },
{ typeof( Vector4 ) },
{ typeof( Color ) },
{ typeof( Texture ) },
};
/// <summary>
/// Value types that can be set on <seealso cref="RenderAttributes"/>
/// </summary>
internal static List<Type> ShaderAttributeTypes => new()
{
{ typeof( bool ) },
{ typeof( int ) },
{ typeof( Vector2Int ) },
{ typeof( Vector3Int ) },
{ typeof( float ) },
{ typeof( Double ) },
{ typeof( Angles ) },
{ typeof( Vector2 ) },
{ typeof( Vector3 ) },
{ typeof( Vector4 ) },
{ typeof( Color ) },
{ typeof( Texture ) },
{ typeof( Sampler ) },
};
/// <summary>
/// Value types that have no defaults.
/// </summary>
internal static HashSet<Type> ValueTypesNoDefault => new()
{
{ typeof( Sampler ) },
{ typeof( Texture ) },
};
}