public ConstantBuffer(int size) { ThreadingHelper.BlockOnUIThread(() => { ubo = GL.GenBuffer(); GL.BindBuffer(BufferTarget.UniformBuffer, ubo); GL.BufferData(BufferTarget.UniformBuffer, new IntPtr(size), IntPtr.Zero, BufferUsageHint.DynamicDraw); }); }
public void Update(IntPtr data, uint size) { ThreadingHelper.BlockOnUIThread(() => { GL.BindBuffer(BufferTarget.UniformBuffer, ubo); IntPtr ptr = GL.MapBuffer(BufferTarget.UniformBuffer, BufferAccess.WriteOnly); MemoryHelper.CopyBulk(data, ptr, size); //Buffer.BlockCopy( GL.UnmapBuffer(BufferTarget.UniformBuffer); }); }