OpenTK: что является заменой GL.NamedBufferStorage( ...)?
Я использую OpenTK.GLControl из последнего пакета nuget. Я следую этому руководству: http://dreamstatecoding.blogspot.com/2017/02/opengl-4-with-opentk-in-c-part-12-basic.html
Моя видеокарта - Intel(R) HD Graphics 530, а OpenGL - 3.2 (я могу указать версию 3.3 в шейдере)
Следующая строка вызывает проблемы:
namespace WindowsForms3D.Components.Renderables
{
public class ColoredRenderObject : ARenderable
{
public ColoredRenderObject(ColoredVertex[] vertices, int program)
: base(program, vertices.Length)
{
// create first buffer: vertex
GL.NamedBufferStorage(
Buffer,
ColoredVertex.Size * vertices.Length, // the size needed by this buffer
vertices, // data to initialize with
BufferStorageFlags.MapWriteBit); // at this point we will only write to the buffer
GL.VertexArrayAttribBinding(VertexArray, 0, 0);
GL.EnableVertexArrayAttrib(VertexArray, 0);
GL.VertexArrayAttribFormat(
VertexArray,
0, // attribute index, from the shader location = 0
4, // size of attribute, vec4
VertexAttribType.Float, // contains floats
false, // does not need to be normalized as it is already, floats ignore this flag anyway
0); // relative offset, first item
GL.VertexArrayAttribBinding(VertexArray, 1, 0);
GL.EnableVertexArrayAttrib(VertexArray, 1);
GL.VertexArrayAttribFormat(
VertexArray,
1, // attribute index, from the shader location = 1
4, // size of attribute, vec4
VertexAttribType.Float, // contains floats
false, // does not need to be normalized as it is already, floats ignore this flag anyway
16); // relative offset after a vec4
// link the vertex array and buffer and provide the stride as size of Vertex
GL.VertexArrayVertexBuffer(VertexArray, 0, Buffer, IntPtr.Zero, ColoredVertex.Size);
}
}
}
GL.NamedBufferStorage
вызывает System.AccessViolationException; Я понимаю, что это из-за более старой версии opengl (как показано здесь: OpenTK.Core - GL.NamedBufferStorage вызывает System.AccessViolationException)
Итак, как мне изменить это руководство, чтобы оно работало с моей версией OpenGL? Какие функции выбрать вместо?