+ RefPtr<Material> mat=new Material;
+ load_sub(*mat);
+ coll->add(format("_%p", mat.get()), mat.get());
+ obj.material=mat.release();
+}
+
+void Object::Loader::mesh(const string &n)
+{
+ obj.meshes[0]=coll->get<Mesh>(n);
+}
+
+void Object::Loader::shader_texture(const string &n)
+{
+ if(!obj.technique)
+ throw InvalidState("Can't specify shader textures without a Technique");
+
+ string::size_type eqsign=n.find('=');
+ if(eqsign==string::npos)
+ throw InvalidParameterValue("Must specify texture slot name");
+
+ obj.textures[obj.technique->get_texture_index(n.substr(0, eqsign))]=coll->get<Texture>(n.substr(eqsign+1));
+}
+
+void Object::Loader::technique(const string &n)
+{
+ obj.technique=coll->get<Technique>(n);
+ obj.textures.resize(obj.technique->get_n_textures());
+ obj.material=obj.technique->get_material();