我想知道,我怎么能抓住一个窗口并在3D空间的纹理上显示它。如何将鼠标和键盘输入从3D应用程序重定向到后台运行的应用程序?我的意思是全3D桌面。
答案 0 :(得分:1)
这可能有点复杂,“完整”的答案可能不适合这个论坛。不过,这是一个想法/大纲:
这样做的一种方法是通过VNC。在VNC服务器中运行单独的,不可见的“虚拟”桌面,然后使用它作为显示启动所需的应用程序。然后,“真实”桌面上的3D渲染程序可以连接到VNC服务器,并以位图格式访问其桌面,并将其渲染到纹理多边形上。输入事件中的管道也是非常可行的。
我实际上已经完成了这个,或者至少有一半(显示)。这是我设法做的一个非常旧的截图,当时:
(来源:sourceforge.net)
黑色天空和蓝色/紫色“地面”由真实桌面上的3D程序渲染,而倾斜的四边形在“虚拟”VNC桌面上显示一个窗口。
趣!
答案 1 :(得分:0)
解决方案的一个关键部分是OpenGL / GLX扩展GLX_EXT_texture_from_pixmap
,它弥合了X11和OpenGL世界之间的差距。
至于其他人...... Compiz和CompizFusion已经实施了3D桌面。试一试;如果你对事物的运作方式有一些具体的想法,那么这些资源是免费提供的(并且它们也支持插件的概念)。