Covellite++
Version: 2.3.2 Revision: 2584 Platform: x64 Build: 19:03 05.09.2026
Кроссплатформенный фреймворк для разработки приложений на С++
Toggle main menu visibility
Загрузка...
Поиск...
Не найдено
Window.windows.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
8
namespace
covellite
9
{
10
11
namespace
api
12
{
13
14
/*static*/
auto
Window::GetRenderers(
void
) -> ::std::vector<String_t>
15
{
16
return
17
{
18
uT(
"DirectX11"
),
19
uT(
"OpenGL"
)
20
};
21
}
22
23
// Реализация функции разнесена по файлам, чтобы правильно считалось покрытие
24
// кода тестами.
25
/*static*/
auto
Window::MakeImpl(
const
String_t & _Api,
26
const
renderer::SettingsData
& _Data) -> IGraphicApiPtr_t
27
{
28
using namespace
::alicorn::modules::patterns;
29
30
if
(_Api != uT(
"Auto"
))
31
{
32
return
factory::make_unique<renderer::IGraphicApi>(_Api, _Data);
33
}
34
35
for
(
const
auto
& Name : GetRenderers())
36
{
37
try
38
{
39
return
factory::make_unique<renderer::IGraphicApi>(Name, _Data);
40
}
41
catch
(const ::std::exception & _Ex)
42
{
43
// Сюда попадаем, если указанного рендера нет или он недоступен
44
// на текущем устройстве.
45
46
LOGGER(Warning) << uT(
"Create graphics API "
) << Name <<
" error: "
47
<< _Ex.what();
48
}
49
}
50
51
throw
STD_EXCEPTION <<
"Unknown Api: "
<< _Api;
52
}
53
54
}
// namespace api
55
56
}
// namespace covellite
covellite::api::renderer::SettingsData
Класс для передачи значений настроек программы реализации рендера.
Определения
IGraphicApi.hpp:62
Solution
Solution
Covellite.Api
Covellite.Api
Window.windows.cpp
Документация по Covellite++. Последние изменения:
. Создано системой
1.18.0