]> git.tdb.fi Git - libs/gltk.git/commitdiff
Add a render method to Root that takes care of proper matrices
authorMikko Rasa <tdb@tdb.fi>
Mon, 28 Feb 2011 15:27:15 +0000 (15:27 +0000)
committerMikko Rasa <tdb@tdb.fi>
Mon, 28 Feb 2011 15:27:15 +0000 (15:27 +0000)
source/root.cpp
source/root.h

index fbb4cc6e5efc887539228a79f0d2999240ba0bf2..17416469fbb7961bc5c5ca6bb66973cda0a0fa14 100644 (file)
@@ -5,6 +5,7 @@ Copyright © 2007-2009  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
 
+#include <msp/gl/blend.h>
 #include <msp/input/keys.h>
 #include <msp/time/units.h>
 #include <msp/time/utils.h>
@@ -78,6 +79,15 @@ void Root::tick()
        }
 }
 
+void Root::render() const
+{
+       GL::MatrixStack::projection() = GL::Matrix::ortho_bottomleft(geom.w, geom.h);
+       GL::MatrixStack::modelview() = GL::Matrix();
+       GL::Bind bind_blend(GL::Blend::alpha());
+
+       Widget::render();
+}
+
 void Root::button_press_event(int x, int y, unsigned btn, unsigned mod)
 {
        if(visible)
index 61c1a2efae2b70489a6712b8b76ab5d744b35d7a..db8170657b04e1dba64311c4f38012899e496b97 100644 (file)
@@ -40,19 +40,23 @@ private:
 
 public:
        Root(const Resources &, Graphics::Window &);
-       void tick();
+
+       virtual const char *get_class() const { return "root"; }
 
        const Resources &get_resources() const { return resources; }
        virtual unsigned get_width() const { return geom.w; }
        virtual unsigned get_height() const { return geom.h; }
 
+       void tick();
+       void render() const;
+
 private:
-       virtual const char *get_class() const { return "root"; }
        void button_press_event(int, int, unsigned, unsigned);
        void button_release_event(int, int, unsigned, unsigned);
        void pointer_motion_event(int, int);
        void key_press_event(unsigned, unsigned, wchar_t);
        void key_release_event(unsigned, unsigned);
+
        void translate_coords(int &, int &);
 };