History

merge old work

HifiExperiments committed 2 years ago

Commit 56f697e1 parent 1fe2fc5165 files · +2635 −1993Browse files

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

Unified · Split

interface/src/scripting/RenderScriptingInterface.cpp+53−30
@@ -19,14 +19,14 @@ STATIC_SCRIPT_TYPES_INITIALIZER((+[](ScriptManager* manager){ · 18 unmodified lines
19 auto scriptEngine = manager->engine().get();19 auto scriptEngine = manager->engine().get();
20 20
21 scriptRegisterMetaType<RenderScriptingInterface::RenderMethod, scriptValueFromEnumClass<RenderScriptingInterface::RenderMethod>, scriptValueToEnumClass<RenderScriptingInterface::RenderMethod> >(scriptEngine, "RenderMethod");21 scriptRegisterMetaType<RenderScriptingInterface::RenderMethod, scriptValueFromEnumClass<RenderScriptingInterface::RenderMethod>, scriptValueToEnumClass<RenderScriptingInterface::RenderMethod> >(scriptEngine, "RenderMethod");
22 scriptRegisterMetaType<AntialiasingConfig::Mode, scriptValueFromEnumClass<AntialiasingConfig::Mode>, scriptValueToEnumClass<AntialiasingConfig::Mode> >(scriptEngine, "Mode");22 scriptRegisterMetaType<AntialiasingSetupConfig::Mode, scriptValueFromEnumClass<AntialiasingSetupConfig::Mode>, scriptValueToEnumClass<AntialiasingSetupConfig::Mode> >(scriptEngine, "Mode");
23}));23}));
24 24
25STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager){25STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager){
26 auto scriptEngine = manager->engine().get();26 auto scriptEngine = manager->engine().get();
27 27
28 scriptEngine->registerEnum("Render.RenderMethod",QMetaEnum::fromType<RenderScriptingInterface::RenderMethod>());28 scriptEngine->registerEnum("Render.RenderMethod",QMetaEnum::fromType<RenderScriptingInterface::RenderMethod>());
29 scriptEngine->registerEnum("AntialiasingMode",QMetaEnum::fromType<AntialiasingConfig::Mode>());29 scriptEngine->registerEnum("AntialiasingMode",QMetaEnum::fromType<AntialiasingSetupConfig::Mode>());
30});30});
31 31
32RenderScriptingInterface* RenderScriptingInterface::getInstance() {32RenderScriptingInterface* RenderScriptingInterface::getInstance() {
@@ -49,7 +49,7 @@ void RenderScriptingInterface::loadSettings() { · 16 unmodified lines
49 _shadowsEnabled = (_shadowsEnabledSetting.get());49 _shadowsEnabled = (_shadowsEnabledSetting.get());
50 _ambientOcclusionEnabled = (_ambientOcclusionEnabledSetting.get());50 _ambientOcclusionEnabled = (_ambientOcclusionEnabledSetting.get());
51 //_antialiasingMode = (_antialiasingModeSetting.get());51 //_antialiasingMode = (_antialiasingModeSetting.get());
52 _antialiasingMode = static_cast<AntialiasingConfig::Mode>(_antialiasingModeSetting.get());52 _antialiasingMode = static_cast<AntialiasingSetupConfig::Mode>(_antialiasingModeSetting.get());
53 _viewportResolutionScale = (_viewportResolutionScaleSetting.get());53 _viewportResolutionScale = (_viewportResolutionScaleSetting.get());
54 _fullScreenScreen = (_fullScreenScreenSetting.get());54 _fullScreenScreen = (_fullScreenScreenSetting.get());
55 });55 });
@@ -84,10 +84,16 @@ void RenderScriptingInterface::forceRenderMethod(RenderMethod renderMethod) { · 28 unmodified lines
84 _renderMethod = (int)renderMethod;84 _renderMethod = (int)renderMethod;
85 _renderMethodSetting.set((int)renderMethod);85 _renderMethodSetting.set((int)renderMethod);
86 86
87 auto config = dynamic_cast<render::SwitchConfig*>(qApp->getRenderEngine()->getConfiguration()->getConfig("RenderMainView.DeferredForwardSwitch"));87 auto renderConfig = qApp->getRenderEngine()->getConfiguration();
88 auto config = dynamic_cast<render::SwitchConfig*>(renderConfig->getConfig("RenderMainView.DeferredForwardSwitch"));
88 if (config) {89 if (config) {
89 config->setBranch((int)renderMethod);90 config->setBranch((int)renderMethod);
90 }91 }
92
93 auto secondaryConfig = dynamic_cast<render::SwitchConfig*>(renderConfig->getConfig("RenderSecondView.DeferredForwardSwitch"));
94 if (secondaryConfig) {
95 secondaryConfig->setBranch((int)renderMethod);
96 }
91 });97 });
92}98}
93 99
@@ -111,17 +117,16 @@ void RenderScriptingInterface::forceShadowsEnabled(bool enabled) { · 17 unmodified lines
111 _renderSettingLock.withWriteLock([&] {117 _renderSettingLock.withWriteLock([&] {
112 _shadowsEnabled = (enabled);118 _shadowsEnabled = (enabled);
113 _shadowsEnabledSetting.set(enabled);119 _shadowsEnabledSetting.set(enabled);
120 Menu::getInstance()->setIsOptionChecked(MenuOption::Shadows, enabled);
114 121
115 auto renderConfig = qApp->getRenderEngine()->getConfiguration();122 auto renderConfig = qApp->getRenderEngine()->getConfiguration();
116 assert(renderConfig);123 assert(renderConfig);
117 auto lightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderMainView.LightingModel");124 auto lightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderMainView.LightingModel");
118 if (lightingModelConfig) {125 if (lightingModelConfig) {
119 Menu::getInstance()->setIsOptionChecked(MenuOption::Shadows, enabled);
120 lightingModelConfig->setShadow(enabled);126 lightingModelConfig->setShadow(enabled);
121 }127 }
122 auto secondaryLightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderSecondView.LightingModel");128 auto secondaryLightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderSecondView.LightingModel");
123 if (secondaryLightingModelConfig) {129 if (secondaryLightingModelConfig) {
124 Menu::getInstance()->setIsOptionChecked(MenuOption::Shadows, enabled);
125 secondaryLightingModelConfig->setShadow(enabled);130 secondaryLightingModelConfig->setShadow(enabled);
126 }131 }
127 });132 });
@@ -142,63 +147,70 @@ void RenderScriptingInterface::forceAmbientOcclusionEnabled(bool enabled) { · 14 unmodified lines
142 _renderSettingLock.withWriteLock([&] {147 _renderSettingLock.withWriteLock([&] {
143 _ambientOcclusionEnabled = (enabled);148 _ambientOcclusionEnabled = (enabled);
144 _ambientOcclusionEnabledSetting.set(enabled);149 _ambientOcclusionEnabledSetting.set(enabled);
150 Menu::getInstance()->setIsOptionChecked(MenuOption::AmbientOcclusion, enabled);
145 151
146 auto lightingModelConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<MakeLightingModel>("RenderMainView.LightingModel");152 auto renderConfig = qApp->getRenderEngine()->getConfiguration();
153 auto lightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderMainView.LightingModel");
147 if (lightingModelConfig) {154 if (lightingModelConfig) {
148 Menu::getInstance()->setIsOptionChecked(MenuOption::AmbientOcclusion, enabled);
149 lightingModelConfig->setAmbientOcclusion(enabled);155 lightingModelConfig->setAmbientOcclusion(enabled);
150 }156 }
157
158 auto secondaryLightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderSecondView.LightingModel");
159 if (secondaryLightingModelConfig) {
160 secondaryLightingModelConfig->setAmbientOcclusion(enabled);
161 }
151 });162 });
152}163}
153 164
154AntialiasingConfig::Mode RenderScriptingInterface::getAntialiasingMode() const {165AntialiasingSetupConfig::Mode RenderScriptingInterface::getAntialiasingMode() const {
155 return _antialiasingMode;166 return _antialiasingMode;
156}167}
157 168
158void RenderScriptingInterface::setAntialiasingMode(AntialiasingConfig::Mode mode) {169void RenderScriptingInterface::setAntialiasingMode(AntialiasingSetupConfig::Mode mode) {
159 if (_antialiasingMode != mode) {170 if (_antialiasingMode != mode) {
160 forceAntialiasingMode(mode);171 forceAntialiasingMode(mode);
161 emit settingsChanged();172 emit settingsChanged();
162 }173 }
163}174}
164 175
165void setAntialiasingModeForView(AntialiasingConfig::Mode mode, JitterSampleConfig *jitterCamConfig, AntialiasingConfig *antialiasingConfig) {176void setAntialiasingModeForView(AntialiasingSetupConfig::Mode mode, AntialiasingSetupConfig *antialiasingSetupConfig, AntialiasingConfig *antialiasingConfig) {
166 switch (mode) {177 switch (mode) {
167 case AntialiasingConfig::Mode::NONE:178 case AntialiasingSetupConfig::Mode::NONE:
168 jitterCamConfig->none();179 antialiasingSetupConfig->none();
169 antialiasingConfig->blend = 1;180 antialiasingConfig->blend = 1;
170 antialiasingConfig->setDebugFXAA(false);181 antialiasingConfig->setDebugFXAA(false);
171 break;182 break;
172 case AntialiasingConfig::Mode::TAA:183 case AntialiasingSetupConfig::Mode::TAA:
173 jitterCamConfig->play();184 antialiasingSetupConfig->play();
174 antialiasingConfig->blend = 0.25;185 antialiasingConfig->blend = 0.25;
175 antialiasingConfig->setDebugFXAA(false);186 antialiasingConfig->setDebugFXAA(false);
176 break;187 break;
177 case AntialiasingConfig::Mode::FXAA:188 case AntialiasingSetupConfig::Mode::FXAA:
178 jitterCamConfig->none();189 antialiasingSetupConfig->none();
179 antialiasingConfig->blend = 0.25;190 antialiasingConfig->blend = 0.25;
180 antialiasingConfig->setDebugFXAA(true);191 antialiasingConfig->setDebugFXAA(true);
181 break;192 break;
182 default:193 default:
183 jitterCamConfig->none();194 antialiasingSetupConfig->none();
184 antialiasingConfig->blend = 1;195 antialiasingConfig->blend = 1;
185 antialiasingConfig->setDebugFXAA(false);196 antialiasingConfig->setDebugFXAA(false);
186 break;197 break;
187 }198 }
188}199}
189 200
190void RenderScriptingInterface::forceAntialiasingMode(AntialiasingConfig::Mode mode) {201void RenderScriptingInterface::forceAntialiasingMode(AntialiasingSetupConfig::Mode mode) {
191 _renderSettingLock.withWriteLock([&] {202 _renderSettingLock.withWriteLock([&] {
192 _antialiasingMode = mode;203 _antialiasingMode = mode;
193 204
194 auto mainViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderMainView.JitterCam");205 auto renderConfig = qApp->getRenderEngine()->getConfiguration();
195 auto mainViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>("RenderMainView.Antialiasing");206 auto mainViewJitterCamConfig = renderConfig->getConfig<AntialiasingSetup>("RenderMainView.JitterCam");
196 auto secondViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderSecondView.JitterCam");207 auto mainViewAntialiasingConfig = renderConfig->getConfig<Antialiasing>("RenderMainView.Antialiasing");
197 auto secondViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>("RenderSecondView.Antialiasing");208 auto secondViewJitterCamConfig = renderConfig->getConfig<AntialiasingSetup>("RenderSecondView.JitterCam");
198 if (mode != AntialiasingConfig::Mode::NONE209 auto secondViewAntialiasingConfig = renderConfig->getConfig<Antialiasing>("RenderSecondView.Antialiasing");
199 && mode != AntialiasingConfig::Mode::TAA210 if (mode != AntialiasingSetupConfig::Mode::NONE
200 && mode != AntialiasingConfig::Mode::FXAA) {211 && mode != AntialiasingSetupConfig::Mode::TAA
201 _antialiasingMode = AntialiasingConfig::Mode::NONE;212 && mode != AntialiasingSetupConfig::Mode::FXAA) {
213 _antialiasingMode = AntialiasingSetupConfig::Mode::NONE;
202 }214 }
203 if (mainViewJitterCamConfig && mainViewAntialiasingConfig) {215 if (mainViewJitterCamConfig && mainViewAntialiasingConfig) {
204 setAntialiasingModeForView( mode, mainViewJitterCamConfig, mainViewAntialiasingConfig);216 setAntialiasingModeForView( mode, mainViewJitterCamConfig, mainViewAntialiasingConfig);
@@ -271,7 +283,7 @@ void RenderScriptingInterface::forceViewportResolutionScale(float scale) { · 66 unmodified lines
271 return;283 return;
272 }284 }
273 _renderSettingLock.withWriteLock([&] {285 _renderSettingLock.withWriteLock([&] {
274 _viewportResolutionScale = (scale);286 _viewportResolutionScale = scale;
275 _viewportResolutionScaleSetting.set(scale);287 _viewportResolutionScaleSetting.set(scale);
276 288
277 auto renderConfig = qApp->getRenderEngine()->getConfiguration();289 auto renderConfig = qApp->getRenderEngine()->getConfiguration();
@@ -279,12 +291,23 @@ void RenderScriptingInterface::forceViewportResolutionScale(float scale) { · 1 unmodified line
279 auto deferredView = renderConfig->getConfig("RenderMainView.RenderDeferredTask");291 auto deferredView = renderConfig->getConfig("RenderMainView.RenderDeferredTask");
280 // mainView can be null if we're rendering in forward mode292 // mainView can be null if we're rendering in forward mode
281 if (deferredView) {293 if (deferredView) {
282 deferredView->setProperty("resolutionScale", _viewportResolutionScale);294 deferredView->setProperty("resolutionScale", scale);
283 }295 }
284 auto forwardView = renderConfig->getConfig("RenderMainView.RenderForwardTask");296 auto forwardView = renderConfig->getConfig("RenderMainView.RenderForwardTask");
285 // mainView can be null if we're rendering in forward mode297 // mainView can be null if we're rendering in forward mode
286 if (forwardView) {298 if (forwardView) {
287 forwardView->setProperty("resolutionScale", _viewportResolutionScale);299 forwardView->setProperty("resolutionScale", scale);
300 }
301
302 auto deferredSecondView = renderConfig->getConfig("RenderSecondView.RenderDeferredTask");
303 // mainView can be null if we're rendering in forward mode
304 if (deferredSecondView) {
305 deferredSecondView->setProperty("resolutionScale", scale);
306 }
307 auto forwardSecondView = renderConfig->getConfig("RenderMainView.RenderForwardTask");
308 // mainView can be null if we're rendering in forward mode
309 if (forwardSecondView) {
310 forwardSecondView->setProperty("resolutionScale", scale);
288 }311 }
289 });312 });
290}313}