Asocia tus tipos a la GPU#
El mapeo de vectores utiliza YotsubaShader.Language.Native.Types.Vector. Marca el tipo con [Vector] y sus componentes ordenados con [VectorComponent(index)]. Los componentes deben compartir un tipo escalar compatible.
using YotsubaShader.Language.Native.Types.Vector;
[Vector]
public struct Float2
{
[VectorComponent(0)] public float X;
[VectorComponent(1)] public float Y;
public Float2(float x, float y) { X = x; Y = y; }
}
Un nombre como Vector2 no aporta semántica de vector nativo. Puedes anotar los tipos que controlas; un ensamblado externo sin modificar no adquiere estos atributos mediante un using. Los structs sin anotar se inspeccionan como campos y propiedades.
Compartir bibliotecas#
Puedes distribuir tipos C# y código fuente de shaders mediante NuGet. La compilación GPU de métodos arbitrarios de bibliotecas no está implementada: el descubrimiento solo busca en el ensamblado actual y el procesamiento de invocaciones está incompleto. Empaquetar código no demuestra compatibilidad GPU.
