mirror of
https://github.com/Armored-Dragon/overte.git
synced 2025-03-11 16:13:16 +01:00
Merge pull request #15037 from amerhifi/quest-demo
case 21447: fixed quest debug crash when a case of _widths = 0 for polyline
This commit is contained in:
commit
fd46296e8c
1 changed files with 10 additions and 8 deletions
|
@ -183,18 +183,19 @@ void PolyLineEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPo
|
|||
|
||||
void PolyLineEntityRenderer::updateGeometry() {
|
||||
int maxNumVertices = std::min(_points.length(), _normals.length());
|
||||
|
||||
bool doesStrokeWidthVary = false;
|
||||
if (_widths.size() >= 0) {
|
||||
if (_widths.size() > 0) {
|
||||
float prevWidth = _widths[0];
|
||||
for (int i = 1; i < maxNumVertices; i++) {
|
||||
float width = PolyLineEntityItem::DEFAULT_LINE_WIDTH;
|
||||
if (i < _widths.length()) {
|
||||
width = _widths[i];
|
||||
}
|
||||
if (width != _widths[i - 1]) {
|
||||
float width = i < _widths.length() ? _widths[i] : PolyLineEntityItem::DEFAULT_LINE_WIDTH;
|
||||
if (width != prevWidth) {
|
||||
doesStrokeWidthVary = true;
|
||||
break;
|
||||
}
|
||||
if (i > _widths.length() + 1) {
|
||||
break;
|
||||
}
|
||||
prevWidth = width;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -206,12 +207,13 @@ void PolyLineEntityRenderer::updateGeometry() {
|
|||
|
||||
std::vector<PolylineVertex> vertices;
|
||||
vertices.reserve(maxNumVertices);
|
||||
|
||||
for (int i = 0; i < maxNumVertices; i++) {
|
||||
// Position
|
||||
glm::vec3 point = _points[i];
|
||||
|
||||
// uCoord
|
||||
float width = i < _widths.size() ? _widths[i] : PolyLineEntityItem::DEFAULT_LINE_WIDTH;
|
||||
|
||||
if (i > 0) { // First uCoord is 0.0f
|
||||
if (!_isUVModeStretch) {
|
||||
accumulatedDistance += glm::distance(point, _points[i - 1]);
|
||||
|
|
Loading…
Reference in a new issue