public override GraphicBuffer CreateVertexBuffer(int size, int stride, ResourceUsage usage = ResourceUsage.Default, CpuAccessFlags cpuAcces = CpuAccessFlags.ReadWrite, ResBinding binding = ResBinding.VertexBuffer, IntPtr data = default(IntPtr)) { return(new ESGraphicBuffer(size, stride, All.ArrayBuffer, usage, cpuAcces, binding, data)); }
public ESGraphicBuffer(int size, int stride, All type, ResourceUsage usage, CpuAccessFlags cpuAcces, ResBinding binding, IntPtr data) { _type = type; this._lenght = size; this._stride = stride; this._usage = usage; this._cpuAccesType = cpuAcces; this._binding = binding; GL.GenBuffers(1, out buffer); GL.BindBuffer(type, buffer); GL.BufferData(type, new IntPtr(size), data, Utils.GetUsage(usage)); if (cpuAcces != CpuAccessFlags.None) { bufferData = new byte[size]; if (data != IntPtr.Zero) { ClrRuntime.Runtime.Copy(data, bufferData, 0, size); } } }