Magpie icon indicating copy to clipboard operation
Magpie copied to clipboard

希望根据窗口分辨率切换配置

Open Shana-V opened this issue 2 years ago • 10 comments

Expected behavior 预期的功能

这样就不需要每个游戏都手动切换配置。

Alternative behavior (optional) 近似的功能(可选)

类似madvr那样根据分辨率切换配置。 madVR Profile設置: https://lysandria1985.blogspot.com/2014/01/2madvr-profile.html

Shana-V avatar Sep 19 '23 07:09 Shana-V

很实用的功能,设计 UI 比较困难,但值得做。

Blinue avatar Sep 20 '23 05:09 Blinue

这个确实好,感觉比快捷键和自动识别都要合适

Ptilopsis01 avatar Sep 22 '23 15:09 Ptilopsis01

很实用的功能,设计 UI 比较困难,但值得做。

大佬,您好!这个功能我有个简化的思路,您看看是否有参考价值: 在我的使用magpie过程中,我发现大部分的原始窗口,分辨率在640480~19201080之间,再高分辨率的程序都比较新,内置的缩放基本能够比较清楚的。 以4K显示器为例,即使是最低分辨率的640*480 放大到4K也只需要进行2次2倍的缩放。 因此这个功能简化成,根据原始窗口的分辨率,在2个(多个)配置间自动应用。 界面简化为: 宽度<=1280 并且 高度 <= 720 应用配置1 -->例如进行2次anime4k算法 宽度<=1920并且 高度 <= 1080 应用配置2 -->例如进行1次anime4k算法 如果实在还有更多档位需求,下面允许用户再增加即可,逻辑应该是一样的

killer8224 avatar Dec 22 '23 15:12 killer8224

@killer8224 谢谢建议,你的方案易于配置,但不太灵活,我希望同一套配置能在不同的分辨率上通用,因此还应支持判断缩放比例。市面上的显示器有很多奇怪的分辨率,而且以后如果要支持窗口化就意味着要支持任意分辨率了。拿 Anime4K 举例:

  1. 如果目标尺寸是源窗口的 1-2 倍,配置为:Anime4K->Bicubic
  2. 如果目标尺寸恰好为源窗口的 2 倍,配置为:Anime4K
  3. 如果目标尺寸是源窗口的 2-4 倍,配置为:Anime4K->Bicubic->Anime4K
  4. 如果目标尺寸恰好为源窗口的 4 倍,配置为:Anime4K->Anime4K
  5. 以此类推

每个配置应该有一个激活条件,这个激活条件由多种因素组合而成,如判断分辨率、缩放比例、刷新率等,并支持用“且”和“或”组合。这些通过代码容易实现,但对一般用户不友好。比如 MadVR 的配置界面:

image

我的理念是把 UI 做的简单易用,没有学习成本。由于这个功能确实复杂,设计 UI 的挑战性很大。

Blinue avatar Dec 23 '23 12:12 Blinue

我有个建议,缩放配置和现在一样保持不变,触发条件可以设置成类似“初级模式”“高级模式”的形式,初级模式就还是自己手选配置,高级模式让用户设置缩放情境,自己输入特定语法规则的条件判断语句,然后绑定为true时相应的缩放配置,可以设置多个情境 这样真不懂的也能按现在这样用,或者大不了直接导入配置文件抄作业也行嘛

Ptilopsis01 avatar Dec 24 '23 14:12 Ptilopsis01

初步想法是做成树形结构,缩放模式要在单独的页面中配置。默认情境在其他情境都不符合的情况下激活,现在的缩放模式都相当于默认情境。关于激活条件考虑不支持“或”操作,一是用的少,上面的讨论都没有使用“或”,二是可以添加多个情境来代替“或”操作。

  • 缩放模式 1
    • 默认情境
      • 效果配置
    • 情境 1
      • 激活条件
        • 条件 1
        • 条件 2
      • 效果配置
    • 情境 2
      • ...

Blinue avatar Dec 25 '23 01:12 Blinue

初步想法是做成树形结构,缩放模式要在单独的页面中配置。默认情境在其他情境都不符合的情况下激活,现在的缩放模式都相当于默认情境。关于激活条件考虑不支持“或”操作,一是用的少,上面的讨论都没有使用“或”,二是可以添加多个情境来代替“或”操作。

  • 缩放模式 1

    • 默认情境

      • 效果配置
    • 情境 1

      • 激活条件

        • 条件 1
        • 条件 2
      • 效果配置

    • 情境 2

      • ...

我觉得或还是有必要的,最常见的使用场景是因为窗口比例和显示器比例不一定一致,需要或来对某一边进行判断

Ptilopsis01 avatar Dec 25 '23 06:12 Ptilopsis01

我觉得或还是有必要的,最常见的使用场景是因为窗口比例和显示器比例不一定一致,需要或来对某一边进行判断

这个可以放在条件里,比如支持以下条件:

  • 横/纵向缩放比例
  • 最大等比缩放比例
  • 源窗口宽/高度
  • 目标宽/高度

我也考虑过支持多个激活条件,但担心 UI 会过于复杂。结构是:

  • 情境 1
    • 激活条件 1
      • 条件 1
      • 条件 2
    • 激活条件 2
      • 条件 1
      • 条件 2
    • 效果配置

Blinue avatar Dec 25 '23 07:12 Blinue

明白了

Ptilopsis01 avatar Dec 25 '23 07:12 Ptilopsis01