]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/object.cpp
Use default member initializers for simple types
[libs/gl.git] / source / render / object.cpp
index 98eb05f7cdb53deb5eb9e7703f48a5aebfdde0cf..9a9f759ccf4b53a2c255617b01ade7e12cbc0b42 100644 (file)
@@ -17,13 +17,11 @@ namespace GL {
 const Matrix Object::identity_matrix;
 
 Object::Object():
-       lods(1),
-       lod0_watched(false)
+       lods(1)
 { }
 
 Object::Object(const Mesh *m, const Technique *t):
-       lods(1),
-       lod0_watched(false)
+       Object()
 {
        set_mesh(m);
        set_technique(t);
@@ -130,8 +128,8 @@ const Technique *Object::get_technique(unsigned i) const
 
 void Object::render(Renderer &renderer, Tag tag) const
 {
-       const RenderPass *pass = get_pass(tag, 0);
-       if(!pass)
+       const RenderMethod *method = get_method(tag, 0);
+       if(!method)
                return;
 
        const Mesh *mesh = lods.front().mesh;
@@ -139,7 +137,7 @@ void Object::render(Renderer &renderer, Tag tag) const
                throw logic_error("no mesh");
 
        Renderer::Push push(renderer);
-       pass->apply(renderer);
+       method->apply(renderer);
 
        setup_render(renderer, tag);
        mesh->draw(renderer);
@@ -149,8 +147,8 @@ void Object::render(Renderer &renderer, Tag tag) const
 void Object::render(Renderer &renderer, const ObjectInstance &inst, Tag tag) const
 {
        unsigned lod = min<unsigned>(inst.get_level_of_detail(renderer), lods.size()-1);
-       const RenderPass *pass = get_pass(tag, lod);
-       if(!pass)
+       const RenderMethod *method = get_method(tag, lod);
+       if(!method)
                return;
 
        const Mesh *mesh = lods[lod].mesh;
@@ -158,7 +156,7 @@ void Object::render(Renderer &renderer, const ObjectInstance &inst, Tag tag) con
                throw logic_error("no mesh");
 
        Renderer::Push push(renderer);
-       pass->apply(renderer);
+       method->apply(renderer);
 
        setup_render(renderer, tag);
        inst.setup_render(renderer, tag);
@@ -167,12 +165,12 @@ void Object::render(Renderer &renderer, const ObjectInstance &inst, Tag tag) con
        finish_render(renderer, tag);
 }
 
-const RenderPass *Object::get_pass(Tag tag, unsigned lod) const
+const RenderMethod *Object::get_method(Tag tag, unsigned lod) const
 {
        const Technique *tech = lods[lod].technique;
        if(!tech)
                throw logic_error("no technique");
-       return tech->find_pass(tag);
+       return tech->find_method(tag);
 }
 
 void Object::resource_loaded(Resource &res)
@@ -188,19 +186,8 @@ void Object::resource_removed(Resource &res)
 }
 
 
-Object::Loader::Loader(Object &o):
-       LodLoader(o, 0, 0)
-{
-       init();
-}
-
 Object::Loader::Loader(Object &o, Collection &c):
-       LodLoader(o, 0, &c)
-{
-       init();
-}
-
-void Object::Loader::init()
+       LodLoader(o, 0, c)
 {
        add("bounding_sphere_hint", &Loader::bounding_sphere_hint);
        add("level_of_detail", &Loader::level_of_detail);
@@ -218,13 +205,13 @@ void Object::Loader::bounding_sphere_hint(float x, float y, float z, float r)
 
 void Object::Loader::level_of_detail(unsigned i)
 {
-       LodLoader ldr(obj, i, coll);
+       LodLoader ldr(obj, i, get_collection());
        load_sub_with(ldr);
 }
 
 
-Object::LodLoader::LodLoader(Object &o, unsigned i, Collection *c):
-       DataFile::CollectionObjectLoader<Object>(o, c),
+Object::LodLoader::LodLoader(Object &o, unsigned i, Collection &c):
+       DataFile::CollectionObjectLoader<Object>(o, &c),
        index(i),
        lod(obj.get_lod(index, "Object::LodLoader::LodLoader"))
 {