protected int beginPrimitive(int vertexCount, int elemCount) { int vertIdx = vertices.position() / VERTEX_SIZE; int verts = vertIdx + vertexCount, elems = elements.position() + elemCount; int availVerts = vertices.capacity() / VERTEX_SIZE, availElems = elements.capacity(); if ((verts > availVerts) || (elems > availElems)) { IndexedTrisShader.this.flush(); if (verts > availVerts) expandVerts(verts); if (elems > availElems) expandElems(elems); return 0; } return vertIdx; }
private void expandVerts(int vertCount) { int newVerts = vertices.capacity() / VERTEX_SIZE; while (newVerts < vertCount) newVerts += EXPAND_VERTS; vertices.expand(newVerts * VERTEX_SIZE); }