预初始化的开始处理和结束处理
将GEnginePreInitPreStartupScreenEndTime设置为平台的时间
ON_SCOPE_EXIT 这个就是在程序结束后执行一个Lambda,这个弘的目的是简化代码确保正确的时机正确的执行清理操作,降低因资源泄露而导致BUG的概率
处理延迟注册的委托,标记开始引擎预初始化
标记
关于日志的,如果日志存在就把当前的线程设置为主线程
判断当前是否有statnamedevents这个命令
判断当前是否有verbosenamedevents这个命令,如果有将输出更多的调试信息
设置DebugGame,
如果是Windows 那就注册一个Ctrl-C
为当前的线程设置TLS(线程的本地缓存)
判断输出是否是UTF8
如果是非构建的版本,这个程序是不能被附加的
将当前的工作目录切换为可执行的文件所在的目录
开始设置命令
在非发行的版本下,环境变量UE-CmdLineArgs获取一些附加的命令参数,如果获取到了,其内容添加到原命令行参数中
主要用于存项目文件路径,这个变量会在后期对项目名字进行修正
标记
从命令行中解析出名字,并存到GameProjectFilePathUnnormalized
设置项目名字
解析命令设置名字
判断是否是有效名字
初始化追踪,自动链接追踪
初始化标记内存缓存区的特定平台
延迟物理资源清除
更新全局输入时间
如果启动了stats 内存分析器,创建一个追踪内存的对象
创建控制台输出设备的日志
启用日志器的输出缓存
判断是否有stdout命令,如果有就启动stdout设备
是否开启绘制事件的状态
解析退出命令列表
是否包含mallocframeprofiler
将工作目录切换成可执行文件所在的目录
判断是否是一个程序
判断是否已经设置了项目文件路径
如果项目文件不存在,会在下面做一写修正
标志初始化 输出驱动
初始化Error,Warning
输出设备初始化代理
标志命令的调节
主要作用是命令行参数的替换
用于检测替换命令行参数的别名
用于检测扩展命令行中的一些命令行文件