X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Fobject.cpp;h=ccc7b97ecdd0086db8f6b6029fc9546e94b82771;hb=9813f8711628a0fbe786406e974dc33546dc9cee;hp=34eebec782472880484179df7cf2175303086bab;hpb=f19366d32cc29287a2730cfba90893e407754081;p=libs%2Fgl.git diff --git a/source/render/object.cpp b/source/render/object.cpp index 34eebec7..ccc7b97e 100644 --- a/source/render/object.cpp +++ b/source/render/object.cpp @@ -130,8 +130,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 +139,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 +149,8 @@ void Object::render(Renderer &renderer, Tag tag) const void Object::render(Renderer &renderer, const ObjectInstance &inst, Tag tag) const { unsigned lod = min(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 +158,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 +167,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,7 +188,7 @@ void Object::resource_removed(Resource &res) } -Object::Loader::Loader(Object &o, Collection *c): +Object::Loader::Loader(Object &o, Collection &c): LodLoader(o, 0, c) { add("bounding_sphere_hint", &Loader::bounding_sphere_hint); @@ -207,13 +207,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(o, c), +Object::LodLoader::LodLoader(Object &o, unsigned i, Collection &c): + DataFile::CollectionObjectLoader(o, &c), index(i), lod(obj.get_lod(index, "Object::LodLoader::LodLoader")) {