X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=tools%2Fviewer.cpp;fp=tools%2Fviewer.cpp;h=a1853e922f19485097ee644e80900b76c9913b1f;hp=d2a384f4e0b2afc112afd7fe3ea62ac3da676237;hb=3e9eb612a32ebe05030b934e0afb059f19cbb320;hpb=41391cd21cf35e979c1d2c88019b7425123500be;ds=sidebyside diff --git a/tools/viewer.cpp b/tools/viewer.cpp index d2a384f4..a1853e92 100644 --- a/tools/viewer.cpp +++ b/tools/viewer.cpp @@ -16,11 +16,13 @@ #include #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -48,6 +50,8 @@ private: Graphics::SimpleGLWindow window; Input::Mouse mouse; Resources resources; + GL::WindowView view; + GL::Pipeline pipeline; GL::Renderable *renderable; GL::AnimatedObject *anim_object; GL::AnimationPlayer *anim_player; @@ -86,6 +90,8 @@ private: Viewer::Viewer(int argc, char **argv): window(1024, 768, false), mouse(window), + view(window, window.get_gl_context()), + pipeline(view), renderable(0), anim_object(0), anim_player(0), @@ -177,6 +183,14 @@ Viewer::Viewer(int argc, char **argv): camera.set_up_direction(GL::Vector3(0, 0, 1)); update_camera(); + + GL::Pipeline::Pass &pass = pipeline.add_pass(0, *renderable); + pass.set_lighting(&lighting); + pass.set_depth_test(&GL::DepthTest::lequal()); + pass.set_blend(&GL::Blend::alpha()); + + view.set_content(&pipeline); + view.set_camera(&camera); } template @@ -219,16 +233,7 @@ void Viewer::tick() } window.tick(); - - GL::Framebuffer::system().clear(GL::COLOR_BUFFER_BIT|GL::DEPTH_BUFFER_BIT); - - GL::Bind bind_depth(GL::DepthTest::lequal()); - GL::Bind bind_blend(GL::Blend::alpha()); - GL::Renderer renderer(&camera); - renderer.set_lighting(&lighting); - renderable->render(renderer); - - window.swap_buffers(); + view.render(); } void Viewer::button_press(unsigned btn)