]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/occludedscene.cpp
Use C++11 features with containers
[libs/gl.git] / source / render / occludedscene.cpp
index 7c043fa691c5ab578fc7da430244db471632bdc0..23d79df2ab71a8185bd79318cc3194f692a38bbb 100644 (file)
@@ -26,8 +26,8 @@ OccludedScene::~OccludedScene()
 {
        vector<unsigned> queries;
        queries.reserve(occluded_cache.size());
-       for(OccludedArray::iterator i=occluded_cache.begin(); i!=occluded_cache.end(); ++i)
-               queries.push_back(i->query);
+       for(OccludedRenderable &o: occluded_cache)
+               queries.push_back(o.query);
        glDeleteQueries(queries.size(), &queries[0]);
 }
 
@@ -58,9 +58,9 @@ void OccludedScene::populate_cache() const
                        occluded_cache[old_size+i].query = new_queries[i];
        }
 
-       OccludedArray::iterator j = occluded_cache.begin();
-       for(RenderableSet::iterator i=renderables.begin(); i!=renderables.end(); ++i, ++j)
-               j->renderable = *i;
+       auto j = occluded_cache.begin();
+       for(Renderable *r: renderables)
+               j++->renderable = r;
        for(; j!=occluded_cache.end(); ++j)
        {
                j->renderable = 0;
@@ -73,14 +73,14 @@ void OccludedScene::populate_cache() const
 void OccludedScene::setup_frame(Renderer &renderer)
 {
        populate_cache();
-       for(OccludedArray::const_iterator i=occluded_cache.begin(); i!=occluded_cache.end(); ++i)
-               i->renderable->setup_frame(renderer);
+       for(const OccludedRenderable &o: occluded_cache)
+               o.renderable->setup_frame(renderer);
 }
 
 void OccludedScene::finish_frame()
 {
-       for(OccludedArray::const_iterator i=occluded_cache.begin(); i!=occluded_cache.end(); ++i)
-               i->renderable->finish_frame();
+       for(const OccludedRenderable &o: occluded_cache)
+               o.renderable->finish_frame();
 }
 
 void OccludedScene::render(Renderer &renderer, Tag tag) const
@@ -93,8 +93,8 @@ void OccludedScene::render(Renderer &renderer, Tag tag) const
        const Camera *camera = renderer.get_camera();
        if(!camera)
        {
-               for(OccludedArray::const_iterator i=occluded_cache.begin(); i!=occluded_cache.end(); ++i)
-                       renderer.render(*i->renderable, tag);
+               for(const OccludedRenderable &o: occluded_cache)
+                       renderer.render(*o.renderable, tag);
                return;
        }
 
@@ -105,7 +105,7 @@ void OccludedScene::render(Renderer &renderer, Tag tag) const
 
        // Perform frustum culling and render any major occluders
        bool use_frustum = setup_frustum(renderer);
-       for(OccludedArray::iterator i=occluded_cache.begin(); (i!=occluded_cache.end() && i->renderable); ++i)
+       for(auto i=occluded_cache.begin(); (i!=occluded_cache.end() && i->renderable); ++i)
        {
                i->in_frustum = (!use_frustum || !frustum_cull(*i->renderable));
                if(!i->in_frustum)
@@ -128,7 +128,7 @@ void OccludedScene::render(Renderer &renderer, Tag tag) const
        }
 
        // Move all objects within the frustum to the beginning of the array
-       for(OccludedArray::iterator i=occluded_cache.begin(), j=i+renderables.size()-1; i!=j; )
+       for(auto i=occluded_cache.begin(), j=i+renderables.size()-1; i!=j; )
        {
                if(i->in_frustum)
                        ++i;
@@ -146,7 +146,7 @@ void OccludedScene::render(Renderer &renderer, Tag tag) const
                glDepthMask(false);
 
                // Fire off the occlusion queries
-               for(OccludedArray::const_iterator i=occluded_cache.begin(); (i!=occluded_cache.end() && i->in_frustum); ++i)
+               for(auto i=occluded_cache.begin(); (i!=occluded_cache.end() && i->in_frustum); ++i)
                        if(!i->occluder)
                        {
                                glBeginQuery(GL_ANY_SAMPLES_PASSED, i->query);
@@ -163,7 +163,7 @@ void OccludedScene::render(Renderer &renderer, Tag tag) const
        }
 
        // Render anything that has a chance of being visible
-       for(OccludedArray::const_iterator i=occluded_cache.begin(); (i!=occluded_cache.end() && i->in_frustum); ++i)
+       for(auto i=occluded_cache.begin(); (i!=occluded_cache.end() && i->in_frustum); ++i)
                if(!i->occluder)
                {
                        unsigned any_passed = 0;