BindBuffer() private method

private BindBuffer ( UInt32 target, UInt32 buffer ) : void
target System.UInt32
buffer System.UInt32
return void
示例#1
0
        private unsafe void init(IDisposableResource parent, IBufferLayoutDesc bufferLayoutDesc, BufferUsages bufferUsage, VertexBufferTopologys vertexBufferTopology, float[] vertices, int[] indices)
        {
            try
            {
                video    = parent.FindParentOrSelfWithException <Video>();
                Topology = vertexBufferTopology;

                uint vPtr = 0;
                GL.GenBuffers(1, &vPtr);
                vertexBuffer = vPtr;
                if (vertexBuffer == 0)
                {
                    Debug.ThrowError("VertexBuffer", "Failed to create VertexBuffer");
                }

                GL.BindBuffer(GL.ARRAY_BUFFER, vertexBuffer);
                fixed(float *verticesPtr = vertices)
                {
                    var bufferSize = new IntPtr(vertexByteSize * vertexCount);

                    GL.BufferData(GL.ARRAY_BUFFER, bufferSize, verticesPtr, GL.STATIC_DRAW);
                }

                Video.checkForError();

                if (indices != null && indices.Length != 0)
                {
                    indexBuffer = new IndexBuffer(this, usage, indices);
                }
            }
            catch (Exception e)
            {
                Dispose();
                throw e;
            }
        }