...
在窗口管理器中启用了Compositor扩展,Composite扩展允许窗口管理器在所有窗口创建和显示的过程中重定向窗口输出内容。FDE-X11使用了这三个API RedirectSubwindows
,NameWindowPixmap
和GetWindowPixmap
,通过RedirectSubwindows
调用将一个窗口树中的所有窗口渲染重定向到内部存储off-screen storage 。重定向的时候可以指定让X 自动更新窗口的内容到屏幕上或者由混成器手动更新,通过NameWindowPixmap
取得某个窗口的内部存储,再通过GetWindowPixmap
最终拿到这个窗口的图像buffer。合成器实现窗口特效的原理也基于此。
...
这样就可以将每个窗口的图像buffer分享出来,转到Android处理绘制,而不再是只绘制整个Xserver的合成后的图像buffer。
...