Covellite++  Version: 2.3.0 Revision: ??? Platform: x64 Build: 23:13 04.01.2025
Кроссплатформенный фреймворк для разработки приложений на С++
Загрузка...
Поиск...
Не найдено
Initializer.android.cpp
1
2#include "stdafx.h"
3#include <Covellite\Gui\Initializer.hpp>
4
5using namespace covellite::gui;
6
7class Initializer::Helper
8{
9public:
10 static Helper & GetInstance(void)
11 {
12 static Helper Instance;
13 return Instance;
14 }
15
16private:
17 Helper(void)
18 {
19 CovelliteGui::Initialise();
20 }
21 ~Helper(void)
22 {
23 CovelliteGui::Shutdown();
24 }
25};
26
27Initializer::Initializer(const Data & _Data) :
28 m_System(_Data.m_pStringTranslator),
29 m_pRenderInterface(_Data.m_pRenderInterface)
30{
31 CovelliteGui::SetFileInterface(&m_File);
32 CovelliteGui::SetSystemInterface(&m_System);
33 CovelliteGui::SetRenderInterface(m_pRenderInterface.get());
34
35 // Инициализация сделана через статический объект из-за того, что
36 // CovelliteGui::Initialise() в рамках одного модуля можно запускать
37 // только один раз (CovelliteGui::Shutdown() не поможет, повторная
38 // инициализация даже в этом случае приводит к падению программы),
39 // а android-приложение загружает главный .so модуль только один раз при
40 // первом старте программы, а затем при каждой активации программы просто
41 // вызывает функцию этого модуля.
42 Helper::GetInstance();
43}
44
45Initializer::~Initializer(void)
46{
47 CovelliteGui::SetFileInterface(nullptr);
48 CovelliteGui::SetSystemInterface(nullptr);
49 CovelliteGui::SetRenderInterface(nullptr);
50}