Quoted by kaijellinghaus#0000
Ptr<T> type instead of an array, I would be very confusedPtr<T> causes more problems than it solvesQuoted by kaijellinghaus#0000
const char** to be specificT*[] helps with nothingROSpan<Span<T>> is just not validint*[] no problemno need for unsafe, no need for weird types, just give something an array and it worksis exactly what we try to enable here
// However, there are some caveats to this:
// - We use local functions in addition to the generic typeof(T) == typeof(whatever) pattern to work around some
// unfortunate inlining issues in platforms older that .NET 5, where the inliner was going over budget despite
// aggressively inlined functions supposedly being exempt from budgeting.
// See also: https://github.com/dotnet/runtime/issues/38106const char**T*[]ROSpan<Span<T>>int*[]void glDoStuff<T>(T[] myArray) where T : unmanaged {
fixed (void* arrPtr = myArray)
glDoStuff((nuint) myArray.Length, arrPtr);
}