[other] 了解 xlib 或 xcb 的请进
Tofloor
poster avatar
xiao80
deepin
2023-11-30 08:05
Author

程序启动后会先创建绘制显示一个窗口供用户进行操作,操作结束后,会调用 XGetImage 对屏幕中的一块区域进行截图,为了使截图不包含操作窗口的内容,在 XGetImage 调用前,对操作窗口调用 XUnmapWindow 进行隐藏,代码大致如下:

XUnmapWindow
XFlush // 确保提交到 XServer
sleep //
XGetImage

然而 XGetImage 截图中还是会有操作窗口的内容,为此尝试增加了上面 XFlush 语句,然而还是没有达到目的,不得已加了 sleep 语句,然而还得保证 sleep 的间隔足够大(在我这里的环境下是几十毫秒)才能达到目的。有经验的朋友可以帮助解释一下其中的原理吗 ?如何避免使用 sleep 而达到同样目的呢?

Reply Favorite View the author
All Replies
fuuko
deepin
2023-11-30 17:17
#1

官方那个自带的截图不是开源的嘛?直接扒源码去pride

Reply View the author