X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Fengineer.cpp;h=9db63fe0c70c22f81eb68074e88067fb6ade1fd6;hb=2073ac9922720867bdc6871d4a9b4cfcaf6a3b97;hp=59aaeeca9f9e3aef5677ccc5196c7a0d6b57a1a1;hpb=fcaa883538f98bac71ba1a90f98950bb2aa08d88;p=r2c2.git diff --git a/source/engineer/engineer.cpp b/source/engineer/engineer.cpp index 59aaeec..9db63fe 100644 --- a/source/engineer/engineer.cpp +++ b/source/engineer/engineer.cpp @@ -84,8 +84,8 @@ Engineer::Engineer(int argc, char **argv): layout.signal_block_reserved.connect(sigc::mem_fun(this, &Engineer::block_reserved)); layout.signal_emergency.connect(sigc::mem_fun(this, &Engineer::set_status)); layout.get_driver().signal_sensor.connect(sigc::mem_fun(this, &Engineer::sensor_event)); - if(FS::exists("engineer.state")) - DataFile::load(layout, "engineer.state"); + if(FS::exists(options.state_fn)) + DataFile::load(layout, options.state_fn); if(options.network) { @@ -97,14 +97,20 @@ Engineer::Engineer(int argc, char **argv): DataFile::load(arrow_mesh, "arrow.mesh"); pipeline.set_camera(&camera); - pipeline.add_renderable(layout_3d.get_scene()); + pipeline.add_renderable_for_pass(layout_3d.get_scene(), 0); + pipeline.add_renderable_for_pass(layout_3d.get_path_scene(), "unlit"); - light.set_position(0, -0.259, 0.966, 0); + light.set_position(GL::Vector4(0, -0.259, 0.966, 0)); + light.set_diffuse(GL::Color(0.9)); + lighting.set_ambient(GL::Color(0.4)); lighting.attach(0, light); - GL::PipelinePass &pass = pipeline.add_pass(0); - pass.depth_test = &GL::DepthTest::lequal(); - pass.lighting = &lighting; + GL::PipelinePass *pass = &pipeline.add_pass(0); + pass->depth_test = &GL::DepthTest::lequal(); + pass->lighting = &lighting; + + pass = &pipeline.add_pass("unlit"); + pass->depth_test = &GL::DepthTest::lequal(); view_all(); @@ -125,7 +131,7 @@ Engineer::~Engineer() layout.get_driver().flush(); if(!options.simulate) - layout.save_trains("engineer.state"); + layout.save_trains(options.state_fn); delete overlay; delete root; @@ -192,10 +198,6 @@ void Engineer::tick() GL::Framebuffer::system().clear(GL::COLOR_BUFFER_BIT|GL::DEPTH_BUFFER_BIT); pipeline.render_all(); - { - GL::Bind depth(GL::DepthTest::lequal()); - layout_3d.get_path_scene().render(); - } { GL::Bind blend(GL::Blend::alpha()); overlay->render(0);