From 75af025c5579eef64c316366c3ca635031c04586 Mon Sep 17 00:00:00 2001 From: Marc Helbling Date: Fri, 1 Dec 2017 12:26:00 +0100 Subject: [PATCH] Improve SharedArrayOptimizer When an array is shared within and outside a geometry, it's still worth it and safe to recreate the reference within each individual geometry. --- 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 52ff810b7..7f95113bc 100644 --- a/src/osgUtil/MeshOptimizers.cpp +++ b/src/osgUtil/MeshOptimizers.cpp @@ -1207,8 +1207,8 @@ void SharedArrayOptimizer::findDuplicatedUVs(const osg::Geometry& geometry) for(unsigned int id = 0 ; id != geometry.getNumTexCoordArrays() ; ++ id) { const osg::Array* channel = geometry.getTexCoordArray(id); - // test if array is shared outside the geometry - if(channel && static_cast(channel->referenceCount()) == arrayPointerCounter[channel]) + // test if array is shared inside the geometry + if(channel && arrayPointerCounter[channel] > 1) { std::map::const_iterator reference = references.find(channel); if(reference == references.end())