Esempio n. 1
0
 public static bool IsEnableGyroscope()
 {
     if (!_hasGetGyroscope)
     {
         string targetPlatform = GetTargetPlatform();
         if (!_recommendSettingGroupMap.ContainsKey(targetPlatform))
         {
             _hasGetGyroscope = true;
             _enableGyroscope = true;
             return(_enableGyroscope);
         }
         ConfigGraphicsRecommendSetting config = _recommendSettingGroupMap[targetPlatform].GetConfig <ConfigGraphicsRecommendSetting>("Gyroscope");
         if (config == null)
         {
             _hasGetGyroscope = true;
             config           = (ConfigGraphicsRecommendSetting)_recommendSettingGroupMap[targetPlatform].Default;
             return(config.EnableGyroscope);
         }
         _hasGetGyroscope = true;
         List <string> excludeDeviceModels = config.ExcludeDeviceModels;
         string        deviceModel         = SystemInfo.deviceModel;
         foreach (string str3 in excludeDeviceModels)
         {
             if (deviceModel.ToLower() == str3.ToLower())
             {
                 _enableGyroscope = false;
                 return(_enableGyroscope);
             }
         }
         _enableGyroscope = true;
     }
     return(_enableGyroscope);
 }
Esempio n. 2
0
        public static void ReloadFromFile()
        {
            _recommendVolatileSettingGroup = ConfigUtil.LoadJSONConfig <ConfigOverrideGroup>(GlobalDataManager.metaConfig.graphicsVolatileSettingRegistryPath);
            _recommendSettingGroupMap      = new Dictionary <string, ConfigOverrideGroup>();
            string[] graphicsSettingRegistryPathes = GlobalDataManager.metaConfig.graphicsSettingRegistryPathes;
            string   targetPlatform = GetTargetPlatform();

            if (targetPlatform != string.Empty)
            {
                foreach (string str2 in graphicsSettingRegistryPathes)
                {
                    if (str2.Contains(targetPlatform))
                    {
                        ConfigOverrideGroup group = ConfigUtil.LoadJSONConfig <ConfigOverrideGroup>(str2);
                        char[]   separator        = new char[] { '/' };
                        string[] strArray3        = str2.Split(separator);
                        string   key = strArray3[strArray3.Length - 1];
                        _recommendSettingGroupMap.Add(key, group);
                    }
                }
                _recommendSetting = null;
                _hasSettingGrade  = false;
                _hasGetGyroscope  = false;
            }
        }
Esempio n. 3
0
 public static GraphicsRecommendGrade GetGraphicsRecommendGrade()
 {
     if (!_hasSettingGrade)
     {
         ConfigGraphicsRecommendSetting graphicsRecommendConfig = GetGraphicsRecommendConfig();
         _hasSettingGrade = true;
         _recommendGrade  = graphicsRecommendConfig.RecommendGrade;
     }
     return(_recommendGrade);
 }
Esempio n. 4
0
 private static ConfigGraphicsRecommendSetting GetGraphicsRecommendConfig(string platformName, string deviceModel)
 {
     if (!_recommendSettingGroupMap.ContainsKey(platformName))
     {
         return(null);
     }
     if ((platformName == "PC") || (platformName == "IOS"))
     {
         _recommendSettingName = deviceModel;
         return(_recommendSettingGroupMap[platformName].GetConfig <ConfigGraphicsRecommendSetting>(deviceModel));
     }
     if (_recommendSetting == null)
     {
         ConfigOverrideGroup group = _recommendSettingGroupMap[platformName];
         if ((group.Overrides != null) && (group.Overrides.Count > 0))
         {
             string   graphicsDeviceName = GetGraphicsDeviceName();
             string[] names = Enum.GetNames(typeof(GraphicsRecommendGrade));
             for (int i = names.Length - 1; i >= 0; i--)
             {
                 string key = graphicsDeviceName + " " + names[i];
                 if (group.Overrides.ContainsKey(key))
                 {
                     ConfigGraphicsRecommendSetting setting = (ConfigGraphicsRecommendSetting)group.Overrides[key];
                     if (setting.MatchRequirements())
                     {
                         _recommendSetting     = setting;
                         _recommendSettingName = key;
                         return(_recommendSetting);
                     }
                 }
             }
             for (int j = names.Length - 1; j >= 0; j--)
             {
                 string str3 = names[j];
                 if (group.Overrides.ContainsKey(str3))
                 {
                     ConfigGraphicsRecommendSetting setting2 = (ConfigGraphicsRecommendSetting)group.Overrides[str3];
                     if (setting2.MatchRequirements())
                     {
                         _recommendSetting     = setting2;
                         _recommendSettingName = str3;
                         return(_recommendSetting);
                     }
                 }
             }
         }
         _recommendSetting     = (ConfigGraphicsRecommendSetting)group.Default;
         _recommendSettingName = "Default";
     }
     return(_recommendSetting);
 }
Esempio n. 5
0
        public static void CopyToPersonalGraphicsConfig(ConfigGraphicsSetting setting, ref ConfigGraphicsPersonalSetting to)
        {
            ConfigGraphicsRecommendSetting graphicsRecommendConfig = GetGraphicsRecommendConfig();

            to.PostFxGradeBufferSize = graphicsRecommendConfig.PostFxGradeBufferSize;
            to.RecommendResolutionX  = graphicsRecommendConfig.RecommendResolutionX;
            to.RecommendResolutionY  = graphicsRecommendConfig.RecommendResolutionY;
            to.ResolutionPercentage  = graphicsRecommendConfig.ResolutionPercentage;
            to.ResolutionQuality     = setting.ResolutionQuality;
            to.TargetFrameRate       = setting.TargetFrameRate;
            to.ContrastDelta         = setting.ContrastDelta;
            to.VolatileSetting       = new ConfigGraphicsVolatileSetting();
            CopyGraphicsVolatileConfig(setting.VolatileSetting, ref to.VolatileSetting);
        }
Esempio n. 6
0
        private static void OnLoadOneJsonConfigFinish(ConfigOverrideGroup configGroup, string configPath)
        {
            char[]   separator = new char[] { '/' };
            string[] strArray  = configPath.Split(separator);
            string   key       = strArray[strArray.Length - 1];

            _recommendSettingGroupMap.Add(key, configGroup);
            _loadDataBackGroundWorker.StopBackGroundWork(false);
            _recommendSetting = null;
            _hasSettingGrade  = false;
            _hasGetGyroscope  = false;
            if (_loadJsonConfigCallback != null)
            {
                _loadJsonConfigCallback("GraphicsSettingData");
                _loadJsonConfigCallback = null;
            }
        }
Esempio n. 7
0
        public static void CopyPersonalGraphicsConfig(bool isEcoMode, ref ConfigGraphicsPersonalSetting to)
        {
            ConfigGraphicsPersonalSetting personalGraphicsSetting = Singleton <MiHoYoGameData> .Instance.GeneralLocalData.PersonalGraphicsSetting;

            if (isEcoMode)
            {
                CopyToPersonalGraphicsConfig(GetGraphicsEcoModeConfig(), ref to);
                to.IsUserDefinedGrade    = personalGraphicsSetting.IsUserDefinedGrade;
                to.IsUserDefinedVolatile = personalGraphicsSetting.IsUserDefinedVolatile;
            }
            else if (personalGraphicsSetting.IsUserDefinedGrade && personalGraphicsSetting.IsUserDefinedVolatile)
            {
                UnityEngine.Debug.LogError("IsUserDefinedGrade and IsUserDefinedVolatile both true");
            }
            else if (!personalGraphicsSetting.IsUserDefinedGrade && !personalGraphicsSetting.IsUserDefinedVolatile)
            {
                CopyToPersonalGraphicsConfig(GetGraphicsRecommendCompleteConfig(), ref to);
                to.IsUserDefinedGrade    = false;
                to.IsUserDefinedVolatile = false;
            }
            else if (personalGraphicsSetting.IsUserDefinedGrade)
            {
                CopyToPersonalGraphicsConfig(GetGraphicsRecommendCompleteConfig(personalGraphicsSetting.RecommendGrade), ref to);
                to.RecommendGrade        = personalGraphicsSetting.RecommendGrade;
                to.IsUserDefinedGrade    = true;
                to.IsUserDefinedVolatile = false;
            }
            else
            {
                ConfigGraphicsRecommendSetting graphicsRecommendConfig = GetGraphicsRecommendConfig();
                to.PostFxGradeBufferSize = graphicsRecommendConfig.PostFxGradeBufferSize;
                to.RecommendResolutionX  = graphicsRecommendConfig.RecommendResolutionX;
                to.RecommendResolutionY  = graphicsRecommendConfig.RecommendResolutionY;
                to.ResolutionPercentage  = graphicsRecommendConfig.ResolutionPercentage;
                to.ResolutionQuality     = personalGraphicsSetting.ResolutionQuality;
                to.TargetFrameRate       = personalGraphicsSetting.TargetFrameRate;
                to.ContrastDelta         = 0f;
                to.VolatileSetting       = new ConfigGraphicsVolatileSetting();
                CopyGraphicsVolatileConfig(personalGraphicsSetting.VolatileSetting, ref to.VolatileSetting);
                to.RecommendGrade        = personalGraphicsSetting.RecommendGrade;
                to.IsUserDefinedGrade    = false;
                to.IsUserDefinedVolatile = true;
            }
            to.IsEcoMode = isEcoMode;
        }
Esempio n. 8
0
        private static ConfigGraphicsSetting GetGraphicsEcoModeConfig(string platformName)
        {
            if (!_recommendSettingGroupMap.ContainsKey(platformName))
            {
                return(null);
            }
            bool flag = false;
            ConfigGraphicsRecommendSetting config = _recommendSettingGroupMap[platformName].GetConfig <ConfigGraphicsRecommendSetting>("EcoMode");

            if (config == null)
            {
                flag   = true;
                config = (ConfigGraphicsRecommendSetting)_recommendSettingGroupMap[platformName].Default;
            }
            ConfigGraphicsSetting setting2 = new ConfigGraphicsSetting {
                PostFxGradeBufferSize = config.PostFxGradeBufferSize,
                RecommendResolutionX  = config.RecommendResolutionX,
                RecommendResolutionY  = config.RecommendResolutionY,
                ResolutionPercentage  = config.ResolutionPercentage,
                ResolutionQuality     = !flag ? config.ResolutionQuality : ResolutionQualityGrade.Low,
                TargetFrameRate       = !flag ? config.TargetFrameRate : 30,
                ContrastDelta         = 0f
            };
            ConfigGraphicsVolatileSetting from = _recommendVolatileSettingGroup.GetConfig <ConfigGraphicsVolatileSetting>((!flag ? config.RecommendGrade : GraphicsRecommendGrade.Off).ToString());

            setting2.VolatileSetting = new ConfigGraphicsVolatileSetting();
            CopyGraphicsVolatileConfig(from, ref setting2.VolatileSetting);
            GraphicsRecommendGrade graphicsRecommendGrade = GetGraphicsRecommendGrade();

            setting2.VolatileSetting.UsePostFX = graphicsRecommendGrade >= GraphicsRecommendGrade.High;
            setting2.VolatileSetting.UseHDR    = graphicsRecommendGrade >= GraphicsRecommendGrade.High;
            ConfigGraphicsPersonalSetting personalGraphicsSetting = Singleton <MiHoYoGameData> .Instance.GeneralLocalData.PersonalGraphicsSetting;

            if (personalGraphicsSetting.IsUserDefinedVolatile && !personalGraphicsSetting.VolatileSetting.UsePostFX)
            {
                setting2.VolatileSetting.UsePostFX = false;
            }
            if (personalGraphicsSetting.IsUserDefinedVolatile && !personalGraphicsSetting.VolatileSetting.UseHDR)
            {
                setting2.VolatileSetting.UseHDR = false;
            }
            return(setting2);
        }
Esempio n. 9
0
        private static ConfigGraphicsSetting GetGraphicsRecommendCompleteConfig(string platformName, string deviceModel, GraphicsRecommendGrade grade)
        {
            if (!_recommendSettingGroupMap.ContainsKey(platformName))
            {
                return(null);
            }
            ConfigGraphicsRecommendSetting graphicsRecommendConfig = GetGraphicsRecommendConfig(platformName, deviceModel);
            ConfigGraphicsSetting          setting2 = new ConfigGraphicsSetting {
                PostFxGradeBufferSize = graphicsRecommendConfig.PostFxGradeBufferSize,
                RecommendResolutionX  = graphicsRecommendConfig.RecommendResolutionX,
                RecommendResolutionY  = graphicsRecommendConfig.RecommendResolutionY,
                ResolutionPercentage  = graphicsRecommendConfig.ResolutionPercentage,
                ResolutionQuality     = graphicsRecommendConfig.ResolutionQuality,
                TargetFrameRate       = graphicsRecommendConfig.TargetFrameRate,
                ContrastDelta         = 0f
            };
            ConfigGraphicsVolatileSetting config = _recommendVolatileSettingGroup.GetConfig <ConfigGraphicsVolatileSetting>(grade.ToString());

            setting2.VolatileSetting = new ConfigGraphicsVolatileSetting();
            CopyGraphicsVolatileConfig(config, ref setting2.VolatileSetting);
            return(setting2);
        }
Esempio n. 10
0
        public static ConfigGraphicsSetting GetGraphicsPersonalSettingConfig(ConfigGraphicsPersonalSetting personalSetting)
        {
            if (personalSetting.IsUserDefinedGrade && personalSetting.IsUserDefinedVolatile)
            {
                UnityEngine.Debug.LogError("IsUserDefinedGrade and IsUserDefinedVolatile both true");
                return(null);
            }
            if (!personalSetting.IsUserDefinedGrade && !personalSetting.IsUserDefinedVolatile)
            {
                return(GetGraphicsRecommendCompleteConfig());
            }
            if (personalSetting.IsUserDefinedGrade)
            {
                return(GetGraphicsRecommendCompleteConfig(personalSetting.RecommendGrade));
            }
            ConfigGraphicsRecommendSetting graphicsRecommendConfig = GetGraphicsRecommendConfig();

            personalSetting.PostFxGradeBufferSize = graphicsRecommendConfig.PostFxGradeBufferSize;
            personalSetting.RecommendResolutionX  = graphicsRecommendConfig.RecommendResolutionX;
            personalSetting.RecommendResolutionY  = graphicsRecommendConfig.RecommendResolutionY;
            personalSetting.ResolutionPercentage  = graphicsRecommendConfig.ResolutionPercentage;
            return(personalSetting);
        }