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

引擎上下文:持有全部子系统实例 更多...

#include <EngineContext.h>

Public 成员函数

 EngineContext ()=default
 ~EngineContext ()=default
 EngineContext (const EngineContext &)=delete
EngineContextoperator= (const EngineContext &)=delete
 EngineContext (EngineContext &&)=delete
EngineContextoperator= (EngineContext &&)=delete

静态 Public 成员函数

static EngineContextcurrent ()
 当前活动上下文;未设置时懒创建一个进程默认上下文(与旧单例行为一致)
static void setCurrent (EngineContext *ctx)
 切换到指定上下文(多实例/编辑器预览用)
static void resetCurrent ()
 恢复进程默认上下文

Public 属性

Game game
Config config
Window window
Time time
TextInputGate textInputGate
Input input
Renderer renderer
ResourceManager resources
AudioPlayer audio
EventBus eventBus
SceneManager sceneManager
TypeRegistry typeRegistry

详细描述

引擎上下文:持有全部子系统实例

替代原先 12 个进程级单例的"引擎只能有一个实例"限制。一个进程可创建多个 EngineContext(编辑器进程内预览、多实例对比、单元测试),每个拥有独立的 Window/Input/Renderer/SceneManager 等完整子系统。静态门面(如 Shit::Input::IsKeyDown)转发到当前上下文(EngineContext::current())。

用法: // 单实例(默认,行为与旧单例一致)——无需手动创建,第一次 current() 时懒创建 Shit::Game::Init(); Shit::Game::Run(); Shit::Game::Destroy();

// 多实例(编辑器预览) Shit::EngineContext preview; Shit::EngineContext::setCurrent(&preview); Shit::Game::Init(); // 初始化 preview 的子系统 // ... 运行 ... Shit::Game::Destroy(); Shit::EngineContext::setCurrent(&editorCtx); // 切回编辑器上下文

构造及析构函数说明

◆ EngineContext() [1/3]

EngineContext ( )
default

◆ ~EngineContext()

~EngineContext ( )
default

◆ EngineContext() [2/3]

EngineContext ( const EngineContext & )
delete

◆ EngineContext() [3/3]

EngineContext ( EngineContext && )
delete

成员函数说明

◆ current()

EngineContext & current ( )
static

当前活动上下文;未设置时懒创建一个进程默认上下文(与旧单例行为一致)

◆ operator=() [1/2]

EngineContext & operator= ( const EngineContext & )
delete

◆ operator=() [2/2]

EngineContext & operator= ( EngineContext && )
delete

◆ resetCurrent()

void resetCurrent ( )
static

恢复进程默认上下文

◆ setCurrent()

void setCurrent ( EngineContext * ctx)
static

切换到指定上下文(多实例/编辑器预览用)

类成员变量说明

◆ audio

AudioPlayer audio

◆ config

Config config

◆ eventBus

EventBus eventBus

◆ game

Game game

◆ input

Input input

◆ renderer

Renderer renderer

◆ resources

ResourceManager resources

◆ sceneManager

SceneManager sceneManager

◆ textInputGate

TextInputGate textInputGate

◆ time

Time time

◆ typeRegistry

TypeRegistry typeRegistry

◆ window

Window window

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