X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fresources%2Fresources.cpp;h=dca3e8d3d82158947b33ae743a3deb0cf6ecf0ee;hb=9d61da0868b3e61ab0cfb1bc98dcfd8374aa3356;hp=a2d9219b0f6075a97f7be5d6d54b3341a98f88e4;hpb=83ab54cf1339fcac560daa90496e6d4e956f7367;p=libs%2Fgl.git diff --git a/source/resources/resources.cpp b/source/resources/resources.cpp index a2d9219b..dca3e8d3 100644 --- a/source/resources/resources.cpp +++ b/source/resources/resources.cpp @@ -16,6 +16,7 @@ #include "resourcemanager.h" #include "resources.h" #include "sampler.h" +#include "scene.h" #include "technique.h" #include "texture1d.h" #include "texture2d.h" @@ -51,6 +52,7 @@ Resources::Resources(): add_type().keyword("pose"); add_type().keyword("shader").creator(&Resources::create_program); add_type().suffix(".samp").keyword("sampler"); + add_type().suffix(".scene").creator(&Resources::create_scene); add_type().suffix(".tech").keyword("technique"); add_type().base().suffix(".tex1d").keyword("texture1d"); add_type().base().suffix(".tex2d").suffix(".png").suffix(".jpg").keyword("texture2d").creator(&Resources::create_texture2d); @@ -124,6 +126,19 @@ Mesh *Resources::create_mesh(const string &name) return 0; } +Scene *Resources::create_scene(const string &name) +{ + if(RefPtr io = open_raw(name)) + { + DataFile::Parser parser(*io, name); + Scene::GenericLoader ldr(*this); + ldr.load(parser); + return ldr.get_scene(); + } + + return 0; +} + Texture2D *Resources::create_texture2d(const string &name) { string ext = FS::extpart(name);