Covellite++
Version: 2.3.3 Revision: 2585 Platform: x64 Build: 21:20 20.09.2026
Кроссплатформенный фреймворк для разработки приложений на С++
Toggle main menu visibility
Загрузка...
Поиск...
Не найдено
DirectX11.hpp
1
2
#pragma once
3
#include <wrl.h>
4
#include <d3dcommon.h>
5
#include "GraphicApi.hpp"
6
7
struct
ID3D11Device;
8
struct
ID3D11DeviceContext;
9
struct
IDXGISwapChain;
10
struct
ID3D11RenderTargetView;
11
struct
ID3D11Buffer;
12
struct
ID3D11DepthStencilView;
13
class
DirectX11_test;
14
class
DirectX11Texture_test;
15
16
namespace
covellite
17
{
18
19
namespace
api
20
{
21
22
namespace
renderer
23
{
24
50
class
DirectX11 final :
51
public
GraphicApi
52
{
53
template
<
class
T>
54
using
ComPtr_t = ::Microsoft::WRL::ComPtr<T>;
55
using
Renders_t = ::std::vector<Render_t>;
56
using
Data_t =
::covellite::api::renderer::SettingsData
;
57
58
public
:
59
// Интерфейс IGraphicApi:
60
String_t GetUsingApi(
void
)
const override
;
61
void
PresentFrame(
void
)
override
;
62
void
ResizeWindow(
const
Rect &)
override
;
63
64
protected
:
65
// Интерфейс GraphicApi:
66
Render_t CreateCamera(
const
ComponentPtr_t &)
override
;
67
Render_t
CreateBkSurface
(
const
ComponentPtr_t &)
override
;
68
Render_t CreateState(
const
ComponentPtr_t &)
override
;
69
Render_t CreateTexture(
const
ComponentPtr_t &)
override
;
70
Render_t CreateTextureArray(
const
ComponentPtr_t &)
override
;
71
Render_t CreateShader(
const
ComponentPtr_t &)
override
;
72
Render_t CreateBuffer(
const
ComponentPtr_t &)
override
;
73
Render_t CreateTransform(
const
ComponentPtr_t &)
override
;
74
Render_t CreatePresentBuffer(
const
ComponentPtr_t &)
override
;
75
76
private
:
77
static
ComPtr_t<ID3DBlob> CompileShader(
78
const
ComponentPtr_t &,
79
String_t * =
nullptr
,
80
::std::vector<String_t> * =
nullptr
);
81
82
private
:
83
void
CreateDeviceAndSwapChain(
const
Data_t &);
84
void
SetRenderTargetSize(
const
UINT,
const
UINT);
85
void
CreateRenderTargetView(
const
UINT,
const
UINT);
86
void
CreateDepthStencilView(
const
UINT,
const
UINT);
87
88
private
:
89
Render_t CreateBlendState(
bool
);
90
Render_t
GetDepthState
(
const
bool
,
const
bool
,
const
bool
);
91
template
<
class
>
92
Render_t CreateDefaultTransformRender(
const
ComponentPtr_t &);
93
template
<
class
>
94
Render_t CreateStaticTransformRender(
const
ComponentPtr_t &);
95
template
<
class
,
class
>
96
Render_t CreateBillboardTransformRender(
const
ComponentPtr_t &);
97
98
private
:
99
ComPtr_t<ID3D11Device> m_pDevice;
100
ComPtr_t<ID3D11DeviceContext> m_pImmediateContext;
101
ComPtr_t<IDXGISwapChain> m_pSwapChain;
102
ComPtr_t<ID3D11RenderTargetView> m_pScreenRenderTargetView;
103
ComPtr_t<ID3D11DepthStencilView> m_pScreenDepthStencilView;
104
::std::vector<ID3D11RenderTargetView *> m_CurrentRenderTargets;
105
ComPtr_t<ID3D11DepthStencilView> m_pCurrentDepthStencilView;
106
107
public
:
108
class
Texture;
109
110
private
:
111
class
Buffer;
112
template
<
class
>
113
class
ConstantBuffer;
114
115
public
:
116
explicit
DirectX11(
const
Data_t &);
117
DirectX11(
const
DirectX11 &) =
delete
;
118
DirectX11(DirectX11 &&) =
delete
;
119
DirectX11 & operator= (
const
DirectX11 &) =
delete
;
120
DirectX11 & operator= (DirectX11 &&) =
delete
;
121
~DirectX11(
void
);
122
123
private
:
124
friend
class
CompileShader;
125
friend
DirectX11_test;
126
friend
DirectX11Texture_test;
127
};
128
129
FACTORY_REGISTER_STRING_NAME(
DirectX11
);
130
131
}
// namespace renderer
132
133
}
// namespace api
134
135
}
// namespace covellite
covellite::api::renderer::DirectX11
Класс входит в проект Covellite.Api Реализация рендера графического API для Windows/DirectX11.
Определения
DirectX11.hpp:52
covellite::api::renderer::DirectX11::GetDepthState
Render_t GetDepthState(const bool, const bool, const bool)
Определения
DirectX11.cpp:1416
covellite::api::renderer::DirectX11::CreateBkSurface
Render_t CreateBkSurface(const ComponentPtr_t &) override
Определения
DirectX11.cpp:706
covellite::api::renderer::SettingsData
Класс для передачи значений настроек программы реализации рендера.
Определения
IGraphicApi.hpp:63
Solution
Solution
Covellite.Api
Covellite.Api
Renderer
DirectX11.hpp
Документация по Covellite++. Последние изменения:
. Создано системой
1.18.0