History

more graphics options

HifiExperiments committed 2 years ago

Commit d4ca3d51 parent 3dad0f16 files · +245 −52Browse files

Showing the changes to interface/src/scripting/RenderScriptingInterface.cpp (1 of 6 files). Show all

Unified · Split

interface/src/scripting/RenderScriptingInterface.cpp+95−15
@@ -16,6 +16,8 @@ · 15 unmodified lines
1616 #include <QScreen>
1717 #include "ScreenName.h"
1818
19+#include <MeshPartPayload.h>
20+
1921 STATIC_SCRIPT_TYPES_INITIALIZER((+[](ScriptManager* manager){
2022 auto scriptEngine = manager->engine().get();
2123
@@ -43,16 +45,17 @@ RenderScriptingInterface::RenderScriptingInterface() { · 21 unmodified lines
4345 });
4446 }
4547
46−
4748 void RenderScriptingInterface::loadSettings() {
4849 _renderSettingLock.withReadLock([&] {
49− _renderMethod = (_renderMethodSetting.get());
50− _shadowsEnabled = (_shadowsEnabledSetting.get());
51− _ambientOcclusionEnabled = (_ambientOcclusionEnabledSetting.get());
52− //_antialiasingMode = (_antialiasingModeSetting.get());
50+ _renderMethod = _renderMethodSetting.get();
51+ _shadowsEnabled = _shadowsEnabledSetting.get();
52+ _hazeEnabled = _hazeEnabledSetting.get();
53+ _bloomEnabled = _bloomEnabledSetting.get();
54+ _ambientOcclusionEnabled = _ambientOcclusionEnabledSetting.get();
55+ _proceduralMaterialsEnabled = _proceduralMaterialsEnabledSetting.get();
5356 _antialiasingMode = static_cast<AntialiasingConfig::Mode>(_antialiasingModeSetting.get());
54− _viewportResolutionScale = (_viewportResolutionScaleSetting.get());
55− _fullScreenScreen = (_fullScreenScreenSetting.get());
57+ _viewportResolutionScale = _viewportResolutionScaleSetting.get();
58+ _fullScreenScreen = _fullScreenScreenSetting.get();
5659 });
5760
5861 // If full screen screen is not initialized, or set to an invalid value,
@@ -65,7 +68,10 @@ void RenderScriptingInterface::loadSettings() { · 6 unmodified lines
6568
6669 forceRenderMethod((RenderMethod)_renderMethod);
6770 forceShadowsEnabled(_shadowsEnabled);
71+ forceHazeEnabled(_hazeEnabled);
72+ forceBloomEnabled(_bloomEnabled);
6873 forceAmbientOcclusionEnabled(_ambientOcclusionEnabled);
74+ forceProceduralMaterialsEnabled(_proceduralMaterialsEnabled);
6975 forceAntialiasingMode(_antialiasingMode);
7076 forceViewportResolutionScale(_viewportResolutionScale);
7177 }
@@ -136,19 +142,76 @@ void RenderScriptingInterface::forceShadowsEnabled(bool enabled) { · 64 unmodified lines
136142
137143 auto renderConfig = qApp->getRenderEngine()->getConfiguration();
138144 assert(renderConfig);
145+ Menu::getInstance()->setIsOptionChecked(MenuOption::Shadows, enabled);
139146 auto lightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderMainView.LightingModel");
140147 if (lightingModelConfig) {
141− Menu::getInstance()->setIsOptionChecked(MenuOption::Shadows, enabled);
142148 lightingModelConfig->setShadow(enabled);
143149 }
144150 auto secondaryLightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderSecondView.LightingModel");
145151 if (secondaryLightingModelConfig) {
146− Menu::getInstance()->setIsOptionChecked(MenuOption::Shadows, enabled);
147152 secondaryLightingModelConfig->setShadow(enabled);
148153 }
149154 });
150155 }
151156
157+bool RenderScriptingInterface::getHazeEnabled() const {
158+ return _hazeEnabled;
159+}
160+
161+void RenderScriptingInterface::setHazeEnabled(bool enabled) {
162+ if (_hazeEnabled != enabled) {
163+ forceHazeEnabled(enabled);
164+ emit settingsChanged();
165+ }
166+}
167+
168+void RenderScriptingInterface::forceHazeEnabled(bool enabled) {
169+ _renderSettingLock.withWriteLock([&] {
170+ _hazeEnabled = (enabled);
171+ _hazeEnabledSetting.set(enabled);
172+
173+ auto renderConfig = qApp->getRenderEngine()->getConfiguration();
174+ assert(renderConfig);
175+ auto lightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderMainView.LightingModel");
176+ if (lightingModelConfig) {
177+ lightingModelConfig->setHaze(enabled);
178+ }
179+ auto secondaryLightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderSecondView.LightingModel");
180+ if (secondaryLightingModelConfig) {
181+ secondaryLightingModelConfig->setHaze(enabled);
182+ }
183+ });
184+}
185+
186+bool RenderScriptingInterface::getBloomEnabled() const {
187+ return _bloomEnabled;
188+}
189+
190+void RenderScriptingInterface::setBloomEnabled(bool enabled) {
191+ if (_bloomEnabled != enabled) {
192+ forceBloomEnabled(enabled);
193+ emit settingsChanged();
194+ }
195+}
196+
197+void RenderScriptingInterface::forceBloomEnabled(bool enabled) {
198+ _renderSettingLock.withWriteLock([&] {
199+ _bloomEnabled = (enabled);
200+ _bloomEnabledSetting.set(enabled);
201+
202+ auto renderConfig = qApp->getRenderEngine()->getConfiguration();
203+ assert(renderConfig);
204+ auto lightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderMainView.LightingModel");
205+ if (lightingModelConfig) {
206+ lightingModelConfig->setBloom(enabled);
207+ }
208+ auto secondaryLightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderSecondView.LightingModel");
209+ if (secondaryLightingModelConfig) {
210+ secondaryLightingModelConfig->setBloom(enabled);
211+ }
212+ });
213+}
214+
152215 bool RenderScriptingInterface::getAmbientOcclusionEnabled() const {
153216 return _ambientOcclusionEnabled;
154217 }
@@ -165,11 +228,29 @@ void RenderScriptingInterface::forceAmbientOcclusionEnabled(bool enabled) { · 10 unmodified lines
165228 _ambientOcclusionEnabled = (enabled);
166229 _ambientOcclusionEnabledSetting.set(enabled);
167230
168− auto lightingModelConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<MakeLightingModel>("RenderMainView.LightingModel");
169− if (lightingModelConfig) {
170− Menu::getInstance()->setIsOptionChecked(MenuOption::AmbientOcclusion, enabled);
171− lightingModelConfig->setAmbientOcclusion(enabled);
172− }
231+ Menu::getInstance()->setIsOptionChecked(MenuOption::AmbientOcclusion, enabled);
232+ ModelMeshPartPayload::enableMaterialProceduralShaders = enabled;
233+ });
234+}
235+
236+bool RenderScriptingInterface::getProceduralMaterialsEnabled() const {
237+ return _proceduralMaterialsEnabled;
238+}
239+
240+void RenderScriptingInterface::setProceduralMaterialsEnabled(bool enabled) {
241+ if (_proceduralMaterialsEnabled != enabled) {
242+ forceProceduralMaterialsEnabled(enabled);
243+ emit settingsChanged();
244+ }
245+}
246+
247+void RenderScriptingInterface::forceProceduralMaterialsEnabled(bool enabled) {
248+ _renderSettingLock.withWriteLock([&] {
249+ _proceduralMaterialsEnabled = (enabled);
250+ _proceduralMaterialsEnabledSetting.set(enabled);
251+
252+ Menu::getInstance()->setIsOptionChecked(MenuOption::MaterialProceduralShaders, enabled);
253+ ModelMeshPartPayload::enableMaterialProceduralShaders = enabled;
173254 });
174255 }
175256
@@ -233,7 +314,6 @@ void RenderScriptingInterface::forceAntialiasingMode(AntialiasingConfig::Mode mo · 57 unmodified lines
233314 });
234315 }
235316
236−
237317 float RenderScriptingInterface::getViewportResolutionScale() const {
238318 return _viewportResolutionScale;
239319 }