【问题标题】:Texture widgets render OpenGL example纹理小部件渲染 OpenGL 示例
【发布时间】:2018-09-09 14:07:44
【问题描述】:
我的 Flutter 应用需要显示 3d 模型并允许用户旋转它。我通过本机视图(ViewController & Activity)和用于渲染的 C++ 代码实现了这一点,下一步我尝试使用Texture 小部件来删除本机视图并仅使用 Flutter。我设法通过FlutterTexture 在iOS 上显示OpenGL 渲染,但不明白如何在Android 上实现。你能举出一些例子吗?如何将 OpenGL 与 SurfaceTexture 一起使用并将其连接到 Texture 小部件?
【问题讨论】:
标签:
android
opengl-es
flutter
【解决方案1】:
在配置 OpenGL 堆栈时,应将 SurfaceTexture 传递给 eglCreateWindowSurface。
我花了一段时间构建了示例项目和文章:
https://github.com/mogol/opengl_texture_widget_example
https://medium.com/@germansaprykin/opengl-with-texture-widget-f919743d25d9
private void initGL() {
egl = (EGL10) EGLContext.getEGL();
eglDisplay = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
int[] version = new int[2];
egl.eglInitialize(eglDisplay, version);
EGLConfig eglConfig = chooseEglConfig();
eglContext = createContext(egl, eglDisplay, eglConfig);
eglSurface = egl.eglCreateWindowSurface(eglDisplay, eglConfig, texture, null);
egl.eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext);
}