Magpie icon indicating copy to clipboard operation
Magpie copied to clipboard

窗口化缩放 Windowed Mode

Open NeilTohno opened this issue 4 years ago • 47 comments

大大好, 有时候我不需要全全屏显示,比如,需要原游戏的 2.5 倍分辨率窗口化显示,

这个可以做吗,谢谢

NeilTohno avatar Sep 12 '21 03:09 NeilTohno

根据 Magpie 的原理,这个功能很难实现。最重要的一个限制是源窗口始终要位于前台,因此窗口化没有太大意义。我觉得要实现这个功能要搞的非常复杂

Blinue avatar Sep 12 '21 06:09 Blinue

根据 Magpie 的原理,这个功能很难实现。最重要的一个限制是源窗口始终要位于前台,因此窗口化没有太大意义。我觉得要实现这个功能要搞的非常复杂

我只想起 win10 的放大镜,那如果实现不了就算了,

谢谢。

NeilTohno avatar Sep 12 '21 09:09 NeilTohno

有的游戏我也不想全屏。。想了下要不试试win10虚拟机?但是虚拟机本身就挺麻烦的。。

ParanoiaIsGreat avatar Oct 07 '21 09:10 ParanoiaIsGreat

根据 Magpie 的原理,这个功能很难实现。最重要的一个限制是源窗口始终要位于前台,因此窗口化没有太大意义。我觉得要实现这个功能要搞的非常复杂

这个感觉就够了

{ "name": "FSRCNNX_LineArt_M2", "effects": [ { "effect": "FSRCNNX_LineArt", }, { "effect": "SSimDownscaler", "scale": [ -0.75, -0.75 ], "variant": 1 } ] },

NeilTohno avatar Dec 11 '21 19:12 NeilTohno

有一个类似的窗口化的项目 https://github.com/mausimus/ShaderGlass ,不过没有实现光标映射

总结来说,窗口化有一些困难:

  1. 光标映射是最棘手的,解决起来比较复杂。当光标进入 Magpie 窗口时,需要将光标移到源窗口的对应位置,然后将光标隐藏,自己绘制光标,用起来违和感不会很大
  2. 关于源窗口始终要位于前台的问题也有解决办法,使 Magpie 窗口和源窗口状态同步,或者当光标进入放大的窗口时自动激活源窗口
  3. 还有一个棘手的问题的是源窗口大小改变时所有 d3d 资源都要重新申请,目前没有这样的处理逻辑

窗口化并非不可能,但要花很多功夫,我计划优先实现计算着色器

Blinue avatar Dec 12 '21 04:12 Blinue

在使用surface时,放大后触屏点击程序源窗口外的位置时,无法正确点击对应位置

Chocoarasi avatar Apr 05 '22 11:04 Chocoarasi

在使用surface时,放大后触屏点击程序源窗口外的位置时,无法正确点击对应位置

https://github.com/Blinue/Magpie/issues/218#issuecomment-980506414

Blinue avatar Apr 05 '22 11:04 Blinue

Hi, I have a small workaround solution using AutoHotkey WinMove command.

A 1080p game window on a 4k screen.

irfran0002 1080p_windowed

After execute WinMove, Magpie_Host, , 62, 718, 2560, 1440.

irfran0001 winmove_scaled_1440p

The scaled ouput overlays the original window as desired. 🦊

artifoxel avatar Apr 25 '22 17:04 artifoxel

目前最棘手的光标问题已经解决 https://github.com/Blinue/Magpie/discussions/254#discussioncomment-2443006 ,支持窗口化是迟早的事。这是一个重要的功能,但优先级不高,接下来的两个版本都不会实现。

Blinue avatar Apr 26 '22 07:04 Blinue

期待该功能 边玩游戏变看攻略 很需要的

WingGao avatar Jun 13 '22 13:06 WingGao

期待该功能 边玩游戏变看攻略 很需要的

A卡驱动带浏览器,你可以用那个,哈哈

NeilTohno avatar Jun 16 '22 04:06 NeilTohno

试了下Lossless Scaling学习版的窗口模式,鼠标完全是不可用状态

mustssr avatar Aug 26 '22 03:08 mustssr

I also have the same demand, may I ask how the problem is now?

Joackk avatar Jan 14 '24 06:01 Joackk

v1.0 发布之前没有实现窗口化的计划,请耐心等待。

Blinue avatar Jan 14 '24 07:01 Blinue

有一个日本软件可实现类似功能,叫蜃気楼

或可作为参考

Kanadeforever avatar Mar 28 '24 00:03 Kanadeforever

有一个日本软件可实现类似功能,叫蜃気楼

或可作为参考

谢谢推荐。这个软件 bug 有点多,优点是可以拖动窗口,其他方面体验不好。

dwm 捕获似乎是 DWM Thumbnail (DwmRegisterThumbnail 或未公开的 DwmCreateSharedThumbnailVisual),这个接口不支持自定义缩放算法。

全屏时用了一个我以前尝试过但放弃了的方案,就是将光标事件转发给源窗口。我不使用这个方案的原因是兼容性不好,调用 GetCursorPos 就露馅了。

Blinue avatar Apr 02 '24 03:04 Blinue