两种透明

来源:互联网 发布:汪小菲为什么选大s知乎 编辑:程序博客网 时间:2024/05/29 10:57

透明总而言之就是需要ARGB中的Alpha。

两个办法,一种是真透明:
1,Pixmap和Window建立时有Alpha通道。Pixmap当然就是depth为32就好,Window的话首先获得Visual信息,用合适的Vi­sual创建窗口。
2、把图搞上去(现在用的Cairo就干这件事)
剩下的就是要Window manager(kwin,metacity等)支持Composite。
具体可以参考代码里面CreateWindow时候的处理。其中FindARGBVisual函数就是获取Visual信息。

另外一种是不支持半透明这种的,可以利用XShapeCombineMask,需要传递一个Pixmap指明哪里是透明的,直接货真价实的改变窗口形状。不需要­窗口管理器支持。

当然两个方法结合起来也ok。

 

现在貌似实现了改变形状的透明方式,但是不能灵活运用,主要Pixmap指定区域不会

至于第一种,貌似平台底层不支持

原创粉丝点击