|
ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
|
UI 渲染控件基类(对应游戏世界的 RendererComponent) 更多...
#include <UIRendererComponent.h>
Public 成员函数 | |
| UIRendererComponent () | |
| ~UIRendererComponent () override=default | |
| void | onAttach () override |
| void | onDetach () override |
| void | onDestroy () override |
| virtual void | onRender (const SDL_FRect &screenRect)=0 |
| 子类实现:在给定屏幕矩形内绘制自身(通过 Renderer 静态 API 绘制) | |
| virtual bool | containsPoint (const SDL_FRect &screenRect, const Vector2 &point) const |
| 点击命中检测:默认矩形内即命中,子类可覆写为更精确的形状 | |
| int | getZIndex () const |
| void | setZIndex (int zIndex) |
| bool | isVisible () const |
| void | setVisible (bool visible) |
| Public 成员函数 继承自 Component | |
| Component () | |
| virtual | ~Component ()=default |
| virtual void | onCreate () |
| virtual void | onAfterDeserialize () |
| 反序列化完成后回调(Prefab::apply 逐组件调用一次,字段已写入)。 用于重建"直写字段绕过了 setter、无法自动触发的引擎状态"(如精灵纹理加载)。 | |
| Component (const Component &)=delete | |
| Component & | operator= (const Component &)=delete |
| Component (Component &&)=delete | |
| Component & | operator= (Component &&)=delete |
| GameObject * | getOwner () const |
| bool | isRegistered () const |
Protected 成员函数 | |
| void | requestSort () |
| components变更后通知系统重排(实例:zIndex 变化) | |
| Protected 成员函数 继承自 Component | |
| void | setRegistered (bool registered) |
静态 Protected 成员函数 | |
| static SDL_Color | toSDLColor (const Color &color) |
| Color → SDL_Color 边界转换(供 UIText / UITextInput 系列传给 SDL_ttf 用) | |
Protected 属性 | |
| int | m_zIndex = 0 |
| 渲染层级(值越大越靠上) | |
| bool | m_isVisible = true |
| 是否参与渲染与命中 | |
| Protected 属性 继承自 Component | |
| GameObject * | m_owner = nullptr |
| bool | m_isRegistered = false |
UI 渲染控件基类(对应游戏世界的 RendererComponent)
所有可渲染的 UI 控件(UIImage / UIText / UIButton 等)继承此类。 onAttach / onDetach 自动向 UIRenderSystem 注册 / 注销。 由 UIRenderSystem 每帧按 zIndex 排序后统一调用 onRender,屏幕矩形由 UITransform 计算。
| UIRendererComponent | ( | ) |
|
overridedefault |
|
virtual |
点击命中检测:默认矩形内即命中,子类可覆写为更精确的形状
|
inline |
|
inline |
|
overridevirtual |
重载 Component .
|
overridevirtual |
重载 Component .
|
pure virtual |
子类实现:在给定屏幕矩形内绘制自身(通过 Renderer 静态 API 绘制)
在 UIButton, UIImage, UIText, UITextArea, UITextBox , 以及 UITextInput 内被实现.
|
protected |
components变更后通知系统重排(实例:zIndex 变化)
|
inline |
|
inline |
|
inlinestaticprotected |
Color → SDL_Color 边界转换(供 UIText / UITextInput 系列传给 SDL_ttf 用)
|
protected |
是否参与渲染与命中
|
protected |
渲染层级(值越大越靠上)