gpt4 book ai didi

xcb 说明伪透明度(根窗口像素图的副本到子窗口背景)

转载 作者:行者123 更新时间:2023-12-04 00:46:06 27 4
gpt4 key购买 nike

我想用xcb来说明窗口的伪透明(在窗口背景上复制部分根窗口像素图)

为此,我使用:

根像素图用feh设置然后我启动我的程序(只是代码的一部分):

->初始化连接:

xcb_connect()

->创建窗口:

xcb_create_window()
xcb_create_pixmap( connection,screen->root_depth, pixmap, screen->root, width, height)
xcb_create_gc( connection, graphic_context, pixmap, XCB_GC_FOREGROUND | XCB_GC_BACKGROUND, gc_values_mask)
xcb_map_window

->抓取xcb事件:

xcb_wait_for_event

->回答 map_request_event(当它是我们窗口的请求时)或property_notify(当更改的属性是通过 feh 的根像素图时):

获取根像素图:

xcb_get_property / xcb_get_property_reply / xcb_get_property_value     
==> this works

将根像素图的一部分复制到窗口像素图中:

xcb_copy_area_checked(backbone.connection,
rootpix,
pixmap,
graphic_context,
x, y,
0, 0,
width, height)

我使用 xcb_request_check 但似乎我对最后一个请求没有错误。

然后我用 cairo 在我的窗口中绘制元素。

问题是我只看到一个白色窗口,其中包含 cairo 绘制的元素。即使没有 cairo 元素,我也无法显示复制的窗口像素图。

你有什么想法可以帮助我吗?谢谢

最佳答案

没有人帮助我,我自己找到解决方案:

我只需要在我的窗口中复制部分根像素图:

xcb_copy_area_checked(backbone.connection,
rootpix,
my_window,
graphic_context,
x, y,
0, 0,
width, height)

即使我不确定这是最好的方法,它仍然有效。

关于xcb 说明伪透明度(根窗口像素图的副本到子窗口背景),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10040246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com