Hot reload
This commit is contained in:
@@ -129,6 +129,26 @@ ControlActionResult RuntimeLayerController::HandleControlCommand(const RuntimeCo
|
||||
PublishRuntimeRenderLayers();
|
||||
return { true, std::string() };
|
||||
}
|
||||
case RuntimeControlCommandType::ReloadShaders:
|
||||
{
|
||||
if (!LoadSupportedShaderCatalog(mShaderLibrary, mMaxTemporalHistoryFrames))
|
||||
return { false, "Shader reload failed; see logs for details." };
|
||||
|
||||
std::vector<std::pair<std::string, std::string>> buildsToStart;
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(mRuntimeLayerMutex);
|
||||
if (!mRuntimeLayerModel.ReloadFromCatalog(mShaderCatalog, buildsToStart, error))
|
||||
return { false, error };
|
||||
}
|
||||
|
||||
for (const auto& build : buildsToStart)
|
||||
{
|
||||
Log("runtime-shader", "Reload queued shader rebuild: " + build.first + " shader=" + build.second);
|
||||
StartLayerShaderBuild(build.first, build.second);
|
||||
}
|
||||
PublishRuntimeRenderLayers();
|
||||
return { true, std::string() };
|
||||
}
|
||||
case RuntimeControlCommandType::Unsupported:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user