#define MSP_GLTK_ROOT_H_
#include <sigc++/trackable.h>
+#include <msp/gl/blend.h>
#include <msp/gl/camera.h>
#include <msp/gl/program.h>
#include <msp/gl/renderable.h>
#include <msp/input/mouse.h>
#include <msp/input/touchscreen.h>
#include <msp/time/timestamp.h>
+#include "mspgltk_api.h"
#include "panel.h"
namespace Msp {
Due to its specialized nature it's recommended to not use it with Scenes or
other containers.
*/
-class Root: public Panel, public GL::Renderable, public sigc::trackable
+class MSPGLTK_API Root: public Panel, public GL::Renderable, public sigc::trackable
{
public:
sigc::signal<std::string, int, int> signal_tooltip;
int pointer_x;
int pointer_y;
Time::TimeStamp tooltip_timeout;
+ Time::TimeStamp last_tick;
Widget *tooltip_target;
Msp::GL::Camera camera;
Msp::GL::Program *shprog;
+ Msp::GL::Blend blend;
public:
/** Creates a Root widget for a window. The geometry is set to match the
virtual unsigned get_height() const { return geom.h; }
void tick();
- void render() const;
- virtual void render(GL::Renderer &, const GL::Tag & = GL::Tag()) const;
+ virtual void setup_frame(GL::Renderer &);
+ virtual void render(GL::Renderer &, GL::Tag = GL::Tag()) const;
private:
bool button_press_event(unsigned);
void get_touch(unsigned, int &, int &);
void update_camera();
- virtual void on_geometry_change();
+ virtual void on_size_change();
virtual void on_child_added(Widget &);
};