#include <msp/gl/tests.h>
#include <msp/gl/uniform.h>
#include <msp/input/keys.h>
-#include <msp/time/units.h>
#include <msp/time/utils.h>
#include "label.h"
#include "style.h"
else
shprog = 0;
+ if(keyboard)
+ set_state(FOCUS);
+
update_style();
if(mouse)
void Root::tick()
{
+ Time::TimeStamp t = Time::now();
+ Time::TimeDelta dt = (last_tick ? t-last_tick : Time::zero);
+ last_tick = t;
+
+ animate(dt);
+
if(tooltip_timeout && Time::now()>tooltip_timeout)
{
std::string tip;
}
}
-void Root::render() const
+void Root::render()
{
+ rebuild_hierarchy();
+
GL::Bind bind_blend(GL::Blend::alpha());
GL::Renderer renderer(&camera);
Widget::render(renderer);
}
+void Root::setup_frame(GL::Renderer &)
+{
+ rebuild_hierarchy();
+}
+
void Root::render(GL::Renderer &renderer, const GL::Tag &tag) const
{
if(tag.id)
camera.set_orthographic(geom.w, geom.h);
}
-void Root::on_geometry_change()
+void Root::on_size_change()
{
- Panel::on_geometry_change();
+ Panel::on_size_change();
update_camera();
}