我想知道,如何捕捉一个窗口并将其显示在 3D 空间的纹理上。以及如何将鼠标和键盘输入从 3D 应用程序重定向到后台运行的应用程序?我的意思是全3D桌面。
niez
问问题
315 次
2 回答
1
这可能有点复杂,“完整”的答案可能不适合这个论坛。不过,这是一个想法/大纲:
一种方法是通过VNC。在 VNC 服务器中运行一个单独的、不可见的“虚拟”桌面,然后以它作为显示启动所需的应用程序。然后,您在“真实”桌面上的 3D 渲染程序可以连接到 VNC 服务器,并以位图格式访问其桌面,并将其投射到纹理多边形上。输入事件的管道也是非常可行的。
我实际上已经做到了这一点,或者至少完成了一半(显示)。这是我当时设法做的一个非常古老的屏幕截图:(
来源:sourceforge.net)
黑色的天空和蓝色/紫色的“地面”由真实桌面上的 3D 程序渲染,而倾斜的四边形在“虚拟”VNC 桌面中显示一个窗口。
乐趣!
于 2009-01-29T16:54:03.967 回答
0
该解决方案的一个关键部分是 OpenGL/GLX 扩展GLX_EXT_texture_from_pixmap
,它弥合了 X11 和 OpenGL 世界之间的差距。
至于其余的...... Compiz和CompizFusion已经实现了 3D 桌面。试一试;如果您对事情的工作方式有一些具体的想法,则可以免费获得源代码(并且它们也支持插件的想法)。
于 2009-01-30T14:08:58.463 回答