Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Shana-V opened this issue Sep 19, 2023 · 9 comments
Open

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

Shana-V opened this issue Sep 19, 2023 · 9 comments
Labels
enhancement New feature or request

Comments

@Shana-V
Copy link

Shana-V commented Sep 19, 2023

Expected behavior 预期的功能

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

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

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

@Shana-V Shana-V added the enhancement New feature or request label Sep 19, 2023
@Blinue
Copy link
Owner

Blinue commented Sep 20, 2023

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

@Ptilopsis01
Copy link

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

@killer8224
Copy link

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

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

@Blinue
Copy link
Owner

Blinue commented Dec 23, 2023

@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 的挑战性很大。

@Ptilopsis01
Copy link

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

@Blinue
Copy link
Owner

Blinue commented Dec 25, 2023

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

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

@Ptilopsis01
Copy link

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

  • 缩放模式 1

    • 默认情境

      • 效果配置
    • 情境 1

      • 激活条件

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

    • 情境 2

      • ...

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

@Blinue
Copy link
Owner

Blinue commented Dec 25, 2023

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

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

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

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

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

@Ptilopsis01
Copy link

明白了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Todo
Development

No branches or pull requests

4 participants