Covellite++  Version: 2.3.0 Revision: ??? Platform: x64 Build: 23:13 04.01.2025
Кроссплатформенный фреймворк для разработки приложений на С++
Загрузка...
Поиск...
Не найдено
Window.android.cpp
1
2#include "stdafx.h"
3#include <Covellite/Api/Window.hpp>
4#include <alicorn/std/string.hpp>
5#include <alicorn/patterns/factory.hpp>
6#include "Renderer/IGraphicApi.hpp"
7
8using namespace covellite::api;
9
10/*static*/ auto Window::GetRenderers(void) -> ::std::vector<String_t>
11{
12 return
13 {
14 uT("OpenGLES3"),
15 uT("OpenGLES2"),
16 uT("OpenGLES")
17 };
18}
19
20/*static*/ auto Window::MakeImpl(const String_t & _Api,
21 const renderer::SettingsData & _Data) -> IGraphicApiPtr_t
22{
23 using namespace ::alicorn::modules::patterns;
24
25 if (_Api != uT("Auto"))
26 {
27 return factory::make_unique<renderer::IGraphicApi>(_Api, _Data);
28 }
29
30 for (const auto & Name : GetRenderers())
31 {
32 try
33 {
34 return factory::make_unique<renderer::IGraphicApi>(Name, _Data);
35 }
36 catch (const ::std::exception & _Ex)
37 {
38 // Сюда попадаем, если указанного рендера нет или он недоступен
39 // на текущем устройстве.
40
41 LOGGER(Warning) << uT("Create graphics API ") << Name << " error: "
42 << _Ex.what();
43 }
44 }
45
46 throw STD_EXCEPTION << "Unknown Api: " << _Api;
47}
Класс для передачи значений настроек программы реализации рендера.
Definition IGraphicApi.hpp:62