Rev Author Line No. Line
23 ovan 1 #ifndef SPLASH
2 #define SPLASH
3  
4 #include "device.h"
5 #include <functional>
6  
7 namespace sleek
8 {
9     namespace gui
10     {
11         class interface;
12     }
13     namespace driver
14     {
15         class context;
16         class driver;
17     }
18     namespace device
19     {
20         class Device;
21         class Splash : public event, public std::enable_shared_from_this<Splash>
22         {
23             public:
24                 Splash(const DeviceWindowManager &info = DWM_AUTO, const math::vec2i &size = math::vec2i(200,50), bool window_decorator = false) noexcept;
25                 ~Splash() noexcept;
26  
27                 inline std::shared_ptr<Splash> getptr() noexcept
28                 {
29                     return shared_from_this();
30                 }
31  
32                 bool manage(sleek::device::input *a) noexcept;
33  
34                 void setCloseFunction(const std::function<bool()>) noexcept;
35  
36                 void setPicture(std::shared_ptr<driver::texture>) noexcept;
37                 std::shared_ptr<driver::texture> getPicture() const noexcept;
38  
39                 void resizeFromPicture() noexcept;
40                 void resize(const math::vec2i&) noexcept;
41  
42                 driver::context* getRenderer() const noexcept;
43                 gui::interface*  getGUIEnvirnoment() const noexcept;
44                 math::timer*     getTimer() const noexcept;
45  
46                 void render() noexcept;
47             protected:
48                 bool wait;
49                 std::function<bool()> close;
50             protected:
51                 std::shared_ptr<Device>          screen;
52                 std::shared_ptr<driver::texture> csp;
53                 std::shared_ptr<driver::driver>  driver;
54                 std::shared_ptr<driver::context> renderer;
55                 std::shared_ptr<gui::interface>  guienv;
56                 math::timer *tm;
57         };
58     }
59 }
60  
61 #endif