我的问题是如何在Linux上使用X11或一些工具包如Gtk创建和定位分层窗口。当我说分层窗口时,我的意思是其形状和透明度由包含rgb和alpha(透明度)通道的像素数据定义的窗口。请参见下面的屏幕截图。在Windows上,我广泛使用简单的UpdateLayeredWindow API,想知道如何在Linux上做同样的事情。谢谢。
X11最初仅支持一位透明度(需要SHAPE扩展,但现在几乎所有的X11服务器都实现了它)。使用XShapeCombineMask
或gtk_widget_shape_combine_mask
函数。
如果您想要抗锯齿透明度,则可能最简单的方法是使用cairo工具包。示例可以在这里找到。
要在X11中使用透明度,您需要: