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));
 }
Ejemplo n.º 2
0
        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);
                }
            }
        }