-/* $Id$
-
-This file is part of the MSP Märklin suite
-Copyright © 2010 Mikkosoft Productions, Mikko Rasa
-Distributed under the GPL
-*/
-
#include <msp/gl/tests.h>
#include <msp/gltk/button.h>
#include <msp/gltk/image.h>
-#include "libmarklin/vehicle.h"
-#include "libmarklin/vehicletype.h"
+#include "libr2c2/vehicle.h"
+#include "libr2c2/vehicletype.h"
#include "engineer.h"
#include "trainview.h"
using namespace Msp;
-using namespace Marklin;
+using namespace R2C2;
TrainView::TrainView(Engineer &e, const Train &t):
- GLtk::Widget(e.get_ui_resources()),
- GLtk::Panel(e.get_ui_resources()),
engineer(e),
train(t),
mode(SIDE),
set_size(300, 330);
tex.set_min_filter(GL::LINEAR);
- tex.storage(GL::RGB, 280, 280, 0);
+ tex.storage(GL::RGB, 280, 280);
tex.image(0, GL::RGB, GL::UNSIGNED_BYTE, 0);
fbo.attach(GL::COLOR_ATTACHMENT0, tex, 0);
depth.storage(GL::DEPTH_COMPONENT, 280, 280);
pipeline.add_renderable(engineer.get_layout_3d().get_scene());
- GL::PipelinePass *pass = &pipeline.add_pass(0);
- pass->depth_test = &GL::DepthTest::lequal();
- pass->lighting = &engineer.get_lighting();
+ GL::Pipeline::Pass *pass = &pipeline.add_pass(0);
+ pass->set_depth_test(&GL::DepthTest::lequal());
+ pass->set_lighting(&engineer.get_lighting());
GLtk::Image *image;
- add(*(image = new GLtk::Image(res, &tex)));
+ add(*(image = new GLtk::Image(&tex)));
image->set_geometry(GLtk::Geometry(10, 40, geom.w-20, geom.h-50));
GLtk::Button *btn;
- add(*(btn = new GLtk::Button(res, "Roof")));
+ add(*(btn = new GLtk::Button("Roof")));
btn->set_geometry(GLtk::Geometry(10, 10, 36, 25));
btn->signal_clicked.connect(sigc::bind(sigc::mem_fun(this, &TrainView::set_mode), ROOF));
- add(*(btn = new GLtk::Button(res, "Side")));
+ add(*(btn = new GLtk::Button("Side")));
btn->set_geometry(GLtk::Geometry(46, 10, 36, 25));
btn->signal_clicked.connect(sigc::bind(sigc::mem_fun(this, &TrainView::set_mode), SIDE));
- add(*(btn = new GLtk::Button(res, "Head")));
+ add(*(btn = new GLtk::Button("Head")));
btn->set_geometry(GLtk::Geometry(82, 10, 36, 25));
btn->signal_clicked.connect(sigc::bind(sigc::mem_fun(this, &TrainView::set_mode), HEAD));
- add(*(tgl_forward = new GLtk::Toggle(res, "Fwd")));
+ add(*(tgl_forward = new GLtk::Toggle("Fwd")));
tgl_forward->set_geometry(GLtk::Geometry(118, 8, 36, 27));
tgl_forward->set_value(true);
tgl_forward->signal_toggled.connect(sigc::mem_fun(this, &TrainView::set_forward));
- add(*(btn = new GLtk::Button(res, "Close")));
+ add(*(btn = new GLtk::Button("Close")));
btn->set_geometry(GLtk::Geometry(geom.w-46, 10, 36, 25));
btn->signal_clicked.connect(sigc::mem_fun(this, &TrainView::close_clicked));
void TrainView::prepare()
{
const Vehicle &veh = train.get_vehicle(0);
- const Point &pos = veh.get_position();
+ const Vector &pos = veh.get_position();
float angle = veh.get_direction();
if(!forward)
angle += M_PI;
GL::Bind _bind_fbo(fbo);
fbo.clear(GL::COLOR_BUFFER_BIT|GL::DEPTH_BUFFER_BIT);
- pipeline.render_all();
+ pipeline.render();
}
void TrainView::button_release(int x, int y, unsigned btn)