【发布时间】:2014-08-26 07:18:44
【问题描述】:
在使用全屏 3D 应用程序(例如游戏)时,是否可以将桌面渲染为屏幕截图?还是在游戏运行时windows会关闭渲染引擎?
我正在寻找在我的游戏中将桌面渲染为纹理的方法。类似 RDP 的协议能否成为解决方案?
编辑:澄清一下,是否有任何深层 api 机制可以强制渲染到另一个缓冲区,例如在制作屏幕截图时。不管是 Windows 7 还是 Windows 8/9。
【问题讨论】:
-
我们在谈论游戏引擎中的“Unity”?如果是这样,正确的标签是 [unity3d]。
-
@Bart 谢谢,是的。与游戏引擎的关系不大,但我认为如果它重要的话,我会标记它。
-
所以你问的是当游戏全屏运行时你是否仍然可以渲染桌面视图(在纹理中)?我的第一个猜测是“不可能”,但我没有足够的信息来支持它。附:如果 Unity 并不真正相关,请删除标签。但是,如果您正在寻找适用于 Unity 的解决方案,只需将其留在原处即可。
-
@Bart 是的,我知道正常的屏幕截图程序不起作用。但也许winapi中有一种方法可以强制重绘到另一个不可见的缓冲区(而不是屏幕)。 Unity 可能与渲染方式有关。例如,在窗口模式下,可以通过隐藏游戏窗口、强制重绘到另一个缓冲区然后继续它来实现。
-
尝试在应用进入全屏模式之前截取桌面截图
标签: c# windows winapi unity3d rdp