external_plugin icon indicating copy to clipboard operation
external_plugin copied to clipboard

这个方式就相当于 flutter 使用的是 android 的 opengl 进行绘制的?

Open siyehua opened this issue 4 years ago • 2 comments

老铁, 我看了你的微信文章过来的. 你这种方式, 我的理解是, android 有一个 openGL, 然后 flutter 也有一个, 使用外接纹理, 让 flutter 的openGl 交给了 原生 android 的, 实现了用同一个 SurfaceTexture.

这种方式要怎么应用到图片显示上, 比如Android 这边, 在内存中已经有一份图片, 怎么将这份图片内存共享给 flutte 端, 还是说只要存在内存中, SurfaceTexture 会自动复用?

siyehua avatar Mar 10 '21 13:03 siyehua

简单理解就是, Android 这边的许多图片我已经加载到内存中了, 然后 Flutter 那边, 可能也需要显示一些图片, 但是这些图片在 Android 端的内存里已经有的, 我如何共享给 Flutter 端, 让它不需要重复加载

siyehua avatar Mar 10 '21 13:03 siyehua

并不是,Flutter是有自己的OpenGL环境的,这里只是使用了原生android传入的纹理来使用。 本质上是2个不同的OpenGL环境在 共享纹理,避免了copy操作。 Android本身通过SurfaceTexture提供了跨进程共享纹理的能力,更底层的类是 HardwareBuffer也可以实现类似功能。

KaelMa avatar Dec 27 '22 06:12 KaelMa