|
| static Renderer & | GetInstance () |
| static bool | Init () |
| | 初始化渲染器
|
| static void | Destroy () |
| | 析构渲染器(必须在 SDL_Quit 之前调用)
|
| static void | ClearScreen () |
| | 清屏(每帧开头调用)
|
| static void | Present () |
| | 交换缓冲区(每帧末尾调用)
|
| static SDL_Renderer * | GetRenderer () |
| | 获取原生 SDL_Renderer
|
| static bool | ReadPixels (void *pixels, int pitch) |
| | 读取渲染缓冲像素(离屏渲染/编辑器预览用)
|
| static bool | BeginOffscreen () |
| | 开始离屏渲染到逻辑尺寸(1280×720)目标纹理(编辑器预览用) 之后 SceneManager::Update 的渲染进该纹理;ReadPixels 读出逻辑尺寸像素, 与相机坐标空间一致(不受窗口物理尺寸影响)。
|
| static void | EndOffscreen () |
| static int | GetLogicalWidth () |
| | 逻辑分辨率宽度
|
| static int | GetLogicalHeight () |
| | 逻辑分辨率高度
|
| static void | DrawSprite (const Sprite &sprite, const Vector2 &position, const std::optional< Vector2 > &size=std::nullopt) |
| | 在屏幕坐标直接绘制精灵(UI 场景用)
|
| static void | SetDrawColor (const Color &color) |
| | 设置绘制颜色(SDL_SetRenderDrawColor)
|
| static void | FillRect (const SDL_FRect &rect) |
| | 实心矩形(SDL_RenderFillRect)
|
| static void | SetClipRect (const SDL_Rect *rect) |
| | 设置裁剪矩形(传 nullptr 清除)
|
| static void | ClearClipRect () |
| | 清除裁剪矩形
|
| static void | SetViewport (const SDL_Rect *viewport) |
| | 设置视口(传 nullptr 恢复全屏)
|
| static void | ClearViewport () |
| | 恢复全屏视口
|
| static void | DrawTexture (SDL_Texture *texture, const SDL_FRect *src, const SDL_FRect &dst) |
| | 绘制纹理(SDL_RenderTexture)
|
| static void | DrawTextureRotated (SDL_Texture *texture, const SDL_FRect *src, const SDL_FRect &dst, double angle, const SDL_FPoint *center, SDL_FlipMode flip) |
| | 旋转/翻转绘制(SDL_RenderTextureRotated)
|
| static void | RenderCoordinatesToWindow (float x, float y, float *winX, float *winY) |
| | 逻辑坐标 → 窗口物理像素坐标
|
| static SDL_Texture * | CreateTextureFromSurface (SDL_Surface *surface) |
| | surface → texture(SDL_CreateTextureFromSurface)
|
渲染器,封装 SDL3 绘制 API
管理逻辑分辨率、清屏、精灵绘制(UI 用)以及 Present。 默认逻辑分辨率 1280×720,通过 settings.json 中的 window.width/height 配置。