HarmonyOS 鸿蒙Next Flutter 外接纹理,对接自己的 GL 环境
HarmonyOS 鸿蒙Next Flutter 外接纹理,对接自己的 GL 环境
https://gitee.com/openharmony-sig/flutter_samples/blob/master/ohos/docs/04_development/Flutter%20OHOS%E5%A4%96%E6%8E%A5%E7%BA%B9%E7%90%86%E9%80%82%E9%85%8D%E7%AE%80%E4%BB%8B.md#demo%E5%9C%B0%E5%9D%80 我参考上述链接中获取相机的步骤,获取到了 textureID 和 surfaceID 。
textureID 传回给了 Flutter 。 surfaceID 传到了我创建的 gl 环境中,通过
OH_NativeWindow_CreateNativeWindowFromSurfaceId(surfaceIdNum, &window);
获取到了 native window ,然后创建 eglsurface 。但这期间报了:
18:19:47.936 C01401/Bufferqueue E <312>GetNativeWindow: Cannot find nativeWindow by uniqueId <private>.
我打印了我的 surface id ,看格式应该是没有问题
18:19:47.936 A0F000/OHCamera-CPP I 【EGLManager】 Surface id=269092585996288
我在脱离了 GL 环境和 Flutter 环境,使用鸿蒙原生 OH_NativeImage_Create 创建 NativeImage 然后获取 SurfaceId ,然后通过 OH_NativeWindow_CreateNativeWindowFromSurfaceId(SurfaceId) 获取 nativewindow ,也报了同样的错误。
C01401/Bufferqueue E <312>GetNativeWindow: Cannot find nativeWindow by uniqueId <private>.
这该怎么处理啊?
更多关于HarmonyOS 鸿蒙Next Flutter 外接纹理,对接自己的 GL 环境的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于HarmonyOS 鸿蒙Next Flutter 外接纹理,对接自己的 GL 环境的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在HarmonyOS鸿蒙系统中,使用Flutter外接纹理(External Texture)对接自定义的OpenGL(GL)环境,通常涉及以下几个关键步骤:
-
创建纹理:首先,在你的GL环境中创建一个纹理对象,并确保它已正确初始化。
-
纹理注册:通过Flutter Engine提供的API,将创建的GL纹理注册为外部纹理。这通常涉及到调用特定的平台通道或插件接口。
-
纹理更新:在GL环境中渲染内容时,确保将内容绘制到之前注册的纹理上。这可能需要你使用适当的帧缓冲对象(FBO)和渲染技术。
-
Flutter侧显示:在Flutter侧,使用
Texture
widget来显示外部纹理。通过传递纹理ID给Texture
widget,你可以在Flutter UI中嵌入并显示GL渲染的内容。 -
同步与资源管理:确保GL渲染和Flutter UI之间的同步,以及正确管理纹理资源,避免内存泄漏和渲染错误。
请注意,具体实现细节可能因HarmonyOS版本和Flutter引擎的不同而有所变化。务必参考最新的HarmonyOS和Flutter官方文档。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html