summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/extras/3dtext/qtext3dgeometry.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/extras/3dtext/qtext3dgeometry.cpp b/src/extras/3dtext/qtext3dgeometry.cpp
index 529c93b79..49db6e4a6 100644
--- a/src/extras/3dtext/qtext3dgeometry.cpp
+++ b/src/extras/3dtext/qtext3dgeometry.cpp
@@ -65,7 +65,7 @@ namespace Qt3DExtras {
namespace {
-using IndexType = unsigned short;
+using IndexType = unsigned int;
struct TriangulationData {
struct Outline {
@@ -190,7 +190,7 @@ void QText3DGeometryPrivate::init()
m_normalAttribute->setCount(0);
m_indexAttribute->setAttributeType(Qt3DRender::QAttribute::IndexAttribute);
- m_indexAttribute->setVertexBaseType(Qt3DRender::QAttribute::UnsignedShort);
+ m_indexAttribute->setVertexBaseType(Qt3DRender::QAttribute::UnsignedInt);
m_indexAttribute->setBuffer(m_indexBuffer);
m_indexAttribute->setCount(0);
@@ -328,6 +328,9 @@ void QText3DGeometryPrivate::update()
const int end = data.outlines[i].end;
const int verticesIndexBegin = verticesIndex;
+ if (begin == end)
+ continue;
+
QVector3D prevNormal = QVector3D::crossProduct(
vertices[data.outlineIndices[end - 1] + numVertices].position - vertices[data.outlineIndices[end - 1]].position,
vertices[data.outlineIndices[begin]].position - vertices[data.outlineIndices[end - 1]].position).normalized();