Des*_*ing 6 browser chromium skia webassembly canvaskit
这是我的一个与远程浏览器隔离相关的实验项目。我试图在正在运行的 Chromium 实例中拦截Skia绘制命令,然后通过CanvasKit(Skia 的 WebAssembly 构建)在客户端的不同浏览器实例中重播它们。
然而,我很难弄清楚在 Chromium 源代码中在哪里以及如何拦截这些绘制命令。非常感谢任何有关如何解决我的问题的建议!
小智 3
在Chromium中,所有绘制操作都将记录在一个文件中,DisplayItemList您可以在blink模块的类定义中找到该文件GraphicsContext。CC其次,这些记录下来的操作会在以后认为合适的时候重播。
在眨眼结束时,上述所有相关代码大部分都分散在blink/renderer/platform/graphics/graphics_context.cc及其相关文件中。但如果你将所有 Chromium 视为一个整体,所有图形事物都是由它触发的,CC (Chrome Compositor)它们维护一个状态机并运行draw frame由 Android 中系统的 vsync 信号触发的循环。在此循环开始时,draw将推送闪烁结束记录操作。在此循环结束时,合成帧的图像将被转换为一系列 GPU 操作,并调用系统的 GPU 设备相关的 API 来执行这些操作。相关CC代码文件可以在components/viz/. 您应该阅读类代码Display作为起始点。
我的观点来自于版本68,你知道 Chromium 中的代码经常变化。所以我无法确认文件和位置仍然正确。
| 归档时间: |
|
| 查看次数: |
857 次 |
| 最近记录: |