Java 具有透明背景的LWJGL窗口?

Java 具有透明背景的LWJGL窗口?,java,opengl,graphics,transparency,lwjgl,Java,Opengl,Graphics,Transparency,Lwjgl,我想创建一个没有“黑色背景”区域的窗口,但是你可以看到其他打开的窗口,等等 也就是说,渲染场景并仅渲染场景,不留下任何帧和背景区域 我读过一个方法,它涉及渲染到一个隐藏的OpenGL窗口并在内存中缓冲,创建一个透明的分层窗口,以及从内存复制到透明窗口 显然,这是非常cpu/内存密集型的,所以我想知道在Java和LWJGL中是否有更好的方法来实现这一点?这是特定于操作系统的,因为“操作系统/窗口管理器/非您部门”拥有其他窗口 在Windows上,OpenGL不能参与这种合成。其他操作系统可能会允许

我想创建一个没有“黑色背景”区域的窗口,但是你可以看到其他打开的窗口,等等

也就是说,渲染场景并仅渲染场景,不留下任何帧和背景区域

我读过一个方法,它涉及渲染到一个隐藏的OpenGL窗口并在内存中缓冲,创建一个透明的分层窗口,以及从内存复制到透明窗口


显然,这是非常cpu/内存密集型的,所以我想知道在Java和LWJGL中是否有更好的方法来实现这一点?

这是特定于操作系统的,因为“操作系统/窗口管理器/非您部门”拥有其他窗口


在Windows上,OpenGL不能参与这种合成。其他操作系统可能会允许它。

这只能通过平台特定的代码来实现。


提供关于该主题的有趣讨论。共享在Windows和Linux上实现此效果的C代码。

请提供相关链接。不知何故,曲面需要集成到桌面合成中。Windows上的OpenGL应用程序以某种方式绕过了
DWM
,而使用了较低的系统层?或者是吗?是的,我通过谷歌发现,评论说这种方式非常占用cpu。但这可能是在windows上实现这一点的唯一方法?是的,不幸的是,GPU中处理的每一帧都必须复制到RAM中,然后在屏幕上绘制以获得透明窗口效果。这是这类事情的瓶颈。如果你仔细想想,没有多少商业应用程序能做到这一点,因为它不能以快速的方式完成。啊,好吧,这就是我害怕的。看来操作系统的作者现在应该在这上面了,嗯?谢谢你的澄清!