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
// 组件认领:RendererComponent + CameraComponent
27
bool
onComponentAttached
(
Component
* component)
override
;
28
void
onComponentDetached
(
Component
* component)
override
;
29
30
void
registerRenderer
(
RendererComponent
*renderer);
31
void
unregisterRenderer
(
RendererComponent
*renderer);
32
void
registerCamera
(
CameraComponent
*camera);
33
void
unregisterCamera
(
CameraComponent
*camera);
34
35
private
:
36
void
compactRenderers();
37
void
compactCameras();
38
39
SDL_Renderer* m_renderer =
nullptr
;
40
41
std::vector<RendererComponent*> m_renderers;
42
bool
m_isRenderersNeedSort =
false
;
43
44
std::vector<CameraComponent*> m_cameras;
45
bool
m_isCamerasNeedSort =
false
;
46
};
47
}
Core.h
SHIT_API
#define SHIT_API
定义
Core.h:14
Math.h
System.h
Shit::CameraComponent
相机组件,定义"从哪个角度观察世界"
定义
CameraComponent.h:16
Shit::Component
组件基类
定义
Component.h:20
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::onComponentAttached
bool onComponentAttached(Component *component) override
组件挂载时调用。返回 true 表示本系统认领并处理了该组件(组件据此确定已注册)。
Shit::RenderSystem::onComponentDetached
void onComponentDetached(Component *component) 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:10
include
ShitEngine
Render
RenderSystem.h
制作者
1.17.0