Removing the atomics and fixing mistakes pointed out inreview

This commit is contained in:
Sam Gateau 2019-06-04 10:11:12 -07:00
parent 6acc398890
commit f51e491d85
2 changed files with 24 additions and 24 deletions

View file

@ -10,13 +10,14 @@
#include "LightingModel.h" #include "LightingModel.h"
#include "AntialiasingEffect.h" #include "AntialiasingEffect.h"
std::once_flag RenderScriptingInterface::registry_flag;
RenderScriptingInterface* RenderScriptingInterface::getInstance() { RenderScriptingInterface* RenderScriptingInterface::getInstance() {
static RenderScriptingInterface sharedInstance; static RenderScriptingInterface sharedInstance;
return &sharedInstance; return &sharedInstance;
} }
std::once_flag RenderScriptingInterface::registry_flag;
RenderScriptingInterface::RenderScriptingInterface() { RenderScriptingInterface::RenderScriptingInterface() {
std::call_once(registry_flag, [] { std::call_once(registry_flag, [] {
qmlRegisterType<RenderScriptingInterface>("RenderEnums", 1, 0, "RenderEnums"); qmlRegisterType<RenderScriptingInterface>("RenderEnums", 1, 0, "RenderEnums");
@ -25,19 +26,19 @@ RenderScriptingInterface::RenderScriptingInterface() {
void RenderScriptingInterface::loadSettings() { void RenderScriptingInterface::loadSettings() {
_renderSettingLock.withReadLock([&] { _renderSettingLock.withReadLock([&] {
_renderMethod.store(_renderMethodSetting.get()); _renderMethod = (_renderMethodSetting.get());
_shadowsEnabled.store(_shadowsEnabledSetting.get()); _shadowsEnabled = (_shadowsEnabledSetting.get());
_ambientOcclusionEnabled.store(_ambientOcclusionEnabledSetting.get()); _ambientOcclusionEnabled = (_ambientOcclusionEnabledSetting.get());
_antialiasingEnabled.store(_antialiasingEnabledSetting.get()); _antialiasingEnabled = (_antialiasingEnabledSetting.get());
}); });
forceRenderMethod((RenderMethod)_renderMethod.load()); forceRenderMethod((RenderMethod)_renderMethod);
forceShadowsEnabled(_shadowsEnabled.load()); forceShadowsEnabled(_shadowsEnabled);
forceAmbientOcclusionEnabled(_ambientOcclusionEnabled.load()); forceAmbientOcclusionEnabled(_ambientOcclusionEnabled);
forceAntialiasingEnabled(_antialiasingEnabled.load()); forceAntialiasingEnabled(_antialiasingEnabled);
} }
RenderScriptingInterface::RenderMethod RenderScriptingInterface::getRenderMethod() { RenderScriptingInterface::RenderMethod RenderScriptingInterface::getRenderMethod() {
return (RenderMethod) _renderMethod.load(); return (RenderMethod) _renderMethod;
} }
void RenderScriptingInterface::setRenderMethod(RenderMethod renderMethod) { void RenderScriptingInterface::setRenderMethod(RenderMethod renderMethod) {
@ -53,7 +54,6 @@ void RenderScriptingInterface::forceRenderMethod(RenderMethod renderMethod) {
auto config = dynamic_cast<task::SwitchConfig*>(qApp->getRenderEngine()->getConfiguration()->getConfig("RenderMainView.DeferredForwardSwitch")); auto config = dynamic_cast<task::SwitchConfig*>(qApp->getRenderEngine()->getConfiguration()->getConfig("RenderMainView.DeferredForwardSwitch"));
if (config) { if (config) {
_renderMethodSetting.set((int)renderMethod);
config->setBranch((int)renderMethod); config->setBranch((int)renderMethod);
} }
}); });
@ -65,7 +65,7 @@ QStringList RenderScriptingInterface::getRenderMethodNames() const {
} }
bool RenderScriptingInterface::getShadowsEnabled() { bool RenderScriptingInterface::getShadowsEnabled() {
return _shadowsEnabled.load(); return _shadowsEnabled;
} }
void RenderScriptingInterface::setShadowsEnabled(bool enabled) { void RenderScriptingInterface::setShadowsEnabled(bool enabled) {
@ -77,7 +77,7 @@ void RenderScriptingInterface::setShadowsEnabled(bool enabled) {
void RenderScriptingInterface::forceShadowsEnabled(bool enabled) { void RenderScriptingInterface::forceShadowsEnabled(bool enabled) {
_renderSettingLock.withWriteLock([&] { _renderSettingLock.withWriteLock([&] {
_shadowsEnabled.store(enabled); _shadowsEnabled = (enabled);
_shadowsEnabledSetting.set(enabled); _shadowsEnabledSetting.set(enabled);
auto lightingModelConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<MakeLightingModel>("RenderMainView.LightingModel"); auto lightingModelConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<MakeLightingModel>("RenderMainView.LightingModel");
@ -89,11 +89,11 @@ void RenderScriptingInterface::forceShadowsEnabled(bool enabled) {
} }
bool RenderScriptingInterface::getAmbientOcclusionEnabled() { bool RenderScriptingInterface::getAmbientOcclusionEnabled() {
return _ambientOcclusionEnabled.load(); return _ambientOcclusionEnabled;
} }
void RenderScriptingInterface::setAmbientOcclusionEnabled(bool enabled) { void RenderScriptingInterface::setAmbientOcclusionEnabled(bool enabled) {
if (_ambientOcclusionEnabled.load() != enabled) { if (_ambientOcclusionEnabled != enabled) {
forceAmbientOcclusionEnabled(enabled); forceAmbientOcclusionEnabled(enabled);
emit settingsChanged(); emit settingsChanged();
} }
@ -101,7 +101,7 @@ void RenderScriptingInterface::setAmbientOcclusionEnabled(bool enabled) {
void RenderScriptingInterface::forceAmbientOcclusionEnabled(bool enabled) { void RenderScriptingInterface::forceAmbientOcclusionEnabled(bool enabled) {
_renderSettingLock.withWriteLock([&] { _renderSettingLock.withWriteLock([&] {
_ambientOcclusionEnabled.store(enabled); _ambientOcclusionEnabled = (enabled);
_ambientOcclusionEnabledSetting.set(enabled); _ambientOcclusionEnabledSetting.set(enabled);
auto lightingModelConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<MakeLightingModel>("RenderMainView.LightingModel"); auto lightingModelConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<MakeLightingModel>("RenderMainView.LightingModel");
@ -113,11 +113,11 @@ void RenderScriptingInterface::forceAmbientOcclusionEnabled(bool enabled) {
} }
bool RenderScriptingInterface::getAntialiasingEnabled() { bool RenderScriptingInterface::getAntialiasingEnabled() {
return _antialiasingEnabled.load(); return _antialiasingEnabled;
} }
void RenderScriptingInterface::setAntialiasingEnabled(bool enabled) { void RenderScriptingInterface::setAntialiasingEnabled(bool enabled) {
if (_antialiasingEnabled.load() != enabled) { if (_antialiasingEnabled != enabled) {
forceAntialiasingEnabled(enabled); forceAntialiasingEnabled(enabled);
emit settingsChanged(); emit settingsChanged();
} }
@ -125,7 +125,7 @@ void RenderScriptingInterface::setAntialiasingEnabled(bool enabled) {
void RenderScriptingInterface::forceAntialiasingEnabled(bool enabled) { void RenderScriptingInterface::forceAntialiasingEnabled(bool enabled) {
_renderSettingLock.withWriteLock([&] { _renderSettingLock.withWriteLock([&] {
_antialiasingEnabled.store(enabled); _antialiasingEnabled = (enabled);
_antialiasingEnabledSetting.set(enabled); _antialiasingEnabledSetting.set(enabled);
auto mainViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderMainView.JitterCam"); auto mainViewJitterCamConfig = qApp->getRenderEngine()->getConfiguration()->getConfig<JitterSample>("RenderMainView.JitterCam");

View file

@ -145,11 +145,11 @@ private:
// One lock to serialize and access safely all the settings // One lock to serialize and access safely all the settings
mutable ReadWriteLockable _renderSettingLock; mutable ReadWriteLockable _renderSettingLock;
// Runtime atomic value of each settings // Runtime value of each settings
std::atomic_int _renderMethod{ render::Args::RenderMethod::DEFERRED }; int _renderMethod{ RENDER_FORWARD ? render::Args::RenderMethod::FORWARD : render::Args::RenderMethod::DEFERRED };
std::atomic_bool _shadowsEnabled{ true }; bool _shadowsEnabled{ true };
std::atomic_bool _ambientOcclusionEnabled{ false }; bool _ambientOcclusionEnabled{ false };
std::atomic_bool _antialiasingEnabled { true }; bool _antialiasingEnabled { true };
// Actual settings saved on disk // Actual settings saved on disk
Setting::Handle<int> _renderMethodSetting { "renderMethod", RENDER_FORWARD ? render::Args::RenderMethod::FORWARD : render::Args::RenderMethod::DEFERRED }; Setting::Handle<int> _renderMethodSetting { "renderMethod", RENDER_FORWARD ? render::Args::RenderMethod::FORWARD : render::Args::RenderMethod::DEFERRED };