From e6a14293356dd82517960205824c158f3c8cde08 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 6 Oct 2009 09:28:41 +0000 Subject: [PATCH] Refactored the ::getOrCreate*Object() methods to clean them up and fix a bug in the getOrCreateElementsBuffers method. --- src/osg/Geometry.cpp | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/osg/Geometry.cpp b/src/osg/Geometry.cpp index 05f552f1d..da522d1a0 100644 --- a/src/osg/Geometry.cpp +++ b/src/osg/Geometry.cpp @@ -1089,20 +1089,16 @@ osg::VertexBufferObject* Geometry::getOrCreateVertexBufferObject() ArrayList arrayList; getArrayList(arrayList); - osg::VertexBufferObject* vbo = 0; - ArrayList::iterator vitr; for(vitr = arrayList.begin(); - vitr != arrayList.end() && !vbo; + vitr != arrayList.end(); ++vitr) { osg::Array* array = *vitr; - if (array->getVertexBufferObject()) vbo = array->getVertexBufferObject(); + if (array->getVertexBufferObject()) return array->getVertexBufferObject(); } - if (!vbo) vbo = new osg::VertexBufferObject; - - return vbo; + return new osg::VertexBufferObject; } osg::ElementBufferObject* Geometry::getOrCreateElementBufferObject() @@ -1110,20 +1106,16 @@ osg::ElementBufferObject* Geometry::getOrCreateElementBufferObject() DrawElementsList drawElementsList; getDrawElementsList(drawElementsList); - osg::ElementBufferObject* ebo = 0; - DrawElementsList::iterator deitr; for(deitr = drawElementsList.begin(); deitr != drawElementsList.end(); ++deitr) { osg::DrawElements* elements = *deitr; - if (!elements->getElementBufferObject()) ebo = elements->getElementBufferObject(); + if (elements->getElementBufferObject()) return elements->getElementBufferObject(); } - if (!ebo) ebo = new osg::ElementBufferObject; - - return ebo; + return new osg::ElementBufferObject; } void Geometry::setUseVertexBufferObjects(bool flag)