private void ApplySettingsChanges() { if (MyRenderProxy.TestDeviceCooperativeLevel() == MyRenderDeviceCooperativeLevel.Ok) { var quality = Interlocked.Exchange(ref m_newQuality, -1); if (quality != -1) { m_currentQuality = (MyRenderQualityEnum)quality; } if (m_newSettings.HasValue && MyRenderProxy.SettingsChanged(m_newSettings.Value)) { m_settings = m_newSettings.Value; m_newSettings = null; UnloadContent(); MyRenderProxy.ApplySettings(m_settings); LoadContent(); UpdateSize(); } else if (quality != -1) { // Quality has changed, but not settings ProfilerShort.Begin("ReloadContent"); MyRenderProxy.ReloadContent(m_currentQuality); ProfilerShort.End(); } } }