Exemple #1
0
 private void load(FrameworkDebugConfigManager config, FrameworkConfigManager frameworkConfig)
 {
     Children = new Drawable[]
     {
         new SettingsCheckbox
         {
             LabelText = "Show log overlay",
             Bindable  = frameworkConfig.GetBindable <bool>(FrameworkSetting.ShowLogOverlay)
         },
         new SettingsCheckbox
         {
             LabelText = "Performance logging",
             Bindable  = frameworkConfig.GetBindable <bool>(FrameworkSetting.PerformanceLogging)
         },
         new SettingsCheckbox
         {
             LabelText = "Bypass caching (slow)",
             Bindable  = config.GetBindable <bool>(DebugSetting.BypassCaching)
         },
         new SettingsCheckbox
         {
             LabelText = "Bypass front-to-back render pass",
             Bindable  = config.GetBindable <bool>(DebugSetting.BypassFrontToBackPass)
         }
     };
 }
Exemple #2
0
 private void load(FrameworkDebugConfigManager config, FrameworkConfigManager frameworkConfig, IPerformFromScreenRunner performer)
 {
     Children = new Drawable[]
     {
         new SettingsCheckbox
         {
             LabelText = DebugSettingsStrings.ShowLogOverlay,
             Current   = frameworkConfig.GetBindable <bool>(FrameworkSetting.ShowLogOverlay)
         },
         new SettingsCheckbox
         {
             LabelText = DebugSettingsStrings.BypassFrontToBackPass,
             Current   = config.GetBindable <bool>(DebugSetting.BypassFrontToBackPass)
         },
         new SettingsButton
         {
             Text   = DebugSettingsStrings.ImportFiles,
             Action = () => performer?.PerformFromScreen(menu => menu.Push(new FileImportScreen()))
         },
         new SettingsButton
         {
             Text   = @"Run latency certifier",
             Action = () => performer?.PerformFromScreen(menu => menu.Push(new LatencyCertifierScreen()))
         }
     };
 }
Exemple #3
0
        private void setupConfig()
        {
            Dependencies.Cache(debugConfig  = new FrameworkDebugConfigManager());
            Dependencies.Cache(config       = new FrameworkConfigManager(Storage));
            Dependencies.Cache(Localisation = new LocalisationEngine(config));

            activeGCMode = debugConfig.GetBindable <GCLatencyMode>(DebugSetting.ActiveGCMode);
            activeGCMode.ValueChanged += newMode =>
            {
                GCSettings.LatencyMode = IsActive ? newMode : GCLatencyMode.Interactive;
            };

            frameSyncMode = config.GetBindable <FrameSync>(FrameworkSetting.FrameSync);
            frameSyncMode.ValueChanged += newMode =>
            {
                float refreshRate = DisplayDevice.Default.RefreshRate;

                float drawLimiter   = refreshRate;
                float updateLimiter = drawLimiter * 2;

                setVSyncMode();

                switch (newMode)
                {
                case FrameSync.VSync:
                    drawLimiter    = int.MaxValue;
                    updateLimiter *= 2;
                    break;

                case FrameSync.Limit2x:
                    drawLimiter   *= 2;
                    updateLimiter *= 2;
                    break;

                case FrameSync.Limit4x:
                    drawLimiter   *= 4;
                    updateLimiter *= 4;
                    break;

                case FrameSync.Limit8x:
                    drawLimiter   *= 8;
                    updateLimiter *= 8;
                    break;

                case FrameSync.Unlimited:
                    drawLimiter = updateLimiter = int.MaxValue;
                    break;
                }

                if (DrawThread != null)
                {
                    DrawThread.ActiveHz = drawLimiter;
                }
                if (UpdateThread != null)
                {
                    UpdateThread.ActiveHz = updateLimiter;
                }
            };
        }
Exemple #4
0
        private void setupConfig()
        {
            Dependencies.Cache(debugConfig = new FrameworkDebugConfigManager());
            Dependencies.Cache(config      = new FrameworkConfigManager(Storage));

            activeGCMode = debugConfig.GetBindable <GCLatencyMode>(FrameworkDebugConfig.ActiveGCMode);
            activeGCMode.ValueChanged += delegate { setLatencyMode(); };
        }
        private void load(FrameworkDebugConfigManager debugConfig, TextureStore store)
        {
            var texture              = store.Get(@"sample-texture");
            var repeatedTexture      = store.Get(@"sample-texture", WrapMode.Repeat, WrapMode.Repeat);
            var edgeClampedTexture   = store.Get(@"sample-texture", WrapMode.ClampToEdge, WrapMode.ClampToEdge);
            var borderClampedTexture = store.Get(@"sample-texture", WrapMode.ClampToBorder, WrapMode.ClampToBorder);

            AddStep("add sprites", () => addMoreDrawables(texture, new RectangleF(0, 0, 1, 1)));
            AddStep("add sprites with shrink", () => addMoreDrawables(texture, new RectangleF(0.25f, 0.25f, 0.5f, 0.5f)));
            AddStep("add sprites with repeat", () => addMoreDrawables(repeatedTexture, new RectangleF(0.25f, 0.25f, 0.5f, 0.5f)));
            AddStep("add sprites with edge clamp", () => addMoreDrawables(edgeClampedTexture, new RectangleF(0.25f, 0.25f, 0.5f, 0.5f)));
            AddStep("add sprites with border clamp", () => addMoreDrawables(borderClampedTexture, new RectangleF(0.25f, 0.25f, 0.5f, 0.5f)));
            AddStep("add boxes", () => addMoreDrawables(Texture.WhitePixel, new RectangleF(0, 0, 1, 1)));
            AddToggleStep("disable front to back", val =>
            {
                debugConfig.SetValue(DebugSetting.BypassFrontToBackPass, val);
                Invalidate(Invalidation.DrawNode); // reset counts
            });

            Add(new Container
            {
                AutoSizeAxes = Axes.Both,
                Depth        = float.NegativeInfinity,
                Anchor       = Anchor.Centre,
                Origin       = Anchor.Centre,

                Children = new Drawable[]
                {
                    new Box
                    {
                        Colour           = Color4.Black,
                        RelativeSizeAxes = Axes.Both,
                        Alpha            = 0.8f,
                    },
                    new FillFlowContainer
                    {
                        AutoSizeAxes = Axes.Both,
                        Padding      = new MarginPadding(10),
                        Direction    = FillDirection.Vertical,
                        Children     = new Drawable[]
                        {
                            labelDrawables = new SpriteText {
                                Font = FrameworkFont.Condensed
                            },
                            labelFrag = new SpriteText {
                                Font = FrameworkFont.Condensed
                            },
                            labelFrag2 = new SpriteText {
                                Font = FrameworkFont.Condensed
                            },
                        }
                    },
                }
            });
        }
Exemple #6
0
 private void load(FrameworkDebugConfigManager config, GameHost host)
 {
     Children = new Drawable[]
     {
         new SettingsButton
         {
             Text   = "清理所有缓存",
             Action = host.Collect
         },
     };
 }
Exemple #7
0
 private void load(FrameworkDebugConfigManager config, GameHost host)
 {
     Children = new Drawable[]
     {
         new SettingsButton
         {
             Text   = DebugSettingsStrings.ClearAllCaches,
             Action = host.Collect
         },
     };
 }
Exemple #8
0
 private void load(FrameworkDebugConfigManager config)
 {
     Children = new Drawable[]
     {
         new OsuCheckbox
         {
             LabelText = "Bypass caching",
             Bindable  = config.GetBindable <bool>(FrameworkDebugConfig.BypassCaching)
         }
     };
 }
Exemple #9
0
 private void load(FrameworkDebugConfigManager config)
 {
     Children = new Drawable[]
     {
         new SettingsButton
         {
             Text   = "Force garbage collection",
             Action = GC.Collect
         },
     };
 }
Exemple #10
0
        public DatabaseController(GameHost host, DependencyContainer dependencies)
        {
            Dependencies = dependencies;
            Connection   = host.Storage.GetDatabase(@"client");

            Dependencies.Cache(debugConfig  = new FrameworkDebugConfigManager());
            Dependencies.Cache(config       = new FrameworkConfigManager(host.Storage));
            Dependencies.Cache(Localisation = new LocalisationEngine(config));

            Dependencies.Cache(RulesetDatabase = new RulesetDatabase(host.Storage, Connection));
            Dependencies.Cache(BeatmapDatabase = new BeatmapDatabase(host.Storage, Connection, RulesetDatabase, host));
            Dependencies.Cache(ScoreDatabase   = new ScoreDatabase(host.Storage, Connection, host, BeatmapDatabase));
        }
Exemple #11
0
 private void load(FrameworkDebugConfigManager config, FrameworkConfigManager frameworkConfig)
 {
     Children = new Drawable[]
     {
         new SettingsCheckbox
         {
             LabelText = "Show log overlay",
             Current   = frameworkConfig.GetBindable <bool>(FrameworkSetting.ShowLogOverlay)
         },
         new SettingsCheckbox
         {
             LabelText = "Bypass front-to-back render pass",
             Current   = config.GetBindable <bool>(DebugSetting.BypassFrontToBackPass)
         }
     };
 }
Exemple #12
0
 private void load(FrameworkDebugConfigManager config)
 {
     Children = new Drawable[]
     {
         new SettingsEnumDropdown <GCLatencyMode>
         {
             LabelText = "Active mode",
             Bindable  = config.GetBindable <GCLatencyMode>(DebugSetting.ActiveGCMode)
         },
         new SettingsButton
         {
             Text   = "Force garbage collection",
             Action = GC.Collect
         },
     };
 }
 private void load(FrameworkDebugConfigManager config, FrameworkConfigManager frameworkConfig)
 {
     Children = new Drawable[]
     {
         new SettingsCheckbox
         {
             LabelText = "Bypass caching",
             Bindable  = config.GetBindable <bool>(DebugSetting.BypassCaching)
         },
         new SettingsCheckbox
         {
             LabelText = "Debug logs",
             Bindable  = frameworkConfig.GetBindable <bool>(FrameworkSetting.ShowLogOverlay)
         }
     };
 }
Exemple #14
0
 private void load(FrameworkDebugConfigManager config)
 {
     Children = new Drawable[]
     {
         new OptionEnumDropDown <GCLatencyMode>
         {
             LabelText = "Active mode",
             Bindable  = config.GetBindable <GCLatencyMode>(FrameworkDebugConfig.ActiveGCMode)
         },
         new OsuButton
         {
             RelativeSizeAxes = Axes.X,
             Text             = "Force garbage collection",
             Action           = () => GC.Collect()
         },
     };
 }
        private void load(FrameworkDebugConfigManager debugConfig)
        {
            AddStep("add more drawables", addMoreDrawables);
            AddToggleStep("disable front to back", val =>
            {
                debugConfig.Set(DebugSetting.BypassFrontToBackPass, val);
                Invalidate(Invalidation.DrawNode); // reset counts
            });

            Add(new Container
            {
                AutoSizeAxes = Axes.Both,
                Depth        = float.NegativeInfinity,
                Anchor       = Anchor.Centre,
                Origin       = Anchor.Centre,

                Children = new Drawable[]
                {
                    new Box
                    {
                        Colour           = Color4.Black,
                        RelativeSizeAxes = Axes.Both,
                        Alpha            = 0.8f
                    },
                    new FillFlowContainer
                    {
                        AutoSizeAxes = Axes.Both,
                        Padding      = new MarginPadding(10),
                        Direction    = FillDirection.Vertical,
                        Children     = new Drawable[]
                        {
                            labelDrawables = new SpriteText {
                                Font = FrameworkFont.Condensed
                            },
                            labelFrag = new SpriteText {
                                Font = FrameworkFont.Condensed
                            },
                            labelFrag2 = new SpriteText {
                                Font = FrameworkFont.Condensed
                            },
                        }
                    },
                }
            });
        }
Exemple #16
0
        private void load(FrameworkDebugConfigManager config)
        {
            Children = new Drawable[]
            {
                new SettingsEnumDropdown <LatencyMode>
                {
                    LabelText = "Active mode",
                    Bindable  = latencyMode
                },
                new SettingsButton
                {
                    Text   = "Force garbage collection",
                    Action = GC.Collect
                },
            };

            configLatencyMode = config.GetBindable <GCLatencyMode>(DebugSetting.ActiveGCMode);
            configLatencyMode.BindValueChanged(mode => latencyMode.Value = (LatencyMode)mode.NewValue, true);
            latencyMode.BindValueChanged(mode => configLatencyMode.Value = (GCLatencyMode)mode.NewValue);
        }
Exemple #17
0
 private void load(FrameworkDebugConfigManager config, FrameworkConfigManager frameworkConfig)
 {
     Children = new Drawable[]
     {
         new SettingsCheckbox
         {
             LabelText = "显示日志Overlay",
             Bindable  = frameworkConfig.GetBindable <bool>(FrameworkSetting.ShowLogOverlay)
         },
         new SettingsCheckbox
         {
             LabelText = "记录性能相关信息",
             Bindable  = frameworkConfig.GetBindable <bool>(FrameworkSetting.PerformanceLogging)
         },
         new SettingsCheckbox
         {
             LabelText = "绕过 front-to-back 渲染检查(render pass)",
             Bindable  = config.GetBindable <bool>(DebugSetting.BypassFrontToBackPass)
         }
     };
 }
Exemple #18
0
 private void load(FrameworkDebugConfigManager config, FrameworkConfigManager frameworkConfig, OsuGame game)
 {
     Children = new Drawable[]
     {
         new SettingsCheckbox
         {
             LabelText = "Show log overlay",
             Current   = frameworkConfig.GetBindable <bool>(FrameworkSetting.ShowLogOverlay)
         },
         new SettingsCheckbox
         {
             LabelText = "Bypass front-to-back render pass",
             Current   = config.GetBindable <bool>(DebugSetting.BypassFrontToBackPass)
         }
     };
     Add(new SettingsButton
     {
         Text   = "Import files",
         Action = () => game?.PerformFromScreen(menu => menu.Push(new FileImportScreen()))
     });
 }
Exemple #19
0
 private void load(FrameworkDebugConfigManager config, FrameworkConfigManager frameworkConfig, OsuGame game)
 {
     Children = new Drawable[]
     {
         new SettingsCheckbox
         {
             LabelText = "顯示日誌圖層",
             Current   = frameworkConfig.GetBindable <bool>(FrameworkSetting.ShowLogOverlay)
         },
         new SettingsCheckbox
         {
             LabelText = "不使用\"前到後\"渲染設定",
             Current   = config.GetBindable <bool>(DebugSetting.BypassFrontToBackPass)
         }
     };
     Add(new SettingsButton
     {
         Text   = "匯入檔案...",
         Action = () => game?.PerformFromScreen(menu => menu.Push(new FileImportScreen()))
     });
 }
Exemple #20
0
        private void setupConfig()
        {
            Dependencies.Cache(debugConfig  = new FrameworkDebugConfigManager());
            Dependencies.Cache(config       = new FrameworkConfigManager(Storage));
            Dependencies.Cache(Localisation = new LocalisationEngine(config));

            activeGCMode = debugConfig.GetBindable <GCLatencyMode>(DebugSetting.ActiveGCMode);
            activeGCMode.ValueChanged += newMode =>
            {
                GCSettings.LatencyMode = IsActive ? newMode : GCLatencyMode.Interactive;
            };

            frameSyncMode = config.GetBindable <FrameSync>(FrameworkSetting.FrameSync);
            frameSyncMode.ValueChanged += newMode =>
            {
                float refreshRate = DisplayDevice.Default.RefreshRate;
                // For invalid refresh rates let's assume 60 Hz as it is most common.
                if (refreshRate <= 0)
                {
                    refreshRate = 60;
                }

                float drawLimiter   = refreshRate;
                float updateLimiter = drawLimiter * 2;

                setVSyncMode();

                switch (newMode)
                {
                case FrameSync.VSync:
                    drawLimiter    = int.MaxValue;
                    updateLimiter *= 2;
                    break;

                case FrameSync.Limit2x:
                    drawLimiter   *= 2;
                    updateLimiter *= 2;
                    break;

                case FrameSync.Limit4x:
                    drawLimiter   *= 4;
                    updateLimiter *= 4;
                    break;

                case FrameSync.Limit8x:
                    drawLimiter   *= 8;
                    updateLimiter *= 8;
                    break;

                case FrameSync.Unlimited:
                    drawLimiter = updateLimiter = int.MaxValue;
                    break;
                }

                if (DrawThread != null)
                {
                    DrawThread.ActiveHz = drawLimiter;
                }
                if (UpdateThread != null)
                {
                    UpdateThread.ActiveHz = updateLimiter;
                }
            };

            ignoredInputHandlers = config.GetBindable <string>(FrameworkSetting.IgnoredInputHandlers);
            ignoredInputHandlers.ValueChanged += ignoredString =>
            {
                var configIgnores = ignoredString.Split(' ').Where(s => !string.IsNullOrWhiteSpace(s));

                // for now, we always want at least one handler disabled (don't want raw and non-raw mouse at once).
                bool restoreDefaults = !configIgnores.Any();

                if (restoreDefaults)
                {
                    resetInputHandlers();
                    ignoredInputHandlers.Value = string.Join(" ", AvailableInputHandlers.Where(h => !h.Enabled).Select(h => h.ToString()));
                }
                else
                {
                    foreach (var handler in AvailableInputHandlers)
                    {
                        var handlerType = handler.ToString();
                        handler.Enabled.Value = configIgnores.All(ch => ch != handlerType);
                    }
                }
            };

            cursorSensitivity = config.GetBindable <double>(FrameworkSetting.CursorSensitivity);

            performanceLogging = config.GetBindable <bool>(FrameworkSetting.PerformanceLogging);
            performanceLogging.ValueChanged += enabled => threads.ForEach(t => t.Monitor.EnablePerformanceProfiling = enabled);
            performanceLogging.TriggerChange();
        }
        private void load(VignetteConfigManager gameConfig, FrameworkConfigManager frameworkConfig, FrameworkDebugConfigManager debugConfig, VignetteGameBase game, Storage storage)
        {
            AddRange(new Drawable[]
            {
                new Container
                {
                    AutoSizeAxes     = Axes.Y,
                    RelativeSizeAxes = Axes.X,
                    Margin           = new MarginPadding {
                        Bottom = 30
                    },
                    Child = versionText = new ThemableSpriteText
                    {
                        Anchor = Anchor.Centre,
                        Origin = Anchor.Centre,
                        Text   = game.Version,
                        Font   = SegoeUI.Bold.With(size: 24),
                    },
                },
                new SettingsCheckbox
                {
                    Label   = "Show FPS",
                    Current = gameConfig.GetBindable <bool>(VignetteSetting.ShowFpsOverlay),
                },
                new SettingsCheckbox
                {
                    Label   = "Show log overlay",
                    Current = frameworkConfig.GetBindable <bool>(FrameworkSetting.ShowLogOverlay),
                },
                new SettingsCheckbox
                {
                    Label   = "Bypass front-to-back render pass",
                    Current = debugConfig.GetBindable <bool>(DebugSetting.BypassFrontToBackPass),
                },
                new SettingsButton
                {
                    Label  = "Open logs folder",
                    Action = () => storage.OpenPathInNativeExplorer("./logs"),
                },
            });

            if (!game.IsDeployedBuild && game.IsDebugBuild)
            {
                versionText.Colour = ThemeSlot.Error;
            }
            else if (!game.IsDeployedBuild)
            {
                versionText.Colour = ThemeSlot.Success;
            }
            else
            {
                versionText.Colour = ThemeSlot.Gray190;
            }
        }
Exemple #22
0
        private void setupConfig()
        {
            Dependencies.Cache(debugConfig  = new FrameworkDebugConfigManager());
            Dependencies.Cache(config       = new FrameworkConfigManager(Storage));
            Dependencies.Cache(Localisation = new LocalisationEngine(config));

            activeGCMode = debugConfig.GetBindable <GCLatencyMode>(DebugSetting.ActiveGCMode);
            activeGCMode.ValueChanged += newMode =>
            {
                GCSettings.LatencyMode = IsActive ? newMode : GCLatencyMode.Interactive;
            };

            frameSyncMode = config.GetBindable <FrameSync>(FrameworkSetting.FrameSync);
            frameSyncMode.ValueChanged += newMode =>
            {
                float refreshRate = DisplayDevice.Default.RefreshRate;
                // For invalid refresh rates let's assume 60 Hz as it is most common.
                if (refreshRate <= 0)
                {
                    refreshRate = 60;
                }

                float drawLimiter   = refreshRate;
                float updateLimiter = drawLimiter * 2;

                setVSyncMode();

                switch (newMode)
                {
                case FrameSync.VSync:
                    drawLimiter    = int.MaxValue;
                    updateLimiter *= 2;
                    break;

                case FrameSync.Limit2x:
                    drawLimiter   *= 2;
                    updateLimiter *= 2;
                    break;

                case FrameSync.Limit4x:
                    drawLimiter   *= 4;
                    updateLimiter *= 4;
                    break;

                case FrameSync.Limit8x:
                    drawLimiter   *= 8;
                    updateLimiter *= 8;
                    break;

                case FrameSync.Unlimited:
                    drawLimiter = updateLimiter = int.MaxValue;
                    break;
                }

                if (DrawThread != null)
                {
                    DrawThread.ActiveHz = drawLimiter;
                }
                if (UpdateThread != null)
                {
                    UpdateThread.ActiveHz = updateLimiter;
                }
            };

            enabledInputHandlers = config.GetBindable <string>(FrameworkSetting.ActiveInputHandlers);
            enabledInputHandlers.ValueChanged += enabledString =>
            {
                var  configHandlers = enabledString.Split(' ').Where(s => !string.IsNullOrWhiteSpace(s));
                bool useDefaults    = !configHandlers.Any();

                // make sure all the handlers in the configuration file are available, else reset to sane defaults.
                foreach (string handler in configHandlers)
                {
                    if (AvailableInputHandlers.All(h => h.ToString() != handler))
                    {
                        useDefaults = true;
                        break;
                    }
                }

                if (useDefaults)
                {
                    resetInputHandlers();
                    enabledInputHandlers.Value = string.Join(" ", AvailableInputHandlers.Where(h => h.Enabled).Select(h => h.ToString()));
                }
                else
                {
                    foreach (var handler in AvailableInputHandlers)
                    {
                        var handlerType = handler.ToString();
                        handler.Enabled.Value = configHandlers.Any(ch => ch == handlerType);
                    }
                }
            };

            cursorSensitivity = config.GetBindable <double>(FrameworkSetting.CursorSensitivity);
        }
Exemple #23
0
 private void load(FrameworkDebugConfigManager debugConfig)
 {
     AddToggleStep("disable front to back", val => debugConfig.Set(DebugSetting.BypassFrontToBackPass, val));
 }