protected GeometryBase(Color32 fillColor, bool isFixedSize = false, int vertexCount = 0, bool showOrigin = false) { m_fillColor = fillColor; m_showOrigin = showOrigin; m_fillBuffer = isFixedSize ? new VertexBufferObject <Vertex>(vertexCount, BufferTarget.ArrayBuffer, BufferUsageHint.StaticDraw) : new VertexBufferObject <Vertex>(0, BufferTarget.ArrayBuffer, BufferUsageHint.StreamDraw); m_indexBuffer = new VertexBufferObject <uint>(0, BufferTarget.ElementArrayBuffer, BufferUsageHint.StaticDraw); m_fillVao = new VertexArrayObject <Vertex>(); m_fillVao.AttachVertexBuffer(m_fillBuffer, m_indexBuffer); //if (showOrigin) //{ // originRect = new RectangleGeometry(20f, 20f, Color.Lime, false); // originRect.Origin = new Vector3(originRect.Width / 2f, originRect.Height / 2f, 0f); //} }
public void AttachVertexBuffer(VertexBufferObject <TVertex> buffer, VertexBufferObject <uint> indices = null) { if (0 == handle) { throw new NotInitializedException(); } vertexBuffer?.Dispose(); vertexBuffer = buffer; indexBuffer?.Dispose(); indexBuffer = indices; Bind(); vertexBuffer.Bind(); indexBuffer?.Bind(); SetupAttributes(); Unbind(); vertexBuffer.Unbind(); indexBuffer?.Unbind(); }