Piccolo引擎源码理解

engine.cpp/.h

定义在namespace Piccolo

1
2
3
4
5
6
7
8
9
10
11
12
13
class PiccoloEngine //engine文件主要定义了PiccoloEngine这个类的参数和行为
.h //声明参数和函数
.cpp
(1)PiccoloEngine::startEngine //开始运行,修改上下文执行编译文件,挂接反射
(2)PiccoloEngine::shutdownEngine //停止运行 ,修改上下文,解除反射

(3)PiccoloEngine::run() //只要window不管,无限循环calculateDeltaTime,tickOneFrame函数
(4)PiccoloEngine::calculateDeltaTime //计算每个引擎tick消耗的实际时间
(5)PiccoloEngine::tickOneFrame //用calculateDeltaTime计算的时间来迭代引擎内的渲染和逻辑
(6)PiccoloEngine::logicalTick //通过全局上下文,获取m_world_manager 和 input_system 进行tick
(7)通过全局上下文,交换逻辑和渲染data的上下文
(8)PiccoloEngine::rendererTick //通过全局上下文,获取渲染系统tick一次
(9)通过全局上下文,更新window系统的内容

功能层 function

特别把上下文子系统提出来讲:global目录——理解上下文global_context.cpp/.h

为什么要设计上下文? 上下文包含的引擎的各个系统,是一种封装,引擎只需要调用上下文的系统的函数即可,主要负责所有系统的启动和停止。(更多好处有待体会),因为我们在引擎的顶层文件是通过上下文系统来调用不同系统的,所以先把上下文子系统提出来讲。

定义在namespace Piccolo

1
2
3
4
5
6
7
8
9
class RuntimeGlobalContext //global_context文件主要定义了RuntimeGlobalContext这个类的参数和行为

.h //声明了引擎不同层次的系统,每个系统在class类中用一个shared_ptr指向
函数也只有两个
(1) RuntimeGlobalContext::startSystems
(2) RuntimeGlobalContext::shutdownSystems

.cpp
//简单来说就是启动系统和关闭系统,没太多可看的

(1)框架 framework

(2)子系统

animation目录:理解动画系统