一,参考资料
https://jichu4n.com/posts/how-x-window-managers-work-and-how-to-write-one-part-i/
1,A window manager is a regular X client.
2,A window manager communicates with the windows it manages through two X mechanisms: properties and... [阅读更多]
一,Windows截屏变化区域
https://www.pianshen.com/article/1554879856/
https://blog.csdn.net/qwerty448/article/details/53056576
windows8以上的系统,则实现了一个DXGI,用来截取桌面,它是集成在DirectX之中,成为DX的一个子功能。
你需要简单熟悉DirectX技术才能使用DXGI,他通过一堆啰嗦的创建和查询各种接口,最终获取到IDXGIOutputDuplication接口。
截屏的时候,使用这个接口的AcquireNextFrame函数获取当前桌面图像,当然这个接口还提供GetFrameDirtyRects等函数获取发生了变化的矩形区域。
从上面描述可以看到,Windows有个名为IDXGIOutputDuplication::GetFrameDirtyRects的API接口,可以捕获发生变化的桌面区域,这对桌面的远程接入有很大帮助,可以减少桌面图像流量。
二,Linux截屏变化区域
X11下找到一个damage扩展,应该是与桌面变化区域相关的功能。
https://www.x.org/releases/X11R7.7/doc/damageproto/damageproto.txt
https://www.x.org/releases/X11R7.7/doc/index.html
https://www.x.org/releases/current/doc/man/man3/xcb_damage_create.3.xhtml
https://www.x.org/releases/current/doc/man/man3/
https://xcb.freedesktop.org/manual/group__XCB__Damage__API.html
https://gitlab.freedesktop.org/xorg/lib/libxdamage
https://github.com/freedesktop
0,测试环境
硬件:VirtualBox... [阅读更多]
一,测试环境
硬件:VirtualBox 7.0
操作系统:
$ cat /etc/issue
Ubuntu 20.04.3 LTS \n \l
$ uname -a
Linux lenky-VirtualBox 5.11.0-25-generic #27~20.04.1-Ubuntu SMP Tue Jul 13 17:41:23 UTC 2021 x86_64 x86_64 x86_64... [阅读更多]