ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
Toggle main menu visibility
载入中...
搜索中...
未找到
RenderSystem.h
浏览该文件的文档.
1
#pragma once
2
#include "
../Core/Core.h
"
3
#include "
../Math.h
"
4
#include "
ShitEngine/System/System.h
"
5
6
struct
SDL_Renderer;
7
8
namespace
Shit
{
9
class
CameraComponent
;
10
class
RendererComponent
;
11
18
class
SHIT_API
RenderSystem
final :
public
System
{
19
public
:
20
RenderSystem
(
int
priority = 100);
21
~RenderSystem
()
override
;
22
23
void
update
()
override
;
24
void
destroy
()
override
;
25
26
void
registerRenderer
(
RendererComponent
*renderer);
27
void
unregisterRenderer
(
RendererComponent
*renderer);
28
void
registerCamera
(
CameraComponent
*camera);
29
void
unregisterCamera
(
CameraComponent
*camera);
30
31
private
:
32
SDL_Renderer* m_renderer =
nullptr
;
33
34
std::vector<RendererComponent*> m_renderers;
35
bool
m_isRenderersNeedSort =
false
;
36
37
std::vector<CameraComponent*> m_cameras;
38
bool
m_isCamerasNeedSort =
false
;
39
};
40
}
Core.h
SHIT_API
#define SHIT_API
定义
Core.h:12
Math.h
System.h
Shit::CameraComponent
相机组件,定义"从哪个角度观察世界"
定义
CameraComponent.h:15
Shit::RenderSystem::RenderSystem
RenderSystem(int priority=100)
Shit::RenderSystem::unregisterRenderer
void unregisterRenderer(RendererComponent *renderer)
注销渲染组件
Shit::RenderSystem::unregisterCamera
void unregisterCamera(CameraComponent *camera)
注销相机
Shit::RenderSystem::update
void update() override
每帧更新(纯虚)
Shit::RenderSystem::registerCamera
void registerCamera(CameraComponent *camera)
注册相机
Shit::RenderSystem::~RenderSystem
~RenderSystem() override
Shit::RenderSystem::registerRenderer
void registerRenderer(RendererComponent *renderer)
注册渲染组件
Shit::RenderSystem::destroy
void destroy() override
销毁(纯虚)
Shit::RendererComponent
渲染组件基类
定义
RendererComponent.h:18
Shit::System::System
System(int priority=0)
Shit
定义
AudioPlayer.h:9
ShitEngine
Render
RenderSystem.h
制作者
1.17.0