X-Git-Url: http://git.tdb.fi/?p=libs%2Fgltk.git;a=blobdiff_plain;f=source%2Froot.cpp;fp=source%2Froot.cpp;h=8d32c467b26eb5924e1825d6d51ff37d01de65a7;hp=167b3f798c8963768b11c320cb9d82bf9dc5d916;hb=394e5c9969a30b604bfaf78fc05a8c2d5c98ab5b;hpb=90d5f5f2ebaeb8aaa4aa47a0c2207f96758cba8c diff --git a/source/root.cpp b/source/root.cpp index 167b3f7..8d32c46 100644 --- a/source/root.cpp +++ b/source/root.cpp @@ -7,15 +7,22 @@ #include "root.h" #include "systemkeyboardinput.h" +using namespace std; + namespace Msp { namespace GLtk { -Root::Root(Resources &r, Graphics::Window &window): - Root(r, &window, new Input::Keyboard(window), new Input::Mouse(window), nullptr) +Root::Root(Resources &r, Graphics::Window &window, unique_ptr k, unique_ptr m): + Root(r, &window, k.get(), m.get(), nullptr) { - own_input = true; + own_input[0] = move(k); + own_input[1] = move(m); } +Root::Root(Resources &r, Graphics::Window &window): + Root(r, window, make_unique(window), make_unique(window)) +{ } + Root::Root(Resources &r, Graphics::Window *window, Input::Keyboard *k, Input::Mouse *m, Input::Touchscreen *t): resources(r), keyboard(k), @@ -47,7 +54,7 @@ Root::Root(Resources &r, Graphics::Window *window, Input::Keyboard *k, Input::Mo } if(keyboard && !input_method) - input_method = new SystemKeyboardInput(*this, *keyboard); + input_method = make_unique(*this, *keyboard); if(touchscreen) { @@ -57,16 +64,6 @@ Root::Root(Resources &r, Graphics::Window *window, Input::Keyboard *k, Input::Mo } } -Root::~Root() -{ - delete input_method; - if(own_input) - { - delete keyboard; - delete mouse; - } -} - void Root::tick() { Time::TimeStamp t = Time::now();