Showing the changes to interface/src/scripting/RenderScriptingInterface.cpp (1 of 1 file). Show all
Unified · Split
| @@ -292,43 +292,51 @@ void setAntialiasingModeForView(AntialiasingConfig::Mode mode, JitterSampleConfi · 291 unmodified lines | ||
| 292 | 292 | } |
| 293 | 293 | } |
| 294 | 294 | |
| 295 | −void RenderScriptingInterface::forceAntialiasingMode(AntialiasingConfig::Mode mode) { | |
| 296 | − _renderSettingLock.withWriteLock([&] { | |
| 297 | − _antialiasingMode = mode; | |
| 298 | − | |
| 299 | − auto mainViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderMainView.JitterCam"); | |
| 300 | − auto mainViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>("RenderMainView.Antialiasing"); | |
| 295 | +void recursivelyUpdateAntialiasingMode(const QString& parentTaskName, AntialiasingConfig::Mode mode, int depth = -1) { | |
| 296 | + if (depth == -1) { | |
| 301 | 297 | auto secondViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderSecondView.JitterCam"); |
| 302 | 298 | auto secondViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>("RenderSecondView.Antialiasing"); |
| 303 | − if (mode != AntialiasingConfig::Mode::NONE | |
| 304 | − && mode != AntialiasingConfig::Mode::TAA | |
| 305 | − && mode != AntialiasingConfig::Mode::FXAA) { | |
| 306 | − _antialiasingMode = AntialiasingConfig::Mode::NONE; | |
| 299 | + if (secondViewJitterCamConfig && secondViewAntialiasingConfig) { | |
| 300 | + setAntialiasingModeForView(mode, secondViewJitterCamConfig, secondViewAntialiasingConfig); | |
| 307 | 301 | } |
| 302 | + | |
| 303 | + auto mainViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderMainView.JitterCam"); | |
| 304 | + auto mainViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>("RenderMainView.Antialiasing"); | |
| 308 | 305 | if (mainViewJitterCamConfig && mainViewAntialiasingConfig) { |
| 309 | 306 | setAntialiasingModeForView( mode, mainViewJitterCamConfig, mainViewAntialiasingConfig); |
| 310 | 307 | } |
| 311 | − if (secondViewJitterCamConfig && secondViewAntialiasingConfig) { | |
| 312 | − setAntialiasingModeForView( mode, secondViewJitterCamConfig, secondViewAntialiasingConfig); | |
| 313 | − } | |
| 314 | 308 | |
| 315 | − _antialiasingModeSetting.set(_antialiasingMode); | |
| 316 | − }); | |
| 317 | −} | |
| 309 | + recursivelyUpdateAntialiasingMode("RenderMainView", mode, depth + 1); | |
| 310 | + } else if (depth == RenderMirrorTask::MAX_MIRROR_DEPTH) { | |
| 311 | + return; | |
| 312 | + } | |
| 318 | 313 | |
| 319 | −float RenderScriptingInterface::getViewportResolutionScale() const { | |
| 320 | − return _viewportResolutionScale; | |
| 314 | + for (size_t mirrorIndex = 0; mirrorIndex < RenderMirrorTask::MAX_MIRRORS_PER_LEVEL; mirrorIndex++) { | |
| 315 | + std::string mirrorTaskString = parentTaskName.toStdString() + ".RenderMirrorView" + std::to_string(mirrorIndex) + "Depth" + std::to_string(depth); | |
| 316 | + auto jitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>(mirrorTaskString + ".JitterCam"); | |
| 317 | + auto antialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>(mirrorTaskString + ".Antialiasing"); | |
| 318 | + if (jitterCamConfig && antialiasingConfig) { | |
| 319 | + setAntialiasingModeForView(mode, jitterCamConfig, antialiasingConfig); | |
| 320 | + recursivelyUpdateAntialiasingMode(QString::fromStdString(mirrorTaskString), mode, depth + 1); | |
| 321 | + } | |
| 322 | + } | |
| 321 | 323 | } |
| 322 | 324 | |
| 323 | −void RenderScriptingInterface::setViewportResolutionScale(float scale) { | |
| 324 | − if (_viewportResolutionScale != scale) { | |
| 325 | − forceViewportResolutionScale(scale); | |
| 326 | − emit settingsChanged(); | |
| 325 | +void RenderScriptingInterface::forceAntialiasingMode(AntialiasingConfig::Mode mode) { | |
| 326 | + if ((int)mode < 0 || mode >= AntialiasingConfig::Mode::MODE_COUNT) { | |
| 327 | + mode = AntialiasingConfig::Mode::NONE; | |
| 327 | 328 | } |
| 329 | + | |
| 330 | + _renderSettingLock.withWriteLock([&] { | |
| 331 | + _antialiasingMode = mode; | |
| 332 | + _antialiasingModeSetting.set(_antialiasingMode); | |
| 333 | + | |
| 334 | + recursivelyUpdateAntialiasingMode("", _antialiasingMode); | |
| 335 | + }); | |
| 328 | 336 | } |
| 329 | 337 | |
| 330 | 338 | void RenderScriptingInterface::setVerticalFieldOfView(float fieldOfView) { |
| 331 | − if (getViewportResolutionScale() != fieldOfView) { | |
| 339 | + if (qApp->getFieldOfView() != fieldOfView) { | |
| 332 | 340 | qApp->setFieldOfView(fieldOfView); |
| 333 | 341 | emit settingsChanged(); |
| 334 | 342 | } |
| @@ -368,6 +376,16 @@ QString RenderScriptingInterface::getFullScreenScreen() const { · 33 unmodified lines | ||
| 368 | 376 | return _fullScreenScreen; |
| 369 | 377 | } |
| 370 | 378 | |
| 379 | +float RenderScriptingInterface::getViewportResolutionScale() const { | |
| 380 | + return _viewportResolutionScale; | |
| 381 | +} | |
| 382 | + | |
| 383 | +void RenderScriptingInterface::setViewportResolutionScale(float scale) { | |
| 384 | + if (_viewportResolutionScale != scale) { | |
| 385 | + forceViewportResolutionScale(scale); | |
| 386 | + emit settingsChanged(); | |
| 387 | + } | |
| 388 | +} | |
| 371 | 389 | |
| 372 | 390 | void RenderScriptingInterface::forceViewportResolutionScale(float scale) { |
| 373 | 391 | // just not negative values or zero |