Я пытаюсь использовать функцию GenFramebuffers из OpenTK. В нативном OpenGL эта функция принимает несколько имен кадровых буферов для генерации и указатель на int, где будут храниться имена. Но вариант OpenTK требует нескольких имен для генерации и один выходной параметр Int32.
Вот исходный код функции из OpenTK:
public static void GenFramebuffers(Int32 n, out Int32 framebuffers)
{
unsafe
{
fixed (Int32* framebuffers_ptr = &framebuffers)
{
Delegates.glGenFramebuffers((Int32)n, (UInt32*)framebuffers_ptr);
framebuffers = *framebuffers_ptr;
}
}
}
Насколько я вижу, он перезапишет память, если в качестве n указано что-либо, кроме 1. Чтобы убедиться, я на самом деле попробовал это с n = 2, и действительно он записал Int32, который я передал в качестве выходного параметра, плюс один Int32, который оказался в памяти после него.
Это не единственная затронутая функция в OpenTK, все функции genXXX такие.
Я здесь схожу с ума или OpenTK серьезно сломан?