UE5——源码阅读——6——引擎预初始化

判断是否是发行版本,是否要进行基准测试,并且设置基准测试的标准
在这里插入图片描述
通过解析命令行参数进行确定性的运算
在这里插入图片描述
判读是不是需要进行固定的时间步长
在这里插入图片描述
根据命令行参数以及设置的基准测试的标准来判断是否使用固定的随机的种子
在这里插入图片描述
定义随机种子
在这里插入图片描述
获取当前时钟周期数作为一个随机种子
UE5——源码阅读——6——引擎预初始化_第1张图片
初始化随机
在这里插入图片描述
如果不是程序模式
在这里插入图片描述
初始化平台文件
在这里插入图片描述
是否是程序模式,如果不是修正程序文件的大小写

在这里插入图片描述
判断是否设置项目文件路径
UE5——源码阅读——6——引擎预初始化_第2张图片
尝试加载项目文件
在这里插入图片描述
判断是否存在企业项目
在这里插入图片描述
判断是否有项目名称,获取项目二进制文件路径,
UE5——源码阅读——6——引擎预初始化_第3张图片
添加引擎默认的着色器的目录
在这里插入图片描述
判断是否是游戏线程
在这里插入图片描述
判断数据允许Cook或不允许被编译

在这里插入图片描述
确保当前的着色器目录是合法的内容
UE5——源码阅读——6——引擎预初始化_第4张图片
检测你当前的映射关系是不是跟其他的虚拟着色器目录产生冲突
在这里插入图片描述
判断目录是否存在
UE5——源码阅读——6——引擎预初始化_第5张图片
最后添加
在这里插入图片描述
获取平台管理文件和中间文件
在这里插入图片描述
获取自动着色器的绝对目录,添加到全局的着色器目录上面
在这里插入图片描述启动任务图层,指定工作线程的数量,附加到当前的主线程
UE5——源码阅读——6——引擎预初始化_第6张图片
判断当前平台是否支持多线程
在这里插入图片描述
线程池的堆栈大小
在这里插入图片描述
是否强制使用堆栈大小
UE5——源码阅读——6——引擎预初始化_第7张图片
线程大小之分最少2个,然后获取线程的数量
在这里插入图片描述
分配大线程的对象
UE5——源码阅读——6——引擎预初始化_第8张图片
创建大线程池并指定数量和堆栈的大小,还有优先级
在这里插入图片描述
如果是服务器的话线程池设为1
在这里插入图片描述
创建一个线程池对象
在这里插入图片描述
分配后台优先级线程池
UE5——源码阅读——6——引擎预初始化_第9张图片
执行代理,这个代理是干执行和清除延迟注册的一个委托,表示任务图层已经准备好了
在这里插入图片描述
启动线程
在这里插入图片描述

你可能感兴趣的:(UE5源码阅读,ue5)