Showing the changes to interface/src/scripting/RenderScriptingInterface.cpp (1 of 201 files). Show all
Unified · Split
| @@ -25,14 +25,14 @@ STATIC_SCRIPT_TYPES_INITIALIZER((+[](ScriptManager* manager){ · 24 unmodified lines | ||
| 25 | 25 | auto scriptEngine = manager->engine().get(); |
| 26 | 26 | |
| 27 | 27 | scriptRegisterMetaType<RenderScriptingInterface::RenderMethod, scriptValueFromEnumClass<RenderScriptingInterface::RenderMethod>, scriptValueToEnumClass<RenderScriptingInterface::RenderMethod> >(scriptEngine, "RenderMethod"); |
| 28 | − scriptRegisterMetaType<AntialiasingConfig::Mode, scriptValueFromEnumClass<AntialiasingConfig::Mode>, scriptValueToEnumClass<AntialiasingConfig::Mode> >(scriptEngine, "Mode"); | |
| 28 | + scriptRegisterMetaType<AntialiasingSetupConfig::Mode, scriptValueFromEnumClass<AntialiasingSetupConfig::Mode>, scriptValueToEnumClass<AntialiasingSetupConfig::Mode> >(scriptEngine, "Mode"); | |
| 29 | 29 | })); |
| 30 | 30 | |
| 31 | 31 | STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager){ |
| 32 | 32 | auto scriptEngine = manager->engine().get(); |
| 33 | 33 | |
| 34 | 34 | scriptEngine->registerEnum("Render.RenderMethod",QMetaEnum::fromType<RenderScriptingInterface::RenderMethod>()); |
| 35 | − scriptEngine->registerEnum("AntialiasingMode",QMetaEnum::fromType<AntialiasingConfig::Mode>()); | |
| 35 | + scriptEngine->registerEnum("AntialiasingMode",QMetaEnum::fromType<AntialiasingSetupConfig::Mode>()); | |
| 36 | 36 | }); |
| 37 | 37 | |
| 38 | 38 | RenderScriptingInterface* RenderScriptingInterface::getInstance() { |
| @@ -56,7 +56,7 @@ void RenderScriptingInterface::loadSettings() { · 17 unmodified lines | ||
| 56 | 56 | _bloomEnabled = _bloomEnabledSetting.get(); |
| 57 | 57 | _ambientOcclusionEnabled = _ambientOcclusionEnabledSetting.get(); |
| 58 | 58 | _proceduralMaterialsEnabled = _proceduralMaterialsEnabledSetting.get(); |
| 59 | − _antialiasingMode = static_cast<AntialiasingConfig::Mode>(_antialiasingModeSetting.get()); | |
| 59 | + _antialiasingMode = static_cast<AntialiasingSetupConfig::Mode>(_antialiasingModeSetting.get()); | |
| 60 | 60 | _viewportResolutionScale = _viewportResolutionScaleSetting.get(); |
| 61 | 61 | _fullScreenScreen = _fullScreenScreenSetting.get(); |
| 62 | 62 | }); |
| @@ -95,9 +95,10 @@ void recursivelyUpdateMirrorRenderMethods(const QString& parentTaskName, int ren · 32 unmodified lines | ||
| 95 | 95 | return; |
| 96 | 96 | } |
| 97 | 97 | |
| 98 | + auto renderConfig = qApp->getRenderEngine()->getConfiguration(); | |
| 98 | 99 | for (size_t mirrorIndex = 0; mirrorIndex < RenderMirrorTask::MAX_MIRRORS_PER_LEVEL; mirrorIndex++) { |
| 99 | 100 | std::string mirrorTaskString = parentTaskName.toStdString() + ".RenderMirrorView" + std::to_string(mirrorIndex) + "Depth" + std::to_string(depth) + ".DeferredForwardSwitch"; |
| 100 | − auto mirrorConfig = dynamic_cast<render::SwitchConfig*>(qApp->getRenderEngine()->getConfiguration()->getConfig(QString::fromStdString(mirrorTaskString))); | |
| 101 | + auto mirrorConfig = dynamic_cast<render::SwitchConfig*>(renderConfig->getConfig(QString::fromStdString(mirrorTaskString))); | |
| 101 | 102 | if (mirrorConfig) { |
| 102 | 103 | mirrorConfig->setBranch((int)renderMethod); |
| 103 | 104 | recursivelyUpdateMirrorRenderMethods(QString::fromStdString(mirrorTaskString) + (renderMethod == 1 ? ".RenderForwardTask" : ".RenderShadowsAndDeferredTask.RenderDeferredTask"), |
| @@ -111,14 +112,20 @@ void RenderScriptingInterface::forceRenderMethod(RenderMethod renderMethod) { · 7 unmodified lines | ||
| 111 | 112 | _renderMethod = (int)renderMethod; |
| 112 | 113 | _renderMethodSetting.set((int)renderMethod); |
| 113 | 114 | |
| 115 | + auto renderConfig = qApp->getRenderEngine()->getConfiguration(); | |
| 114 | 116 | QString configName = "RenderMainView.DeferredForwardSwitch"; |
| 115 | − auto config = dynamic_cast<render::SwitchConfig*>(qApp->getRenderEngine()->getConfiguration()->getConfig(configName)); | |
| 117 | + auto config = dynamic_cast<render::SwitchConfig*>(renderConfig->getConfig(configName)); | |
| 116 | 118 | if (config) { |
| 117 | 119 | config->setBranch((int)renderMethod); |
| 118 | 120 | |
| 119 | 121 | recursivelyUpdateMirrorRenderMethods(configName + (renderMethod == RenderMethod::FORWARD ? ".RenderForwardTask" : ".RenderShadowsAndDeferredTask.RenderDeferredTask"), |
| 120 | 122 | (int)renderMethod, 0); |
| 121 | 123 | } |
| 124 | + | |
| 125 | + auto secondaryConfig = dynamic_cast<render::SwitchConfig*>(renderConfig->getConfig("RenderSecondView.DeferredForwardSwitch")); | |
| 126 | + if (secondaryConfig) { | |
| 127 | + secondaryConfig->setBranch((int)renderMethod); | |
| 128 | + } | |
| 122 | 129 | }); |
| 123 | 130 | } |
| 124 | 131 | |
| @@ -128,13 +135,14 @@ QStringList RenderScriptingInterface::getRenderMethodNames() const { · 3 unmodified lines | ||
| 128 | 135 | } |
| 129 | 136 | |
| 130 | 137 | void recursivelyUpdateLightingModel(const QString& parentTaskName, std::function<void(MakeLightingModelConfig *)> updateLambda, int depth = -1) { |
| 138 | + auto renderConfig = qApp->getRenderEngine()->getConfiguration(); | |
| 131 | 139 | if (depth == -1) { |
| 132 | − auto secondaryLightingModelConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<MakeLightingModel>("RenderSecondView.LightingModel"); | |
| 140 | + auto secondaryLightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderSecondView.LightingModel"); | |
| 133 | 141 | if (secondaryLightingModelConfig) { |
| 134 | 142 | updateLambda(secondaryLightingModelConfig); |
| 135 | 143 | } |
| 136 | 144 | |
| 137 | − auto mainLightingModelConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<MakeLightingModel>("RenderMainView.LightingModel"); | |
| 145 | + auto mainLightingModelConfig = renderConfig->getConfig<MakeLightingModel>("RenderMainView.LightingModel"); | |
| 138 | 146 | if (mainLightingModelConfig) { |
| 139 | 147 | updateLambda(mainLightingModelConfig); |
| 140 | 148 | } |
| @@ -146,7 +154,7 @@ void recursivelyUpdateLightingModel(const QString& parentTaskName, std::function · 5 unmodified lines | ||
| 146 | 154 | |
| 147 | 155 | for (size_t mirrorIndex = 0; mirrorIndex < RenderMirrorTask::MAX_MIRRORS_PER_LEVEL; mirrorIndex++) { |
| 148 | 156 | std::string mirrorTaskString = parentTaskName.toStdString() + ".RenderMirrorView" + std::to_string(mirrorIndex) + "Depth" + std::to_string(depth); |
| 149 | − auto lightingModelConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<MakeLightingModel>(mirrorTaskString + ".LightingModel"); | |
| 157 | + auto lightingModelConfig = renderConfig->getConfig<MakeLightingModel>(mirrorTaskString + ".LightingModel"); | |
| 150 | 158 | if (lightingModelConfig) { |
| 151 | 159 | updateLambda(lightingModelConfig); |
| 152 | 160 | recursivelyUpdateLightingModel(QString::fromStdString(mirrorTaskString), updateLambda, depth + 1); |
| @@ -169,7 +177,6 @@ void RenderScriptingInterface::forceShadowsEnabled(bool enabled) { · 16 unmodified lines | ||
| 169 | 177 | _renderSettingLock.withWriteLock([&] { |
| 170 | 178 | _shadowsEnabled = (enabled); |
| 171 | 179 | _shadowsEnabledSetting.set(enabled); |
| 172 | − | |
| 173 | 180 | Menu::getInstance()->setIsOptionChecked(MenuOption::Shadows, enabled); |
| 174 | 181 | |
| 175 | 182 | recursivelyUpdateLightingModel("", [enabled] (MakeLightingModelConfig *config) { config->setShadow(enabled); }); |
| @@ -231,7 +238,6 @@ void RenderScriptingInterface::forceAmbientOcclusionEnabled(bool enabled) { · 55 unmodified lines | ||
| 231 | 238 | _renderSettingLock.withWriteLock([&] { |
| 232 | 239 | _ambientOcclusionEnabled = (enabled); |
| 233 | 240 | _ambientOcclusionEnabledSetting.set(enabled); |
| 234 | − | |
| 235 | 241 | Menu::getInstance()->setIsOptionChecked(MenuOption::AmbientOcclusion, enabled); |
| 236 | 242 | |
| 237 | 243 | recursivelyUpdateLightingModel("", [enabled] (MakeLightingModelConfig *config) { config->setAmbientOcclusion(enabled); }); |
| @@ -259,52 +265,53 @@ void RenderScriptingInterface::forceProceduralMaterialsEnabled(bool enabled) { · 21 unmodified lines | ||
| 259 | 265 | }); |
| 260 | 266 | } |
| 261 | 267 | |
| 262 | −AntialiasingConfig::Mode RenderScriptingInterface::getAntialiasingMode() const { | |
| 268 | +AntialiasingSetupConfig::Mode RenderScriptingInterface::getAntialiasingMode() const { | |
| 263 | 269 | return _antialiasingMode; |
| 264 | 270 | } |
| 265 | 271 | |
| 266 | −void RenderScriptingInterface::setAntialiasingMode(AntialiasingConfig::Mode mode) { | |
| 272 | +void RenderScriptingInterface::setAntialiasingMode(AntialiasingSetupConfig::Mode mode) { | |
| 267 | 273 | if (_antialiasingMode != mode) { |
| 268 | 274 | forceAntialiasingMode(mode); |
| 269 | 275 | emit settingsChanged(); |
| 270 | 276 | } |
| 271 | 277 | } |
| 272 | 278 | |
| 273 | −void setAntialiasingModeForView(AntialiasingConfig::Mode mode, JitterSampleConfig *jitterCamConfig, AntialiasingConfig *antialiasingConfig) { | |
| 279 | +void setAntialiasingModeForView(AntialiasingSetupConfig::Mode mode, AntialiasingSetupConfig *antialiasingSetupConfig, AntialiasingConfig *antialiasingConfig) { | |
| 274 | 280 | switch (mode) { |
| 275 | − case AntialiasingConfig::Mode::NONE: | |
| 276 | − jitterCamConfig->none(); | |
| 281 | + case AntialiasingSetupConfig::Mode::NONE: | |
| 282 | + antialiasingSetupConfig->none(); | |
| 277 | 283 | antialiasingConfig->blend = 1; |
| 278 | 284 | antialiasingConfig->setDebugFXAA(false); |
| 279 | 285 | break; |
| 280 | − case AntialiasingConfig::Mode::TAA: | |
| 281 | − jitterCamConfig->play(); | |
| 286 | + case AntialiasingSetupConfig::Mode::TAA: | |
| 287 | + antialiasingSetupConfig->play(); | |
| 282 | 288 | antialiasingConfig->blend = 0.25; |
| 283 | 289 | antialiasingConfig->setDebugFXAA(false); |
| 284 | 290 | break; |
| 285 | − case AntialiasingConfig::Mode::FXAA: | |
| 286 | − jitterCamConfig->none(); | |
| 291 | + case AntialiasingSetupConfig::Mode::FXAA: | |
| 292 | + antialiasingSetupConfig->none(); | |
| 287 | 293 | antialiasingConfig->blend = 0.25; |
| 288 | 294 | antialiasingConfig->setDebugFXAA(true); |
| 289 | 295 | break; |
| 290 | 296 | default: |
| 291 | − jitterCamConfig->none(); | |
| 297 | + antialiasingSetupConfig->none(); | |
| 292 | 298 | antialiasingConfig->blend = 1; |
| 293 | 299 | antialiasingConfig->setDebugFXAA(false); |
| 294 | 300 | break; |
| 295 | 301 | } |
| 296 | 302 | } |
| 297 | 303 | |
| 298 | −void recursivelyUpdateAntialiasingMode(const QString& parentTaskName, AntialiasingConfig::Mode mode, int depth = -1) { | |
| 304 | +void recursivelyUpdateAntialiasingMode(const QString& parentTaskName, AntialiasingSetupConfig::Mode mode, int depth = -1) { | |
| 305 | + auto renderConfig = qApp->getRenderEngine()->getConfiguration(); | |
| 299 | 306 | if (depth == -1) { |
| 300 | − auto secondViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderSecondView.JitterCam"); | |
| 301 | − auto secondViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>("RenderSecondView.Antialiasing"); | |
| 307 | + auto secondViewJitterCamConfig = renderConfig->getConfig<AntialiasingSetup>("RenderSecondView.AntialiasingSetup"); | |
| 308 | + auto secondViewAntialiasingConfig = renderConfig->getConfig<Antialiasing>("RenderSecondView.Antialiasing"); | |
| 302 | 309 | if (secondViewJitterCamConfig && secondViewAntialiasingConfig) { |
| 303 | 310 | setAntialiasingModeForView(mode, secondViewJitterCamConfig, secondViewAntialiasingConfig); |
| 304 | 311 | } |
| 305 | 312 | |
| 306 | − auto mainViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderMainView.JitterCam"); | |
| 307 | − auto mainViewAntialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>("RenderMainView.Antialiasing"); | |
| 313 | + auto mainViewJitterCamConfig = renderConfig->getConfig<AntialiasingSetup>("RenderMainView.AntialiasingSetup"); | |
| 314 | + auto mainViewAntialiasingConfig = renderConfig->getConfig<Antialiasing>("RenderMainView.Antialiasing"); | |
| 308 | 315 | if (mainViewJitterCamConfig && mainViewAntialiasingConfig) { |
| 309 | 316 | setAntialiasingModeForView( mode, mainViewJitterCamConfig, mainViewAntialiasingConfig); |
| 310 | 317 | } |
| @@ -316,8 +323,8 @@ void recursivelyUpdateAntialiasingMode(const QString& parentTaskName, Antialiasi · 5 unmodified lines | ||
| 316 | 323 | |
| 317 | 324 | for (size_t mirrorIndex = 0; mirrorIndex < RenderMirrorTask::MAX_MIRRORS_PER_LEVEL; mirrorIndex++) { |
| 318 | 325 | std::string mirrorTaskString = parentTaskName.toStdString() + ".RenderMirrorView" + std::to_string(mirrorIndex) + "Depth" + std::to_string(depth); |
| 319 | − auto jitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>(mirrorTaskString + ".JitterCam"); | |
| 320 | − auto antialiasingConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<Antialiasing>(mirrorTaskString + ".Antialiasing"); | |
| 326 | + auto jitterCamConfig = renderConfig->getConfig<AntialiasingSetup>(mirrorTaskString + ".AntialiasingSetup"); | |
| 327 | + auto antialiasingConfig = renderConfig->getConfig<Antialiasing>(mirrorTaskString + ".Antialiasing"); | |
| 321 | 328 | if (jitterCamConfig && antialiasingConfig) { |
| 322 | 329 | setAntialiasingModeForView(mode, jitterCamConfig, antialiasingConfig); |
| 323 | 330 | recursivelyUpdateAntialiasingMode(QString::fromStdString(mirrorTaskString), mode, depth + 1); |
| @@ -325,14 +332,14 @@ void recursivelyUpdateAntialiasingMode(const QString& parentTaskName, Antialiasi · 1 unmodified line | ||
| 325 | 332 | } |
| 326 | 333 | } |
| 327 | 334 | |
| 328 | −void RenderScriptingInterface::forceAntialiasingMode(AntialiasingConfig::Mode mode) { | |
| 329 | − if ((int)mode < 0 || mode >= AntialiasingConfig::Mode::MODE_COUNT) { | |
| 330 | − mode = AntialiasingConfig::Mode::NONE; | |
| 335 | +void RenderScriptingInterface::forceAntialiasingMode(AntialiasingSetupConfig::Mode mode) { | |
| 336 | + if ((int)mode < 0 || mode >= AntialiasingSetupConfig::Mode::MODE_COUNT) { | |
| 337 | + mode = AntialiasingSetupConfig::Mode::NONE; | |
| 331 | 338 | } |
| 332 | 339 | |
| 333 | 340 | _renderSettingLock.withWriteLock([&] { |
| 334 | 341 | _antialiasingMode = mode; |
| 335 | − _antialiasingModeSetting.set(_antialiasingMode); | |
| 342 | + _antialiasingModeSetting.set((int)_antialiasingMode); | |
| 336 | 343 | |
| 337 | 344 | recursivelyUpdateAntialiasingMode("", _antialiasingMode); |
| 338 | 345 | }); |
| @@ -345,6 +352,13 @@ void RenderScriptingInterface::setVerticalFieldOfView(float fieldOfView) { · 6 unmodified lines | ||
| 345 | 352 | } |
| 346 | 353 | } |
| 347 | 354 | |
| 355 | +void RenderScriptingInterface::setCameraClippingEnabled(bool enabled) { | |
| 356 | + if (qApp->getCameraClippingEnabled() != enabled) { | |
| 357 | + qApp->setCameraClippingEnabled(enabled); | |
| 358 | + emit settingsChanged(); | |
| 359 | + } | |
| 360 | +} | |
| 361 | + | |
| 348 | 362 | QStringList RenderScriptingInterface::getScreens() const { |
| 349 | 363 | QStringList screens; |
| 350 | 364 | |
| @@ -396,20 +410,27 @@ void RenderScriptingInterface::forceViewportResolutionScale(float scale) { · 45 unmodified lines | ||
| 396 | 410 | return; |
| 397 | 411 | } |
| 398 | 412 | _renderSettingLock.withWriteLock([&] { |
| 399 | − _viewportResolutionScale = (scale); | |
| 413 | + _viewportResolutionScale = scale; | |
| 400 | 414 | _viewportResolutionScaleSetting.set(scale); |
| 401 | 415 | |
| 402 | 416 | auto renderConfig = qApp->getRenderEngine()->getConfiguration(); |
| 403 | 417 | assert(renderConfig); |
| 404 | 418 | auto deferredView = renderConfig->getConfig("RenderMainView.RenderDeferredTask"); |
| 405 | − // mainView can be null if we're rendering in forward mode | |
| 406 | 419 | if (deferredView) { |
| 407 | − deferredView->setProperty("resolutionScale", _viewportResolutionScale); | |
| 420 | + deferredView->setProperty("resolutionScale", scale); | |
| 408 | 421 | } |
| 409 | 422 | auto forwardView = renderConfig->getConfig("RenderMainView.RenderForwardTask"); |
| 410 | − // mainView can be null if we're rendering in forward mode | |
| 411 | 423 | if (forwardView) { |
| 412 | − forwardView->setProperty("resolutionScale", _viewportResolutionScale); | |
| 424 | + forwardView->setProperty("resolutionScale", scale); | |
| 425 | + } | |
| 426 | + | |
| 427 | + auto deferredSecondView = renderConfig->getConfig("RenderSecondView.RenderDeferredTask"); | |
| 428 | + if (deferredSecondView) { | |
| 429 | + deferredSecondView->setProperty("resolutionScale", scale); | |
| 430 | + } | |
| 431 | + auto forwardSecondView = renderConfig->getConfig("RenderSecondView.RenderForwardTask"); | |
| 432 | + if (forwardSecondView) { | |
| 433 | + forwardSecondView->setProperty("resolutionScale", scale); | |
| 413 | 434 | } |
| 414 | 435 | }); |
| 415 | 436 | } |