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); }
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; } }
public static GraphicsRecommendGrade GetGraphicsRecommendGrade() { if (!_hasSettingGrade) { ConfigGraphicsRecommendSetting graphicsRecommendConfig = GetGraphicsRecommendConfig(); _hasSettingGrade = true; _recommendGrade = graphicsRecommendConfig.RecommendGrade; } return(_recommendGrade); }
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); }
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); }
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; } }
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; }
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); }
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); }
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); }