升级窗口模式?

升级窗口模式?

由于游戏在 Alt-Tab 切换方面仍然表现不佳,尤其是在全屏模式下,所以我想尝试以窗口模式玩一些游戏。问题是,有些游戏需要在 720p 分辨率下玩,否则速度太慢。720p 会使游戏窗口在我的 27 英寸 107dpi 屏幕上显得非常小。

有没有办法让任意的 Direct X(或 OpenGL)窗口放大,以尽可能少地给 GPU 带来压力,同时获得足够大的可查看表面积?

附言:我很纠结是否应该把这篇文章发布在游戏上还是这里,最后我选择了这个。

编辑:澄清一下,我不是在寻找游戏内的分辨率设置,而是寻找一种将 720p 分辨率渲染的游戏升级到更大分辨率的方法 - 分辨率相同,但中间像素更多。就像调整图像大小一样。

答案1

我认为您会发现许多 DX/OpenGL 游戏会在调整窗口大小时自动调整大小。这是因为您无法调整窗口大小以填满屏幕,但如果可以的话,会怎样?还是您尝试过更改窗口大小,但除了 1280x720 之外,其他尺寸都无法显示?如果是前者,我有一个自动热键为您编写脚本。

Loop
{
SysGet MonPrim,Monitor
SysGet MonWidth,0
SysGet MonHeight,1
    IfWinActive, Sins of a Solar Empire
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, ahk_class Wolf2
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, ahk_class CoD4
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, ahk_class Skyrim
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, ahk_class Valve001
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }

    IfWinActive, Need for Speed™ SHIFT
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, ahk_class FEAR
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, Bioshock
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, Torchlight
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, Dead Space
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, Borderlands
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, ahk_class Titan Quest: Immortal Throne
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, ahk_class The Witcher
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, Unreal Tournament 2004
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, Magicka
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    IfWinActive, ahk_class Afx:00400000:0:00000000:01900011:00000000
    {
        WinSet, Style, -0xCF0000 ; remove the titlebar and border(s)
        WinMove, , , %MonPrimLeft%, %MonPrimTop%, %MonWidth%, %MonHeight% ; move the window to 0,0 and rseize it
    }
    Sleep 1000 ; 1 Second
}
return

这将获取与其中一个部分匹配的任何窗口,并强制将其全屏显示而无边框,即使游戏不支持它。只需将游戏设置为窗口模式,它就会处理其余的事情。您可以使用 AutoHotKey 的 Window Spy 找出窗口标题/窗口类以向其中添加新游戏,我已经包含了我通常运行它的所有游戏。

如果您想要不同的宽高比,您还可以将 %MonWindth% 或 %MonHeight% 更改为特定游戏的数字。我发现大多数游戏都可以很好地使用此脚本,尽管游戏如何对其做出反应完全取决于它。游戏可能会自动缩放,游戏可能会留下黑色空间,它可能会崩溃;不过,我还没有在上面提到的游戏中看到任何这些情况。

相关内容