public static BufferObject CreateBuffer(int size, IntPtr data, BufferStorageFlags flags) { BufferObject b = new BufferObject(); b.Bind(BufferTarget.CopyWriteBuffer); b.immutable |= IMMUTABLE; if ((flags & BufferStorageFlags.DynamicStorageBit) == 0) { b.immutable |= NOT_DYNAMIC; } GL.NamedBufferStorage(b.ID, size, data, flags); return(b); }
public static BufferObject CreateBuffer <T>(T[] data, BufferStorageFlags flags) where T : struct { BufferObject b = new BufferObject(); b.Bind(BufferTarget.CopyWriteBuffer); b.immutable |= IMMUTABLE; if ((flags & BufferStorageFlags.DynamicStorageBit) == 0) { b.immutable |= NOT_DYNAMIC; } GL.NamedBufferStorage(b.ID, data.Length * Marshal.SizeOf(typeof(T)), data, flags); return(b); }