rj-action-library/Runtime/Shading/Generators/ShaderVariant.cs

29 lines
656 B
C#

using Godot;
using System.Reflection;
using System.Collections.Generic;
namespace Rokojori
{
public class ShaderVariant
{
public string variantName = "";
public List<ShaderCode> shaderCode = [];
public string GetCode( ShaderGenerationContext context )
{
return shaderCode.Map( s => s.GetCode( context ) ).Join( "" );
}
public ShaderVariant Extend( ShaderCode shaderCode )
{
var variant = new ShaderVariant();
variant.variantName = variantName + shaderCode.variantName;
variant.shaderCode = this.shaderCode.Clone();
variant.shaderCode.Add( shaderCode );
return variant;
}
}
}