13 #ifndef hifi_render_Engine_h
14 #define hifi_render_Engine_h
16 #include <SettingHandle.h>
18 #include <gpu/Batch.h>
19 #include <task/Task.h>
27 class RenderContext :
public task::JobContext {
29 RenderContext() : task::JobContext() {}
30 virtual ~RenderContext() {}
35 using RenderContextPointer = std::shared_ptr<RenderContext>;
37 Task_DeclareCategoryTimeProfilerClass(RenderTimeProfiler, trace_render);
39 Task_DeclareTypeAliases(RenderContext, RenderTimeProfiler)
42 class GPUJobConfig :
public JobConfig {
44 Q_PROPERTY(
double gpuRunTime READ getGPURunTime)
45 Q_PROPERTY(
double batchRunTime READ getBatchRunTime)
47 double _msGPURunTime { 0.0 };
48 double _msBatchRunTime { 0.0 };
50 using Persistent = PersistentConfig<GPUJobConfig>;
52 GPUJobConfig() =
default;
53 GPUJobConfig(
bool enabled) : JobConfig(enabled) {}
56 void setGPUBatchRunTime(
double msGpuTime,
double msBatchTime) { _msGPURunTime = msGpuTime; _msBatchRunTime = msBatchTime; }
57 double getGPURunTime()
const {
return _msGPURunTime; }
58 double getBatchRunTime()
const {
return _msBatchRunTime; }
61 class GPUTaskConfig :
public TaskConfig {
63 Q_PROPERTY(
double gpuRunTime READ getGPURunTime)
64 Q_PROPERTY(
double batchRunTime READ getBatchRunTime)
66 double _msGPURunTime { 0.0 };
67 double _msBatchRunTime { 0.0 };
70 using Persistent = PersistentConfig<GPUTaskConfig>;
73 GPUTaskConfig() =
default;
74 GPUTaskConfig(
bool enabled) : render::TaskConfig(enabled) {}
77 void setGPUBatchRunTime(
double msGpuTime,
double msBatchTime) { _msGPURunTime = msGpuTime; _msBatchRunTime = msBatchTime; }
78 double getGPURunTime()
const {
return _msGPURunTime; }
79 double getBatchRunTime()
const {
return _msBatchRunTime; }
86 class RenderEngine :
public Engine {
89 enum TransformSlot : uint8_t {
95 ~RenderEngine() =
default;
102 void registerScene(
const ScenePointer& scene) { _context->_scene = scene; }
105 RenderContextPointer getRenderContext()
const {
return _context; }
109 using EnginePointer = std::shared_ptr<RenderEngine>;