X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=tools%2Fviewer.cpp;h=a1853e922f19485097ee644e80900b76c9913b1f;hp=b05e6695c0a9d2438295ce2421d60e60bc75024d;hb=HEAD;hpb=11266e8093e56524a68de1d0a08d275de95c56a0 diff --git a/tools/viewer.cpp b/tools/viewer.cpp index b05e6695..36a5dc9b 100644 --- a/tools/viewer.cpp +++ b/tools/viewer.cpp @@ -5,14 +5,16 @@ #include #include #include -#include +#include +#include #include #include #include #include #include +#include +#include #include -#include #include #include #include @@ -23,7 +25,6 @@ #include #include #include -#include #include #include #include @@ -43,7 +44,6 @@ private: string animation_name; string renderable_name; Graphics::WindowOptions wnd_opts; - Graphics::GLOptions gl_opts; Options(int, char **); }; @@ -64,7 +64,7 @@ private: Options opts; Graphics::Display display; Graphics::Window window; - Graphics::GLContext gl_ctx; + GL::Device gl_device; Input::Mouse mouse; Resources resources; GL::WindowView view; @@ -72,7 +72,7 @@ private: GL::Renderable *renderable; GL::AnimatedObject *anim_object; GL::AnimationPlayer *anim_player; - GL::Light light; + GL::DirectionalLight light; GL::Lighting lighting; GL::Camera camera; float yaw; @@ -126,16 +126,14 @@ Viewer::Options::Options(int argc, char **argv) wnd_opts.width = lexical_cast(m[1].str); wnd_opts.height = lexical_cast(m[2].str); } - gl_opts.gl_version_major = Graphics::GLOptions::LATEST_VERSION; - gl_opts.core_profile = true; } Viewer::Viewer(int argc, char **argv): opts(argc, argv), window(display, opts.wnd_opts), - gl_ctx(window, opts.gl_opts), + gl_device(window), mouse(window), - view(window, gl_ctx), + view(window), sequence(0), renderable(0), anim_object(0), @@ -178,7 +176,7 @@ Viewer::Viewer(int argc, char **argv): object = new GL::Object; GL::Technique *tech = new GL::Technique; - tech->add_pass(0); + tech->add_method(0); object->set_mesh(mesh); object->set_technique(tech); renderable = object; @@ -196,7 +194,7 @@ Viewer::Viewer(int argc, char **argv): IO::BufferedFile in(opts.renderable_name); DataFile::Parser parser(in, opts.renderable_name); ldr.load(parser); - renderable = ldr.get_scene(); + renderable = ldr.get_object(); } else renderable = &resources.get(opts.renderable_name); @@ -205,6 +203,7 @@ Viewer::Viewer(int argc, char **argv): { GL::SequenceTemplate *tmpl = load(opts.renderable_name); GL::SequenceBuilder bld(*tmpl); + bld.set_debug_name(FS::basename(opts.renderable_name)); sequence = bld.build(view); } else @@ -227,19 +226,21 @@ Viewer::Viewer(int argc, char **argv): mouse.signal_button_release.connect(sigc::bind_return(sigc::mem_fun(this, &Viewer::button_release), false)); mouse.signal_axis_motion.connect(sigc::bind_return(sigc::mem_fun(this, &Viewer::axis_motion), false)); - light.set_position(GL::Vector4(0, 0, 1, 0)); + light.set_direction(GL::Vector3(0, 0, -1)); lighting.attach(light); + camera.set_debug_name("Camera"); camera.set_up_direction(GL::Vector3(0, 0, 1)); update_camera(); if(!sequence) { - sequence = new GL::Sequence(view); + sequence = new GL::Sequence(); + sequence->set_debug_name("Sequence"); + sequence->set_clear_enabled(true); GL::Sequence::Step &step = sequence->add_step(0, *renderable); step.set_lighting(&lighting); - step.set_depth_test(&GL::DepthTest::lequal()); - step.set_blend(&GL::Blend::alpha()); + step.set_depth_test(GL::LEQUAL); } view.set_content(sequence); @@ -369,7 +370,7 @@ void Viewer::update_light() float sy = sin(light_yaw); float cp = cos(light_pitch); float sp = sin(light_pitch); - light.set_position(GL::Vector4(-cy*cp, -sy*cp, -sp, 0)); + light.set_direction(GL::Vector3(cy*cp, sy*cp, sp)); }