diff --git a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp index 286efb5fb8..a34a1814b4 100644 --- a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.cpp @@ -161,8 +161,12 @@ void RenderablePolyLineEntityItem::update(const quint64& now) { uniforms.color = toGlm(getXColor()); memcpy(&_uniformBuffer.edit(), &uniforms, sizeof(PolyLineUniforms)); if (_pointsChanged || _strokeWidthsChanged || _normalsChanged) { - updateVertices(); - updateGeometry(); + QWriteLocker lock(&_quadReadWriteLock); + _empty = (_points.size() < 2 || _normals.size() < 2 || _strokeWidths.size() < 2); + if (!_empty) { + updateVertices(); + updateGeometry(); + } } } @@ -170,8 +174,7 @@ void RenderablePolyLineEntityItem::update(const quint64& now) { void RenderablePolyLineEntityItem::render(RenderArgs* args) { checkFading(); - QWriteLocker lock(&_quadReadWriteLock); - if (_points.size() < 2 || _normals.size () < 2 || _strokeWidths.size() < 2) { + if (_empty) { return; } diff --git a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h index 44b29bdec1..eca6b7035a 100644 --- a/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h +++ b/libraries/entities-renderer/src/RenderablePolyLineEntityItem.h @@ -50,6 +50,7 @@ protected: gpu::BufferPointer _verticesBuffer; gpu::BufferView _uniformBuffer; unsigned int _numVertices; + bool _empty { true }; QVector _vertices; };