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) { | 295 | void recursivelyUpdateAntialiasingMode(const QString& parentTaskName, AntialiasingConfig::Mode mode, int depth = -1) { |
| 296 | _renderSettingLock.withWriteLock([&] { | 296 | if (depth == -1) { |
| 297 | _antialiasingMode = mode; | ||
| 298 | |||
| 299 | auto mainViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderMainView.JitterCam"); | ||
| 300 | auto mainViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>("RenderMainView.Antialiasing"); | ||
| 301 | auto secondViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderSecondView.JitterCam"); | 297 | auto secondViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderSecondView.JitterCam"); |
| 302 | auto secondViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>("RenderSecondView.Antialiasing"); | 298 | auto secondViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>("RenderSecondView.Antialiasing"); |
| 303 | if (mode != AntialiasingConfig::Mode::NONE | 299 | if (secondViewJitterCamConfig && secondViewAntialiasingConfig) { |
| 304 | && mode != AntialiasingConfig::Mode::TAA | 300 | setAntialiasingModeForView(mode, secondViewJitterCamConfig, secondViewAntialiasingConfig); |
| 305 | && mode != AntialiasingConfig::Mode::FXAA) { | ||
| 306 | _antialiasingMode = AntialiasingConfig::Mode::NONE; | ||
| 307 | } | 301 | } |
| 302 | |||
| 303 | auto mainViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderMainView.JitterCam"); | ||
| 304 | auto mainViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>("RenderMainView.Antialiasing"); | ||
| 308 | if (mainViewJitterCamConfig && mainViewAntialiasingConfig) { | 305 | if (mainViewJitterCamConfig && mainViewAntialiasingConfig) { |
| 309 | setAntialiasingModeForView( mode, mainViewJitterCamConfig, mainViewAntialiasingConfig); | 306 | setAntialiasingModeForView( mode, mainViewJitterCamConfig, mainViewAntialiasingConfig); |
| 310 | } | 307 | } |
| 311 | if (secondViewJitterCamConfig && secondViewAntialiasingConfig) { | ||
| 312 | setAntialiasingModeForView( mode, secondViewJitterCamConfig, secondViewAntialiasingConfig); | ||
| 313 | } | ||
| 314 | 308 | ||
| 315 | _antialiasingModeSetting.set(_antialiasingMode); | 309 | recursivelyUpdateAntialiasingMode("RenderMainView", mode, depth + 1); |
| 316 | }); | 310 | } else if (depth == RenderMirrorTask::MAX_MIRROR_DEPTH) { |
| 317 | } | 311 | return; |
| 312 | } | ||
| 318 | 313 | ||
| 319 | float RenderScriptingInterface::getViewportResolutionScale() const { | 314 | for (size_t mirrorIndex = 0; mirrorIndex < RenderMirrorTask::MAX_MIRRORS_PER_LEVEL; mirrorIndex++) { |
| 320 | return _viewportResolutionScale; | 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) { | 325 | void RenderScriptingInterface::forceAntialiasingMode(AntialiasingConfig::Mode mode) { |
| 324 | if (_viewportResolutionScale != scale) { | 326 | if ((int)mode < 0 || mode >= AntialiasingConfig::Mode::MODE_COUNT) { |
| 325 | forceViewportResolutionScale(scale); | 327 | mode = AntialiasingConfig::Mode::NONE; |
| 326 | emit settingsChanged(); | ||
| 327 | } | 328 | } |
| 329 | |||
| 330 | _renderSettingLock.withWriteLock([&] { | ||
| 331 | _antialiasingMode = mode; | ||
| 332 | _antialiasingModeSetting.set(_antialiasingMode); | ||
| 333 | |||
| 334 | recursivelyUpdateAntialiasingMode("", _antialiasingMode); | ||
| 335 | }); | ||
| 328 | } | 336 | } |
| 329 | 337 | ||
| 330 | void RenderScriptingInterface::setVerticalFieldOfView(float fieldOfView) { | 338 | void RenderScriptingInterface::setVerticalFieldOfView(float fieldOfView) { |
| 331 | if (getViewportResolutionScale() != fieldOfView) { | 339 | if (qApp->getFieldOfView() != fieldOfView) { |
| 332 | qApp->setFieldOfView(fieldOfView); | 340 | qApp->setFieldOfView(fieldOfView); |
| 333 | emit settingsChanged(); | 341 | emit settingsChanged(); |
| 334 | } | 342 | } |
| @@ -368,6 +376,16 @@ QString RenderScriptingInterface::getFullScreenScreen() const { · 33 unmodified lines | |||
| 368 | return _fullScreenScreen; | 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 | void RenderScriptingInterface::forceViewportResolutionScale(float scale) { | 390 | void RenderScriptingInterface::forceViewportResolutionScale(float scale) { |
| 373 | // just not negative values or zero | 391 | // just not negative values or zero |