Blinue-Magpie

使游戏窗口全屏显示的工具
授权协议 GPLv3
开发语言 C/C++
所属分类 游戏/娱乐、 游戏模拟器/工具/引擎
软件类型 开源软件
地区 不详
投 递 者 伏砚
操作系统 Windows
开源组织
适用人群 未知
 软件概览

Magpie 可以将任意窗口放大至全屏,支持多种高级缩放算法,包括 Lanczos、Anime4KFSRFSRCNNX 等。主要用于游戏窗口的放大显示,适用于不支持全屏模式,或者内置的全屏模式会使画面模糊的情况。

要放大的窗口位于前台时,按下热键即可全屏显示该窗口,再次按下热键或者切换前台窗口将退出全屏。

以下为配置说明:

缩放模式

程序预置了多种缩放模式,如果它们不符合你的需求,请自定义缩放

  1. Lanczos:常见的传统插值算法,善于保留锐利的边缘;
  2. RAVU:见 About RAVU。此预置使用 zoom 变体;
  3. FSRCNNX:FSRCNN的变体。在各种场合表现优秀;
  4. ACNet:ACNetGLSL 的移植。适合动画风格的图像和视频放大;
  5. Anime4K:开源的高质量的实时动漫缩放/降噪算法;
  6. FSR:适用于 3D 游戏;
  7. 像素:将每个像素放大整数倍,可以完整保留原图像的视觉效果。预置了 2x 和 3x 两种放大倍率;

抓取模式

指示程序如何抓取源窗口图像

  1. WinRT Capture:使用 Screen Capture API 抓取窗口,最推荐的方法。此 API 从 Windows 10, v1803 开始提供。
  2. GDI:使用 GDI 抓取源窗口,速度稍慢。

注入模式

如果源窗口使用了自定义光标,屏幕上可能出现两个光标。为了解决这个问题,Magpie 提供了进程注入的功能:

  1. 不使用注入:适用于源窗口没有自定义光标的场合
  2. 运行时注入:在执行缩放的同时注入源窗口线程,退出全屏后取消注入
  3. 启动时注入:适用于运行时注入不起作用的场合,不能注入正在运行的进程,需要手动选择要启动并注入的程序。

高级选项

  • 显示帧率:在屏幕左上角显示当前帧率

实现原理

因为实现原理的不同,Magpie 比 Lossless Scaling 和 IntegerScaler 强大的多。Magpie 的原理非常简单:使用一个全屏窗口覆盖屏幕,捕获原窗口的内容放大后在该全屏窗口显示出来。这种方式使得缩放算法不受任何限制,让我们可以自由使用现存的优秀缩放算法。

 相关资料
  • 我目前正在编写一个游戏,你必须避免小行星。我不得不处理一些混乱的坐标,我不得不猜测精灵的坐标。我现在有了描述我的世界的任意单位。不幸的是,我的游戏屏幕不能完全工作。当我想渲染我的小行星时,游戏屏幕会显示一个黑屏。 上面显示的代码工作正常,并向我展示了以下内容: 当我在GameScreen类中添加小行星的渲染方法时,GameScreen只是黑色的: 小行星等级: 小行星等级:

  • 问题内容: 如何以与IE,Firefox和Opera兼容的方式使访问者的浏览器使用JavaScript全屏显示? 问题答案: 这与您使用JavaScript进入全屏显示的时间非常接近:

  • 这是我的代码,请记住,我在几天前学习了python,所以我的代码可能制作不正确,等等。我正在尝试制作一个窗口,该窗口将显示一些文本(测试版),并将显示两个小矩形,我想成为按钮。

  • 我正在开发一个小型应用程序,我需要同时向用户显示两个窗口,但全屏显示(该应用程序将在双屏上为用户制作)。 我在NetBeans 8.0.1上使用JavaFx场景构建器2.0 我尝试了这个,但只有第二个窗口全屏显示。 可以全屏显示两个窗口吗? 非常感谢。

  • 我正在写一个简单的mandelbrot渲染器。在程序计算并绘制所有内容后,它将保存曲面并进行blits。这很好,但在我添加了更新显示功能后,它只显示一个黑屏。我需要更新每次迭代,因为我将添加一些文本和其他内容。我只包括了节目的重要部分。有人知道为什么会这样吗?

  • 问题内容: 我正在尝试用Java制作2D游戏,但是当我在线程中调用repaint()方法时,会有一个奇怪的仅灰色窗口。 这是我到目前为止的源代码: Spaceshooter.java 播放器 预先感谢您的答复! 问题答案: 什么是EDT? Swing事件处理代码在称为事件调度线程的特殊线程上运行。大多数调用Swing方法的代码也都在此线程上运行。这是必需的,因为大多数Swing对象方法都不是“线程