X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=tools%2Fviewer.cpp;h=d2a384f4e0b2afc112afd7fe3ea62ac3da676237;hp=2582b887ffcd51256fcfc0b0bd40be9d6e0a6bef;hb=ff85f90d33023d908c534b0bf5d9a65e9fc2cce2;hpb=2bcdae2a8c8067a7c4a413fabe60283fadf6713b diff --git a/tools/viewer.cpp b/tools/viewer.cpp index 2582b887..d2a384f4 100644 --- a/tools/viewer.cpp +++ b/tools/viewer.cpp @@ -16,7 +16,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -143,9 +145,12 @@ Viewer::Viewer(int argc, char **argv): resources.add("__.object", object); } else if(ext==".object") + renderable = load(renderable_name); + else if(ext==".scene") { - object = load(renderable_name); - renderable = object; + GL::SimpleScene *scene = new GL::SimpleScene; + DataFile::load(*scene, renderable_name, resources); + renderable = scene; } else throw usage_error("Unknown renderable type"); @@ -217,12 +222,11 @@ void Viewer::tick() GL::Framebuffer::system().clear(GL::COLOR_BUFFER_BIT|GL::DEPTH_BUFFER_BIT); - camera.apply(); - - GL::Bind bind_lighting(lighting); GL::Bind bind_depth(GL::DepthTest::lequal()); GL::Bind bind_blend(GL::Blend::alpha()); - renderable->render(); + GL::Renderer renderer(&camera); + renderer.set_lighting(&lighting); + renderable->render(renderer); window.swap_buffers(); }