diff --git a/interface/src/workload/GameWorkload.cpp b/interface/src/workload/GameWorkload.cpp index 877e3fb01c..b2f4001afa 100644 --- a/interface/src/workload/GameWorkload.cpp +++ b/interface/src/workload/GameWorkload.cpp @@ -41,8 +41,8 @@ void ControlViews::run(const workload::WorkloadContextPointer& runContext, const int i = 0; for (auto& outView : outViews) { auto& current = regionBackFronts[workload::Region::R2].y; - current = wtf_adjust(current, inTimings[0]); - outView.regions[workload::Region::R2].y = current; + auto newCurrent = wtf_adjust(current, inTimings[0]); + outView.regions[workload::Region::R2].y = newCurrent; workload::View::updateRegionsFromBackFronts(outView); } } diff --git a/libraries/workload/src/workload/ViewTask.cpp b/libraries/workload/src/workload/ViewTask.cpp index 672078fb9a..d817ac6fdd 100644 --- a/libraries/workload/src/workload/ViewTask.cpp +++ b/libraries/workload/src/workload/ViewTask.cpp @@ -62,7 +62,11 @@ void SetupViews::run(const WorkloadContextPointer& renderContext, const Input& i // Update regions based on the current config for (auto& v : outViews) { - View::updateRegionsFromBackFrontDistances(v, (float*) &data); + if (data.applyViewRanges) { + View::updateRegionsFromBackFrontDistances(v, (float*) &data); + } else { + View::updateRegionsFromBackFronts(v); + } } // outViews is ready to be used diff --git a/libraries/workload/src/workload/ViewTask.h b/libraries/workload/src/workload/ViewTask.h index fd22d76715..25fad29f20 100644 --- a/libraries/workload/src/workload/ViewTask.h +++ b/libraries/workload/src/workload/ViewTask.h @@ -27,6 +27,7 @@ namespace workload { Q_PROPERTY(bool forceViewHorizontal READ forceViewHorizontal WRITE setForceViewHorizontal NOTIFY dirty) Q_PROPERTY(bool simulateSecondaryCamera READ simulateSecondaryCamera WRITE setSimulateSecondaryCamera NOTIFY dirty) + Q_PROPERTY(bool applyViewRanges READ applyViewRanges WRITE setApplyViewRanges NOTIFY dirty) public: @@ -54,6 +55,9 @@ namespace workload { bool simulateSecondaryCamera() const { return data.simulateSecondaryCamera; } void setSimulateSecondaryCamera(bool use) { data.simulateSecondaryCamera = use; emit dirty(); } + bool applyViewRanges() const { return data.applyViewRanges; } + void setApplyViewRanges(bool use) { data.applyViewRanges = use; emit dirty(); } + struct Data { float r1Back { 2.0f }; float r1Front { 10.0f }; @@ -68,6 +72,8 @@ namespace workload { bool useAvatarView{ false }; bool forceViewHorizontal{ false }; bool simulateSecondaryCamera{ false }; + bool applyViewRanges{ true }; + } data; signals: diff --git a/scripts/developer/utilities/workload/workloadInspector.qml b/scripts/developer/utilities/workload/workloadInspector.qml index 2dc4ad0491..ffe80f35f4 100644 --- a/scripts/developer/utilities/workload/workloadInspector.qml +++ b/scripts/developer/utilities/workload/workloadInspector.qml @@ -110,6 +110,14 @@ Rectangle { } } + Separator {} + HifiControls.CheckBox { + boxSize: 20 + text: "Apply Front Back Ranges" + checked: Workload.getConfig("setupViews")["applyViewRanges"] + onCheckedChanged: { Workload.getConfig("setupViews")["applyViewRanges"] = checked; } + } + RowLayout { anchors.left: parent.left anchors.right: parent.right