ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
载入中...
搜索中...
未找到
EngineContext.h
浏览该文件的文档.
1#pragma once
2
3// 各子系统完整定义:EngineContext 按值持有全部实例
16
17namespace Shit {
18 class Log; // 日志为进程级全局(纯静态),不入上下文
19
41 public:
42 EngineContext() = default;
43 ~EngineContext() = default;
44
45 EngineContext(const EngineContext&) = delete;
49
50 // 子系统实例(声明顺序 = 构造顺序,析构逆序;生命周期由 Game::Init/Run/Destroy 驱动)
63
64 // --- 当前上下文 ---
68 static void setCurrent(EngineContext* ctx);
70 static void resetCurrent();
71
72 private:
73 static EngineContext* s_current;
74 };
75}
#define SHIT_API
定义 Core.h:14
定义 AudioPlayer.h:35
配置管理类
定义 Config.h:77
static void resetCurrent()
恢复进程默认上下文
EngineContext(EngineContext &&)=delete
Config config
定义 EngineContext.h:52
EngineContext()=default
AudioPlayer audio
定义 EngineContext.h:59
EventBus eventBus
定义 EngineContext.h:60
static void setCurrent(EngineContext *ctx)
切换到指定上下文(多实例/编辑器预览用)
TypeRegistry typeRegistry
定义 EngineContext.h:62
Renderer renderer
定义 EngineContext.h:57
EngineContext & operator=(const EngineContext &)=delete
SceneManager sceneManager
定义 EngineContext.h:61
EngineContext & operator=(EngineContext &&)=delete
Window window
定义 EngineContext.h:53
Game game
定义 EngineContext.h:51
EngineContext(const EngineContext &)=delete
Input input
定义 EngineContext.h:56
Time time
定义 EngineContext.h:54
ResourceManager resources
定义 EngineContext.h:58
static EngineContext & current()
当前活动上下文;未设置时懒创建一个进程默认上下文(与旧单例行为一致)
TextInputGate textInputGate
定义 EngineContext.h:55
~EngineContext()=default
事件总线,缓冲队列模式
定义 EventBus.h:30
引擎主控类
定义 Game.h:16
输入管理(单例)
定义 Input.h:39
日志封装类
定义 Log.h:16
渲染器,封装 SDL3 绘制 API
定义 Renderer.h:21
资源管理器(单例)
定义 ResourceManager.h:23
场景管理器(单例)
定义 SceneManager.h:19
文本输入聚焦门(进程级单例)
定义 TextInputGate.h:24
时间管理类
定义 Time.h:13
定义 TypeRegistry.h:24
窗口管理类
定义 Window.h:14
定义 AudioPlayer.h:10