Пример #1
0
        public void SetVertexBuffer(VertexBuffer buffer)
        {
            GL.GetError();

            _vertexPointersNeedSetup = true;
            _vertexDeclaration       = buffer.VertexElements;

            GlVertexBuffer glVertices = (GlVertexBuffer)buffer;

            glVertices.Bind();
            GlException.ThrowExceptionIfErrorExists();

            _currentVertexBuffer = glVertices;
        }
Пример #2
0
        internal static GlVertexBuffer CreateBuffer <T>(VertexBufferUsage usage, T[] data, int numVertices, VertexElementSet vertexElements) where T : struct
        {
            GlVertexBuffer buffer = new GlVertexBuffer();

            buffer._declaration = vertexElements;
            buffer._numVertices = numVertices;
            buffer._usage       = usage;

            GL.GenBuffers(1, out buffer._buffer);
            GL.BindBuffer(BufferTarget.ArrayBuffer, buffer._buffer);
            GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(numVertices * vertexElements.Stride), data, (BufferUsageHint)convertUsage(usage));

            GL.BindBuffer(BufferTarget.ArrayBuffer, 0);

            return(buffer);
        }
Пример #3
0
 public VertexBuffer CreateVertexBuffer <T>(VertexBufferUsage usage, T[] data, int numVertices, VertexElementSet declaration) where T : struct
 {
     return(GlVertexBuffer.CreateBuffer(usage, data, numVertices, declaration));
 }