我正在尝试将带有一些 OpenTK(C# Opengl 实现)的应用程序移植到 XNA/MonoGame 并且我已经来到缓冲区,但我无法弄清楚如何移植它,因为似乎没有任何直接等效的缓冲区函数. 我正在尝试移植此代码:
public void RefillVBO()
{
if (positions == null) return;
if (hasBuf)
GL.DeleteBuffers(3, buf);
GL.GenBuffers(3, buf);
GL.BindBuffer(BufferTarget.ArrayBuffer, buf[0]);
GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(positions.Length * sizeof(float)), positions, BufferUsageHint.StaticDraw);
if (normals != null)
{
GL.BindBuffer(BufferTarget.ArrayBuffer, buf[1]);
GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(normals.Length * sizeof(float)), normals, BufferUsageHint.StaticDraw);
}
GL.BindBuffer(BufferTarget.ElementArrayBuffer, buf[2]);
GL.BufferData(BufferTarget.ElementArrayBuffer, (IntPtr)(elementsLength * sizeof(int)), elements, BufferUsageHint.StaticDraw);
hasBuf = true;
}
任何人都可以为我翻译这个并可能解释发生了什么,因为我不知道吗?
此外,是否有任何移植指南或其他内容,因为实际上还有数百个与“Gl”功能相关的其他错误。