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();
                }
            }
        }