History

fix AA in mirrors

HifiExperiments committed 2 years ago

Commit 3e617d01 parent 25945831 file · +41 −23Browse files

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

Unified · Split

interface/src/scripting/RenderScriptingInterface.cpp+41−23
@@ -292,43 +292,51 @@ void setAntialiasingModeForView(AntialiasingConfig::Mode mode, JitterSampleConfi · 291 unmodified lines
292 }292 }
293}293}
294 294
295void RenderScriptingInterface::forceAntialiasingMode(AntialiasingConfig::Mode mode) {295void 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::NONE299 if (secondViewJitterCamConfig && secondViewAntialiasingConfig) {
304 && mode != AntialiasingConfig::Mode::TAA300 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
319float 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
323void RenderScriptingInterface::setViewportResolutionScale(float scale) {325void 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
330void RenderScriptingInterface::setVerticalFieldOfView(float fieldOfView) {338void 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
379float RenderScriptingInterface::getViewportResolutionScale() const {
380 return _viewportResolutionScale;
381}
382
383void RenderScriptingInterface::setViewportResolutionScale(float scale) {
384 if (_viewportResolutionScale != scale) {
385 forceViewportResolutionScale(scale);
386 emit settingsChanged();
387 }
388}
371 389
372void RenderScriptingInterface::forceViewportResolutionScale(float scale) {390void RenderScriptingInterface::forceViewportResolutionScale(float scale) {
373 // just not negative values or zero391 // just not negative values or zero