X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=examples%2Fhelloworld.cpp;fp=examples%2Fhelloworld.cpp;h=8c530df5dc560ea54ce85158a541d5a7a9f9ccdd;hb=6deafc9f236b90175a303944815f7c0eac1c95c1;hp=0eb9811a780bbeeb8b0e217f028ce87d94f09f81;hpb=999cd0294889e5eecd61df18a697d2c55ed6c0d6;p=libs%2Fgltk.git diff --git a/examples/helloworld.cpp b/examples/helloworld.cpp index 0eb9811..8c530df 100644 --- a/examples/helloworld.cpp +++ b/examples/helloworld.cpp @@ -6,7 +6,9 @@ Demonstrates some of the most common widget types. #include #include #include +#include #include +#include #include #include #include @@ -20,8 +22,10 @@ using namespace Msp; class HelloWorld: public Msp::RegisteredApplication { private: - // An OpenGL window to display our widgets in - Graphics::SimpleGLWindow wnd; + // A window and graphics device to display our widgets in + Graphics::SimpleWindow wnd; + GL::Device gl_dev; + GL::WindowView view; // GLtk resources and widgets GLtk::Resources res; @@ -39,6 +43,8 @@ private: HelloWorld::HelloWorld(int, char **): wnd(200, 200), + gl_dev(wnd), + view(wnd), // Load resources. This must be done before the root widget is created. res("basic.skin"), // A Root receives input from a Graphics::Window and passes it on @@ -79,6 +85,8 @@ HelloWorld::HelloWorld(int, char **): btn->set_geometry(GLtk::Geometry(50, 10, 100, 27)); btn->signal_clicked.connect(sigc::bind(sigc::mem_fun(this, &HelloWorld::exit), 0)); + view.set_content(&root); + // Done with setting things up, show the window! wnd.show(); } @@ -87,17 +95,7 @@ HelloWorld::HelloWorld(int, char **): void HelloWorld::tick() { wnd.tick(); - - // Set up an orthogonal projection matching the root widget - GL::MatrixStack::projection() = GL::Matrix::ortho_bottomleft(200, 200); - GL::MatrixStack::modelview() = GL::Matrix(); - - // Font rendering requires blending - GL::Bind bind_blend(GL::Blend::alpha()); - - root.render(); - - wnd.swap_buffers(); + view.render(); } // Displays a greeting to the user