#pragma once #include "EngineFrame/Component/Component.h" class RenderBase : public Component { public: struct RenderGuidanceInfo { SDL_FRect rect; // 旋转角度 float rotation; // 翻转Flag SDL_RendererFlip flip = SDL_FLIP_NONE; // 锚点坐标 Vec2 AnchorPos; // 是否显示 bool Visible = true; // 是否在屏幕内 bool IsInScreen = false; //渲染矩阵 GlMatrix RenderMatrix; }; public: RenderBase(/* args */); ~RenderBase(); public: void Init() override; void Update(float deltaTime) override; void Render() override; public: public: // 设置迭代的坐标 void SetIterationPos(Vec2 pos) override; // 设置迭代的缩放 void SetIterationScale(Vec2 scale) override; // 设置迭代的旋转角度 void SetIterationRotation(float angle) override; // 设置坐标 void SetPos(Vec2 pos) override; // 设置缩放 void SetScale(Vec2 scale) override; // 设置旋转角度 void SetRotation(float angle) override; // 设置中心点 void SetAnchor(Vec2 anchor) override; // 计算渲染信息 void CalcRenderInfo() override; };