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

渲染组件基类 更多...

#include <RendererComponent.h>

类 RendererComponent 继承关系图:
Component SpriteRenderer Tilemap

Public 成员函数

 RendererComponent ()
 ~RendererComponent () override=default
void onAttach () override
void onDetach () override
virtual void onRender (SDL_Renderer *renderer, const CameraComponent *camera) const =0
 纯虚:子类实现绘制逻辑
void onDestroy () override
int getZIndex () const
 渲染层级,值越大越靠上
bool isVisible () const
 是否可见
virtual SDL_FRect getGlobalBounds ()=0
 世界坐标下的轴对齐包围盒
void setZIndex (int zIndex)
void setVisible (bool isVisible)
Public 成员函数 继承自 Component
 Component ()
virtual ~Component ()=default
virtual void onCreate ()
virtual void onAfterDeserialize ()
 反序列化完成后回调(Prefab::apply 逐组件调用一次,字段已写入)。 用于重建"直写字段绕过了 setter、无法自动触发的引擎状态"(如精灵纹理加载)。
virtual void onFieldChanged (const std::string &fieldName)
 检查器直接写反射字段后回调(字段名)。用于绕过 setter 的直写完成后 重新同步引擎状态(如 Box2D 刚体/形状)。默认无操作。
 Component (const Component &)=delete
Component & operator= (const Component &)=delete
 Component (Component &&)=delete
Component & operator= (Component &&)=delete
GameObject * getOwner () const
bool isRegistered () const
uint64_t getUuid () const
 组件持久 ID(随 .scene 序列化,是 ComponentRef<T> 引用字段的寻址依据)
void setUuid (uint64_t uuid)
 直接设置组件 ID(仅引擎反序列化/索引维护使用;正常流程由构造函数随机分配)

Protected 属性

int m_zIndex = 0
bool m_isVisible = true
Protected 属性 继承自 Component
GameObject * m_owner = nullptr
bool m_isRegistered = false
uint64_t m_uuid = 0
 持久 ID(构造时随机分配;0 仅在序列化前尚未赋值时短暂存在)

额外继承的成员函数

Protected 成员函数 继承自 Component
void setRegistered (bool registered)

详细描述

渲染组件基类

所有可渲染的组件(SpriteRenderer 等)须继承此类并重写 onRender。 由 RenderSystem 每帧按 Z-Index 排序后统一调用。

构造及析构函数说明

◆ RendererComponent()

RendererComponent ( )

◆ ~RendererComponent()

~RendererComponent ( )
overridedefault

成员函数说明

◆ getGlobalBounds()

virtual SDL_FRect getGlobalBounds ( )
pure virtual

世界坐标下的轴对齐包围盒

在 SpriteRenderer , 以及 Tilemap 内被实现.

◆ getZIndex()

int getZIndex ( ) const
inline

渲染层级,值越大越靠上

◆ isVisible()

bool isVisible ( ) const
inline

是否可见

◆ onAttach()

void onAttach ( )
overridevirtual

重载 Component .

◆ onDestroy()

void onDestroy ( )
overridevirtual

重载 Component .

◆ onDetach()

void onDetach ( )
overridevirtual

重载 Component .

◆ onRender()

virtual void onRender ( SDL_Renderer * renderer,
const CameraComponent * camera ) const
pure virtual

纯虚:子类实现绘制逻辑

在 SpriteRenderer , 以及 Tilemap 内被实现.

◆ setVisible()

void setVisible ( bool isVisible)
inline

◆ setZIndex()

void setZIndex ( int zIndex)
inline

类成员变量说明

◆ m_isVisible

bool m_isVisible = true
protected

◆ m_zIndex

int m_zIndex = 0
protected

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