12 #ifndef hifi_render_Engine_h
13 #define hifi_render_Engine_h
15 #include <SettingHandle.h>
17 #include <gpu/Batch.h>
18 #include <task/Task.h>
26 class RenderContext :
public task::JobContext {
28 RenderContext() : task::JobContext() {}
29 virtual ~RenderContext() {}
34 using RenderContextPointer = std::shared_ptr<RenderContext>;
36 Task_DeclareCategoryTimeProfilerClass(RenderTimeProfiler, trace_render);
38 Task_DeclareTypeAliases(RenderContext, RenderTimeProfiler)
41 class GPUJobConfig :
public JobConfig {
43 Q_PROPERTY(
double gpuRunTime READ getGPURunTime)
44 Q_PROPERTY(
double batchRunTime READ getBatchRunTime)
46 double _msGPURunTime { 0.0 };
47 double _msBatchRunTime { 0.0 };
49 using Persistent = PersistentConfig<GPUJobConfig>;
51 GPUJobConfig() =
default;
52 GPUJobConfig(
bool enabled) : JobConfig(enabled) {}
55 void setGPUBatchRunTime(
double msGpuTime,
double msBatchTime) { _msGPURunTime = msGpuTime; _msBatchRunTime = msBatchTime; }
56 double getGPURunTime()
const {
return _msGPURunTime; }
57 double getBatchRunTime()
const {
return _msBatchRunTime; }
60 class GPUTaskConfig :
public TaskConfig {
62 Q_PROPERTY(
double gpuRunTime READ getGPURunTime)
63 Q_PROPERTY(
double batchRunTime READ getBatchRunTime)
65 double _msGPURunTime { 0.0 };
66 double _msBatchRunTime { 0.0 };
69 using Persistent = PersistentConfig<GPUTaskConfig>;
72 GPUTaskConfig() =
default;
73 GPUTaskConfig(
bool enabled) : render::TaskConfig(enabled) {}
76 void setGPUBatchRunTime(
double msGpuTime,
double msBatchTime) { _msGPURunTime = msGpuTime; _msBatchRunTime = msBatchTime; }
77 double getGPURunTime()
const {
return _msGPURunTime; }
78 double getBatchRunTime()
const {
return _msBatchRunTime; }
85 class RenderEngine :
public Engine {
89 ~RenderEngine() =
default;
96 void registerScene(
const ScenePointer& scene) { _context->_scene = scene; }
99 RenderContextPointer getRenderContext()
const {
return _context; }
103 using EnginePointer = std::shared_ptr<RenderEngine>;