@@ -568,7 +568,7 @@ void GeometryBuilder::renderFacesLinear(
568568 facesLeft -= facesLeftInThisPass;
569569
570570 // Three 32 bit ints for each triangle to index into the VBO (triangles = verticies - 2)
571- size_t iboSize = static_cast <size_t >(facesLeftInThisPass * sizeof (uint32_t ) * numNodesPerFace);
571+ size_t iboSize = static_cast <size_t >(facesLeftInThisPass * sizeof (uint32_t ) * ( numNodesPerFace - 2 ) * 3 );
572572 size_t vboSize = static_cast <size_t >(facesLeftInThisPass * sizeof (float ) * numNodesPerFace * numAttributes);
573573 std::shared_ptr<spire::VarBuffer> iboBufferSPtr (new spire::VarBuffer (iboSize));
574574 std::shared_ptr<spire::VarBuffer> vboBufferSPtr (new spire::VarBuffer (vboSize));
@@ -583,7 +583,9 @@ void GeometryBuilder::renderFacesLinear(
583583 iboBuffer->writeUnsafe (i+0 );
584584 iboBuffer->writeUnsafe (i+1 );
585585 iboBuffer->writeUnsafe (i+2 );
586+ iboBuffer->writeUnsafe (i+2 );
586587 iboBuffer->writeUnsafe (i+3 );
588+ iboBuffer->writeUnsafe (i+0 );
587589 }
588590 }
589591 else
@@ -808,8 +810,7 @@ void GeometryBuilder::renderFacesLinear(
808810 SpireVBO geomVBO (vboName, attribs, vboBufferSPtr, 0 , mesh->get_bounding_box (), true );
809811 geom->vbos ().push_back (geomVBO);
810812
811- SpireIBO geomIBO (iboName, useQuads ? SpireIBO::PRIMITIVE::QUADS : SpireIBO::PRIMITIVE::TRIANGLES,
812- sizeof (uint32_t ), iboBufferSPtr);
813+ SpireIBO geomIBO (iboName, SpireIBO::PRIMITIVE::TRIANGLES, sizeof (uint32_t ), iboBufferSPtr);
813814 geom->ibos ().push_back (geomIBO);
814815
815816 SpireText text;
0 commit comments