]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/mesh.cpp
Use default member initializers for simple types
[libs/gl.git] / source / core / mesh.cpp
index de05102a358a5665a51b12cd0c345c21441052d5..4679e3a3f43271fe91d9119e615ac30136d3b9a2 100644 (file)
@@ -1,42 +1,20 @@
-#include <msp/gl/extensions/arb_vertex_array_object.h>
-#include <msp/gl/extensions/arb_vertex_buffer_object.h>
-#include <msp/gl/extensions/arb_vertex_shader.h>
-#include <msp/gl/extensions/khr_debug.h>
 #include "buffer.h"
 #include "error.h"
 #include "mesh.h"
 #include "renderer.h"
 #include "resourcemanager.h"
-#include "vertexsetup.h"
 
 using namespace std;
 
 namespace Msp {
 namespace GL {
 
-Mesh::Mesh(ResourceManager *rm)
+Mesh::Mesh(const VertexFormat &f):
+       Mesh()
 {
-       init(rm);
-}
-
-Mesh::Mesh(const VertexFormat &f, ResourceManager *rm)
-{
-       init(rm);
        storage(f);
 }
 
-void Mesh::init(ResourceManager *rm)
-{
-       vbuf = 0;
-       ibuf = 0;
-       dirty = 0;
-       disallow_rendering = false;
-       face_winding = NON_MANIFOLD;
-
-       if(rm)
-               set_manager(rm);
-}
-
 Mesh::~Mesh()
 {
        set_manager(0);
@@ -129,7 +107,7 @@ void Mesh::add_batch(const Batch &b)
                bool reallocate = (batches.size()==batches.capacity());
                if(reallocate)
                {
-                       for(vector<Batch>::iterator i=batches.end(); i!=batches.begin(); )
+                       for(auto i=batches.end(); i!=batches.begin(); )
                                (--i)->use_buffer(0);
                }
 
@@ -138,10 +116,10 @@ void Mesh::add_batch(const Batch &b)
                if(reallocate)
                {
                        prev = 0;
-                       for(vector<Batch>::iterator i=batches.begin(); i!=batches.end(); ++i)
+                       for(Batch &a: batches)
                        {
-                               i->use_buffer(ibuf, prev);
-                               prev = &*i;
+                               a.use_buffer(ibuf, prev);
+                               prev = &a;
                        }
                }
                else
@@ -156,8 +134,8 @@ void Mesh::add_batch(const Batch &b)
                        batches.back().set_index_type(existing_type);
                else
                {
-                       for(vector<Batch>::iterator i=batches.begin(); i!=batches.end(); ++i)
-                               i->set_index_type(added_type);
+                       for(Batch &a: batches)
+                               a.set_index_type(added_type);
                }
        }
 
@@ -202,13 +180,13 @@ void Mesh::draw(Renderer &renderer, const VertexSetup *vs, unsigned count) const
 
        if(!count)
        {
-               for(vector<Batch>::const_iterator i=batches.begin(); i!=batches.end(); ++i)
-                       renderer.draw(*i);
+               for(const Batch &b: batches)
+                       renderer.draw(b);
        }
        else
        {
-               for(vector<Batch>::const_iterator i=batches.begin(); i!=batches.end(); ++i)
-                       renderer.draw_instanced(*i, count);
+               for(const Batch &b: batches)
+                       renderer.draw_instanced(b, count);
        }
 }
 
@@ -226,9 +204,9 @@ Resource::AsyncLoader *Mesh::load(IO::Seekable &io, const Resources *)
        return new AsyncLoader(*this, io);
 }
 
-UInt64 Mesh::get_data_size() const
+uint64_t Mesh::get_data_size() const
 {
-       UInt64 size = 0;
+       uint64_t size = 0;
        if(vbuf)
                size += vbuf->get_size();
        if(ibuf)
@@ -274,14 +252,14 @@ Mesh::Loader::Loader(Mesh &m, bool g):
        add("winding",  &Mesh::face_winding);
 }
 
-void Mesh::Loader::storage(const vector<VertexAttribute> &a)
+void Mesh::Loader::storage(const vector<VertexAttribute> &attrs)
 {
-       if(a.empty())
+       if(attrs.empty())
                throw invalid_argument("No vertex attributes");
 
        VertexFormat fmt;
-       for(vector<VertexAttribute>::const_iterator i=a.begin(); i!=a.end(); ++i)
-               fmt = (fmt, *i);
+       for(VertexAttribute a: attrs)
+               fmt = (fmt, a);
        obj.storage(fmt);
 }