/// <inheritdoc/>
    public void Dispose()
    {
        GC.SuppressFinalize(this);

        HLSL11_VertexData?.Dispose();
        HLSL11_PixelData?.Dispose();
        PSSL_VertexData?.Dispose();
        PSSL_PixelData?.Dispose();
        Cg_PSVita_VertexData?.Dispose();
        Cg_PSVita_PixelData?.Dispose();
        Cg_PS3_VertexData?.Dispose();
        Cg_PS3_PixelData?.Dispose();
        foreach (var attr in VertexShaderAttributes)
        {
            attr?.Dispose();
        }

        Name                   = null;
        GLSL_ES_Vertex         = null;
        GLSL_ES_Fragment       = null;
        GLSL_Vertex            = null;
        GLSL_Fragment          = null;
        HLSL9_Vertex           = null;
        HLSL9_Fragment         = null;
        HLSL11_VertexData      = null;
        HLSL11_PixelData       = null;
        PSSL_VertexData        = null;
        PSSL_PixelData         = null;
        Cg_PSVita_VertexData   = null;
        Cg_PSVita_PixelData    = null;
        Cg_PS3_VertexData      = null;
        Cg_PS3_PixelData       = null;
        VertexShaderAttributes = new();
    }
 public UndertaleShader()
 {
     HLSL11_VertexData = new UndertaleRawShaderData();
     HLSL11_PixelData = new UndertaleRawShaderData();
     PSSL_VertexData = new UndertaleRawShaderData();
     PSSL_PixelData = new UndertaleRawShaderData();
     Cg_PSVita_VertexData = new UndertaleRawShaderData();
     Cg_PSVita_PixelData = new UndertaleRawShaderData();
     Cg_PS3_VertexData = new UndertaleRawShaderData();
     Cg_PS3_PixelData = new UndertaleRawShaderData();
 }