解决上一个文档的问题,哪里相应了Shader编译完成的消息。
Engine 的LOOP里面调用了这个:
if (GShaderCompilingManager)
{
// Process any asynchronous shader compile results that are ready, limit execution time
QUICK_SCOPE_CYCLE_COUNTER(STAT_FEngineLoop_Tick_GShaderCompilingManager);
GShaderCompilingManager->ProcessAsyncResults(true, false);
}
ShaderCompilingManage管理了一个编译的线程,那个线程是用来和Worker通信的。
/**
* Manager of asynchronous and parallel shader compilation.
* This class contains an interface to enqueue and retreive asynchronous shader jobs, and manages a FShaderCompileThreadRunnable.
*/
class FShaderCompilingManager
{
void FShaderCompilingManager::ProcessAsyncResults(bool bLimitExecutionTime, bool bBlockOnGlobalShaderCompletion)
{
if (bAllowAsynchronousShaderCompiling)
{
Thread->Ch