X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=tools%2Fviewer.cpp;h=4ae9c87b26c7483bdb1ad7c4fd2b1637d5d80aa0;hb=bed45cf18a592f4dc3d899a48610eaea056f69f3;hp=05f85de2430c5f2854ac40c9fc6e2015d6d48a64;hpb=4bc50a3c977af89ab4a79aa777bb99322cda053d;p=libs%2Fgl.git diff --git a/tools/viewer.cpp b/tools/viewer.cpp index 05f85de2..4ae9c87b 100644 --- a/tools/viewer.cpp +++ b/tools/viewer.cpp @@ -39,6 +39,8 @@ private: list resource_locations; string animation_name; string renderable_name; + Graphics::WindowOptions wnd_opts; + Graphics::GLOptions gl_opts; Options(int, char **); }; @@ -57,7 +59,9 @@ private: }; Options opts; - Graphics::SimpleGLWindow window; + Graphics::Display display; + Graphics::Window window; + Graphics::GLContext gl_ctx; Input::Mouse mouse; Resources resources; GL::WindowView view; @@ -104,13 +108,19 @@ Viewer::Options::Options(int argc, char **argv) getopt.add_option('a', "animation", animation_name, GetOpt::REQUIRED_ARG); getopt.add_argument("renderable", renderable_name); getopt(argc, argv); + + wnd_opts.width = 1024; + wnd_opts.height = 768; + gl_opts.gl_version_major = Graphics::GLOptions::LATEST_VERSION; + gl_opts.core_profile = true; } Viewer::Viewer(int argc, char **argv): opts(argc, argv), - window(1024, 768, false), + window(display, opts.wnd_opts), + gl_ctx(window, opts.gl_opts), mouse(window), - view(window, window.get_gl_context()), + view(window, gl_ctx), pipeline(view), renderable(0), anim_object(0), @@ -165,9 +175,16 @@ Viewer::Viewer(int argc, char **argv): renderable = load(opts.renderable_name); else if(ext==".scene") { - GL::SimpleScene *scene = new GL::SimpleScene; - DataFile::load(*scene, opts.renderable_name, resources); - renderable = scene; + if(FS::exists(opts.renderable_name)) + { + GL::Scene::GenericLoader ldr(resources); + IO::BufferedFile in(opts.renderable_name); + DataFile::Parser parser(in, opts.renderable_name); + ldr.load(parser); + renderable = ldr.get_scene(); + } + else + renderable = &resources.get(opts.renderable_name); } else throw usage_error("Unknown renderable type"); @@ -243,7 +260,7 @@ void Viewer::tick() anim_player->tick(dt); } - window.tick(); + display.tick(); view.render(); }