From 2da766ff1be70489e415a8c6decafc199049dd24 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 20 Nov 2014 10:45:05 +0000 Subject: [PATCH] From Marc Helbling, "I've come across scenes that contains geometries with initialized but empty vertex arrays and primitives and that would make some optimizers crash. The submission therefore only contains a test on the size of the vertex array for the VertexCacheMissVisitor and the VertexAccessOrderVisitor visitors." git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14503 16af8721-9629-0410-8352-f15c8da7e697 --- src/osgUtil/MeshOptimizers.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/osgUtil/MeshOptimizers.cpp b/src/osgUtil/MeshOptimizers.cpp index 250f339e8..e157df720 100644 --- a/src/osgUtil/MeshOptimizers.cpp +++ b/src/osgUtil/MeshOptimizers.cpp @@ -975,7 +975,7 @@ struct CacheRecorder : public TriangleIndexFunctor void VertexCacheMissVisitor::doGeometry(Geometry& geom) { Array* vertArray = geom.getVertexArray(); - if (!vertArray) + if (!vertArray || vertArray->getNumElements()==0) return; Geometry::PrimitiveSetList& primSets = geom.getPrimitiveSetList(); CacheRecorder recorder(_cacheSize); @@ -1117,7 +1117,7 @@ inline void reorderDrawElements(DE& drawElements, void VertexAccessOrderVisitor::optimizeOrder(Geometry& geom) { Array* vertArray = geom.getVertexArray(); - if (!vertArray) + if (!vertArray || vertArray->getNumElements()==0) return; Geometry::PrimitiveSetList& primSets = geom.getPrimitiveSetList(); VertexReorder vr(vertArray->getNumElements());