在许多情况下,渲染需要大量的计算能力。因此,可能会发生跳过帧的情况,因为 UI 需要等待渲染完成。
我想知道如何实现异步渲染或绘画,即隔离。
类似 compute
的函数不是一个选项,因为 SendPort
仅适用于原始类型,绘画需要 PaintingContext
或 Canvas
.
有些 Flutter 插件需要大量渲染。因此,我认为我可以在 video_player
中找到答案。插件,但它使用 Texture
,即不在 Dart 中呈现 。
我想知道是否有任何关于此的习语或示例实现。
你想知道我是如何实现渲染的,你可以看看FlareActor
.事实证明,他们和我一样处理绘画。现在我想知道为什么我会遇到瓶颈而 Flare 不会。有优化绘画的指南吗?
最佳答案
我通过将所有需要的像素写入 BMP
文件格式然后使用 Canvas.drawImage
来解决这个问题,因为 Flutter canvas 无法处理许多 Canvas
操作:https://stackoverflow.com/a/55855735/6509751
关于dart - 如何执行昂贵的渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54736356/