我的问题一般是如何使用X11或某些工具包(如Gtk)在Linux上创建和定位分层窗口。当我说分层窗口时,我指的是一个窗口,其形状和透明度由包含rgb和alpha(透明度)通道的像素数据定义。请参见下面的屏幕截图。
我使用简单的UpdateLayeredWindow API在Windows上广泛使用它们,我想知道如何在Linux上做同样的事情。
感谢。
答案 0 :(得分:2)
X11最初只支持一位透明(需要SHAPE扩展,但是现在几乎所有的X11服务器都实现了它)。使用XShapeCombineMask
或gtk_widget_shape_combine_mask
功能。
如果你想要抗锯齿透明度,那么最简单的方法就是使用cairo工具包。可以找到一个示例here。
答案 1 :(得分:0)
要在X11中使用透明度,您需要
答案 2 :(得分:0)
在X11中,有两种可能的方法:通过 SHAPE 扩展进行简单的位图屏蔽(甚至可以用于非常老的X服务器),或者使用ARGB视觉效果和合成器。我在这个答案中提供了在ARGB可视窗口上执行OpenGL渲染的示例代码: