Covellite++
Version: 2.3.3 Revision: 2585 Platform: x64 Build: 21:20 20.09.2026
Кроссплатформенный фреймворк для разработки приложений на С++
Toggle main menu visibility
Загрузка...
Поиск...
Не найдено
GraphicApi.hpp
1
2
#pragma once
3
#include <deque>
4
#include "IGraphicApi.hpp"
5
#include "Api.forward.hpp"
6
7
namespace
covellite
8
{
9
10
namespace
api
11
{
12
13
namespace
renderer
14
{
15
31
class
GraphicApi :
32
public
Registator_t<IGraphicApi>
33
{
34
using
Components_t = ::std::deque<ComponentPtr_t>;
35
36
protected
:
37
using
Data_t =
::covellite::api::renderer::SettingsData
;
38
39
public
:
40
// Интерфейс IGraphicApi:
41
void
PresentFrame(
void
)
override
;
42
const
Creators_t & GetCreators(
void
)
const
noexcept
final
;
43
size_t
GetDrawCallCount(
void
)
const
final
;
44
45
protected
:
46
virtual
Render_t CreateCamera(
const
ComponentPtr_t &) = 0;
47
virtual
Render_t CreateBkSurface(
const
ComponentPtr_t &) = 0;
48
virtual
Render_t CreateState(
const
ComponentPtr_t &) = 0;
49
virtual
Render_t CreateShader(
const
ComponentPtr_t &) = 0;
50
virtual
Render_t CreateTexture(
const
ComponentPtr_t &) = 0;
51
virtual
Render_t CreateTextureArray(
const
ComponentPtr_t &) = 0;
52
virtual
Render_t CreateBuffer(
const
ComponentPtr_t &) = 0;
53
virtual
Render_t CreateTransform(
const
ComponentPtr_t &) = 0;
54
virtual
Render_t CreatePresentBuffer(
const
ComponentPtr_t &) = 0;
55
56
public
:
57
template
<
class
TColor>
58
static
TColor ARGBtoFloat4(uint32_t);
59
60
private
:
61
Render_t CreateUpdater(
const
ComponentPtr_t &)
const
;
62
63
protected
:
86
class
CapturingServiceComponent
final
87
{
88
using
Kind_t = ::alicorn::extension::std::String;
89
using
Services_t = ::std::vector<ComponentPtr_t>;
90
using
Expected_t = ::std::vector<::std::pair<Kind_t, ComponentPtr_t>>;
91
using
Hadler_t = ::std::function<void(
const
ComponentPtr_t &)>;
92
using
Handlers_t = ::std::map<Kind_t, Hadler_t>;
93
94
public
:
95
static
Services_t
Get
(
const
ComponentPtr_t &,
const
Expected_t &);
96
static
void
Process
(
const
ComponentPtr_t &,
const
Handlers_t &);
97
};
98
99
protected
:
100
bool
m_IsResizeWindow =
false
;
101
const
uint8_t Align1[7] = { 0 };
102
103
private
:
104
using
TimePoint_t = ::std::chrono::system_clock::time_point;
105
const
TimePoint_t m_StartProgram;
106
float
m_CurrentFrameTime;
107
const
uint8_t Align2[4] = { 0 };
108
size_t
m_DrawCallCount = 0;
109
size_t
m_DrawCallCounter = 0;
110
111
protected
:
112
class
Constants;
113
::std::shared_ptr<Constants> m_pConstants;
114
template
<
template
<
class
>
class
TBuffer,
class
... TArgs>
115
void
MakeConstants(TArgs && ...);
116
117
private
:
118
Creators_t m_Creators;
119
120
protected
:
121
GraphicApi(
void
);
122
GraphicApi(
const
GraphicApi &) =
delete
;
123
GraphicApi(GraphicApi &&) =
delete
;
124
GraphicApi & operator= (
const
GraphicApi &) =
delete
;
125
GraphicApi & operator= (GraphicApi &&) =
delete
;
126
~GraphicApi(
void
) =
default
;
127
};
128
129
}
// namespace renderer
130
131
}
// namespace api
132
133
}
// namespace covellite
134
135
namespace
std
136
{
137
138
template
<
class
T>
139
istream & operator>>(istream &, shared_ptr<T> &)
140
{
141
throw
STD_EXCEPTION <<
"Это не должно вызываться, нужно для компилируемости"
;
142
}
143
144
}
// namespace std
covellite::api::renderer::GraphicApi::CapturingServiceComponent
Класс входит в проект Covellite.Api Класс для работы со вспомогательными компонентами.
Определения
GraphicApi.hpp:87
covellite::api::renderer::GraphicApi::CapturingServiceComponent::Process
static void Process(const ComponentPtr_t &, const Handlers_t &)
Функция для последовательной обработки очереди вспомогательных компонентов.
Определения
GraphicApi.CapturingServiceComponent.cpp:92
covellite::api::renderer::GraphicApi::CapturingServiceComponent::Get
static Services_t Get(const ComponentPtr_t &, const Expected_t &)
Функция получения набора вспомогательных компонентов.
Определения
GraphicApi.CapturingServiceComponent.cpp:40
covellite::api::renderer::SettingsData
Класс для передачи значений настроек программы реализации рендера.
Определения
IGraphicApi.hpp:63
Solution
Solution
Covellite.Api
Covellite.Api
Renderer
GraphicApi.hpp
Документация по Covellite++. Последние изменения:
. Создано системой
1.18.0