external_plugin
external_plugin copied to clipboard
这个方式就相当于 flutter 使用的是 android 的 opengl 进行绘制的?
老铁, 我看了你的微信文章过来的. 你这种方式, 我的理解是, android 有一个 openGL, 然后 flutter 也有一个, 使用外接纹理, 让 flutter 的openGl 交给了 原生 android 的, 实现了用同一个 SurfaceTexture.
这种方式要怎么应用到图片显示上, 比如Android 这边, 在内存中已经有一份图片, 怎么将这份图片内存共享给 flutte 端, 还是说只要存在内存中, SurfaceTexture 会自动复用?
简单理解就是, Android 这边的许多图片我已经加载到内存中了, 然后 Flutter 那边, 可能也需要显示一些图片, 但是这些图片在 Android 端的内存里已经有的, 我如何共享给 Flutter 端, 让它不需要重复加载
并不是,Flutter是有自己的OpenGL环境的,这里只是使用了原生android传入的纹理来使用。 本质上是2个不同的OpenGL环境在 共享纹理,避免了copy操作。 Android本身通过SurfaceTexture提供了跨进程共享纹理的能力,更底层的类是 HardwareBuffer也可以实现类似功能。