简介: 前文已经捋完了 AppInit 函数,接下来接着 62% 的进度继续推进
PreInitPreStartupScreen
如果 cmdline 中没有 NoLogThread 的参数,则拉起 log 线程
GIOThreadPool 创建并分配 IO 线程池
GSystemSettings 初始化
设置 ini 文件中配置的渲染设置
UGameUserSettings 预加载分辨率设置
Scalability 初始化质量配置系统
UDeviceProfileManager 初始化激活的设备
Scalability 加载质量配置
GUseThreadedRendering 根据设定决定是否设置 渲染线程为 true
FConfigCacheIni 从ini 文件加载 控制台变量缓存
FPlatformMisc 平台初始化
FPlatformApplicationMisc 平台 APP 初始化
FPlatformMemory 平台内存初始化
DerivedData.IoStore 派生数据异步调用器初始化
ExtraDevelopmentMemoryMB 获取开发环境下需要的额外内存预留大小
CSV_METADATA 宏向性能分析系统添加元数据
FIoDispatcher Io调度器的后期初始化,前面有一个 Initialize(),这里是 InitializePostSettings()
GLogConsole 设置 logconsole 的配置文件
PreInitContext.SlowTaskPtr 创建预初始化上下文的 SlowTask指针
SlowTask 获取 SlowTaskPtr 指针
FPlatformMisc 检查命令行参数的正确性,如果有问题则直接调用 FPlatformMisc::RequestExit 退出
非Editor 模式下 再次检查了运行模式是否是 命令行模式
如果标准输出设备没有初始化则在这里进行初始化
如果是资源烘焙模式,则检查是否有错误,有错误直接退出
IPlatformFeaturesModule 拉起 Platform 需要的相关 Feature
IniGamePhys() 初始化游戏物理引擎
清理 Shader工作目录
GIsDemoMode 从命令获取是否是 Demo 模式
初始化引擎的语言本地化
FPIEPreviewDeviceModule 设置预览设备的 高分辨率 HightDPI
UStringTable 本地化字符串表系统初始化
FAudioThread 设置 音频线程
FTextLocalizationManager 显示 splash 前确保引擎本地化加载完成
FSlateApplication SlateUI框架初始化
FInternationalization 编辑器模式下加载所有的本地化数据
FPackageLocalizationManager 初始化本地包管理器
FShaderParametersMetadataRegistration 着色器参数元数据提交
FShaderTypeRegistration 着色器类型注册提交
FShaderParametersMetadata 初始化所有 UniformBufferStruct
初始化 HMD 设备
RHI 初始化
PipelineStateCache 初始化
渲染工具初始化
FShaderCodeLibrary 初始化着色器运行时核心库
Virtualization 虚拟化技术的相关初始化
FDistanceFieldAsyncQueue 距离场异步任务队列 初始化
FCardRepresentationAsyncQueue 分块异步任务队列初始化
FShaderCompilingManager 实例化着色器编译对象
绑定渲染模式到主线程
FShaderCompileUtilities 生成 BRDF 代码头部
初始化 着色器类型
总结
目前捋到了 92% ,这里的代码都比较简单易懂
罗列新遇到的类
- GIOThreadPool 全局 IO 线程池
- GSystemSettings 全局系统设置
- UGameUserSettings 游戏用户设置
- Scalability 系统品级设置系统
- FConfigCacheIni 配置缓存ini文件
- FPlatformApplicationMisc 平台应用工具
- FPlatformMemory 平台内存
- DerivedData 派生数据
- CSV_METADATA 宏向性能分析系统添加元数据
- FIoDispatcher IO 调度器
- IPlatformFeaturesModule 平台特性模块
- FPIEPreviewDeviceModule 预览设备模块
- UStringTable 本地化字符串表系统初始化
- FAudioThread 音频线程
- FTextLocalizationManager 本地化管理器
- FSlateApplication 基于Slate UI框架的应用
- FInternationalization 本地化数据相关,时间,货币等
- FPackageLocalizationManager 本地化包管理器
- FShaderParametersMetadataRegistration 着色器参数元数据注册
- FShaderTypeRegistration 着色器类型注册
- FShaderParametersMetadata 初始化所有 UniformBufferStruct
- PipelineStateCache 管线状态缓存
- FShaderCodeLibrary 着色器核心库
- Virtualization 虚拟化技术相关
- FDistanceFieldAsyncQueue 距离场异步任务队列
- FCardRepresentationAsyncQueue 分块异步任务队列
- FShaderCompilingManager 着色器编译管理器
- FShaderCompileUtilities 着色器编译相关工具