43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "RuntimeCoordinator.h"
|
|
|
|
#include <string>
|
|
|
|
class RenderEngine;
|
|
struct RuntimeEvent;
|
|
class RuntimeEventDispatcher;
|
|
class RuntimeServices;
|
|
class RuntimeStore;
|
|
class ShaderBuildQueue;
|
|
class VideoBackend;
|
|
|
|
class RuntimeUpdateController
|
|
{
|
|
public:
|
|
RuntimeUpdateController(
|
|
RuntimeStore& runtimeStore,
|
|
RuntimeCoordinator& runtimeCoordinator,
|
|
RuntimeEventDispatcher& runtimeEventDispatcher,
|
|
RuntimeServices& runtimeServices,
|
|
RenderEngine& renderEngine,
|
|
ShaderBuildQueue& shaderBuildQueue,
|
|
VideoBackend& videoBackend);
|
|
|
|
bool ApplyRuntimeCoordinatorResult(const RuntimeCoordinatorResult& result, std::string* error = nullptr);
|
|
bool ProcessRuntimeWork();
|
|
void RequestShaderBuild();
|
|
void BroadcastRuntimeState();
|
|
|
|
private:
|
|
void HandleRuntimeStateBroadcastRequested(const RuntimeEvent& event);
|
|
|
|
RuntimeStore& mRuntimeStore;
|
|
RuntimeCoordinator& mRuntimeCoordinator;
|
|
RuntimeEventDispatcher& mRuntimeEventDispatcher;
|
|
RuntimeServices& mRuntimeServices;
|
|
RenderEngine& mRenderEngine;
|
|
ShaderBuildQueue& mShaderBuildQueue;
|
|
VideoBackend& mVideoBackend;
|
|
};
|