ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
载入中...
搜索中...
未找到
UIRenderSystem类 参考final

UI 渲染系统 更多...

#include <UIRenderSystem.h>

类 UIRenderSystem 继承关系图:
System

Public 成员函数

 UIRenderSystem (int priority=200)
 ~UIRenderSystem () override
void update () override
 每帧更新(纯虚)
void destroy () override
 销毁(纯虚)
bool onComponentAttached (Component *component) override
 组件挂载时调用。返回 true 表示本系统认领并处理了该组件(组件据此确定已注册)。
void onComponentDetached (Component *component) override
 组件卸下时调用。
void registerUIRenderer (UIRendererComponent *renderer)
 注册 UI 渲染控件
void unregisterUIRenderer (UIRendererComponent *renderer)
 注销 UI 渲染控件
void markSortDirty ()
 标记需要重排(zIndex 变更时调用)
Public 成员函数 继承自 System
 System (int priority=0)
virtual ~System ()
virtual void init ()
 初始化(可覆写)
ScenegetScene () const
void setScene (Scene *scene)
int getPriority () const
void setPriority (int priority)

额外继承的成员函数

Protected 成员函数 继承自 System
void resetComponent (Component *comp)
 内部:把认领过的组件标记为未注册(系统销毁/注销时调用)。 否则组件 m_isRegistered 残留 true,同类系统重新注册时 System::init 补扫会跳过它们, 导致组件永久失去驱动系统。
Protected 属性 继承自 System
int m_priority
 优先级(小值先执行)
Scenem_scene = nullptr
 所属场景

详细描述

UI 渲染系统

每帧执行两件事:

  1. 输入 Raycasting:按 zIndex 从上到下检测鼠标命中的 UI 元素,驱动其上的 UIButton 状态;
  2. UI 渲染:按 zIndex 从下到上调用各 UIRendererComponent 的 onRender,叠在游戏世界之上。

UIRendererComponent 的 onAttach / onDetach 自动注册 / 注销。 priority 默认 200,晚于 RenderSystem(100),确保 UI 绘制在游戏世界之后。

构造及析构函数说明

◆ UIRenderSystem()

UIRenderSystem ( int priority = 200)

◆ ~UIRenderSystem()

~UIRenderSystem ( )
override

成员函数说明

◆ destroy()

void destroy ( )
overridevirtual

销毁(纯虚)

实现了 System.

◆ markSortDirty()

void markSortDirty ( )
inline

标记需要重排(zIndex 变更时调用)

◆ onComponentAttached()

bool onComponentAttached ( Component * component)
overridevirtual

组件挂载时调用。返回 true 表示本系统认领并处理了该组件(组件据此确定已注册)。

重载 System .

◆ onComponentDetached()

void onComponentDetached ( Component * component)
overridevirtual

组件卸下时调用。

重载 System .

◆ registerUIRenderer()

void registerUIRenderer ( UIRendererComponent * renderer)

注册 UI 渲染控件

◆ unregisterUIRenderer()

void unregisterUIRenderer ( UIRendererComponent * renderer)

注销 UI 渲染控件

◆ update()

void update ( )
overridevirtual

每帧更新(纯虚)

实现了 System.


该类的文档由以下文件生成: