#pragma once #include "RuntimeCoordinator.h" #include class RenderEngine; class RuntimeServices; class RuntimeStore; class ShaderBuildQueue; class VideoBackend; class RuntimeUpdateController { public: RuntimeUpdateController( RuntimeStore& runtimeStore, RuntimeCoordinator& runtimeCoordinator, RuntimeServices& runtimeServices, RenderEngine& renderEngine, ShaderBuildQueue& shaderBuildQueue, VideoBackend& videoBackend); bool ApplyRuntimeCoordinatorResult(const RuntimeCoordinatorResult& result, std::string* error = nullptr); bool ProcessRuntimeWork(); void RequestShaderBuild(); void BroadcastRuntimeState(); private: RuntimeStore& mRuntimeStore; RuntimeCoordinator& mRuntimeCoordinator; RuntimeServices& mRuntimeServices; RenderEngine& mRenderEngine; ShaderBuildQueue& mShaderBuildQueue; VideoBackend& mVideoBackend; };