+Program *Resources::create_program(const string &name)
+{
+ string ext = FS::extpart(name);
+ if(ext==".shader")
+ return 0;
+
+ if(RefPtr<IO::Seekable> io = open_raw(name))
+ {
+ ProgramCompiler compiler;
+ compiler.compile(*io, this, name);
+ RefPtr<Program> program = new Program;
+ compiler.add_shaders(*program);
+ program->link();
+ return program.release();
+ }
+
+ return 0;
+}
+