public ShaderVariable AddVariable(ShaderContext context, string shaderTypeName) { var variable = new ShaderVariable(context, nextGenericName, shaderTypeName); variables.Add(variable); return(variable); }
public ShaderVariable AddUniform(ShaderContext context, string name, string shaderTypeName, int count = -1) { var uniform = new ShaderVariable(context, name, shaderTypeName, count); uniforms.Add(uniform); return(uniform); }
public ShaderVariable(ShaderContext context, string name, string shaderTypeName = null, int count = -1) { Context = context; Name = name; ShaderTypeName = shaderTypeName; ArrayCount = count; reference = new Reference(this); }
public void DeclareUnusedVaryingsAsVariables(StringBuilder code, ShaderContext context) { foreach (var varying in varyings) { if (!context.Uses(varying)) { code.Append($"{varying.ShaderTypeName} {varying.Name}"); if (varying.ArrayCount != -1) { code.Append($"[{varying.ArrayCount}]"); } code.AppendLine(";"); } } }
public override void Generate(ShaderContext context) { }
public virtual void Generate(ShaderContext context) => context.Comment(GetType().Name);