private BindBuffer ( |
||
target | ||
buffer | ||
return | void |
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; } }