纹理小部件渲染 OpenGL 示例
Posted
技术标签:
【中文标题】纹理小部件渲染 OpenGL 示例【英文标题】:Texture widgets render OpenGL example 【发布时间】:2018-09-09 14:07:44 【问题描述】:我的 Flutter 应用需要显示 3d 模型并允许用户旋转它。我通过本机视图(ViewController & Activity)和用于渲染的 C++ 代码实现了这一点,下一步我尝试使用Texture 小部件来删除本机视图并仅使用 Flutter。我设法通过FlutterTexture 在ios 上显示OpenGL 渲染,但不明白如何在android 上实现。你能举出一些例子吗?如何将 OpenGL 与 SurfaceTexture 一起使用并将其连接到 Texture 小部件?
【问题讨论】:
这不是一个完整的 OpenGL 示例,但 Flutter 的集成测试之一包括使用 SurfaceTexture:github.com/flutter/flutter/blob/… 【参考方案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);
【讨论】:
我根据你的成功构建了一个示例。它起作用了,但我在用 glTexImage2D 渲染到纹理时感到很挣扎。你能看看吗? ***.com/questions/58531692/…以上是关于纹理小部件渲染 OpenGL 示例的主要内容,如果未能解决你的问题,请参考以下文章
在 gtkglext 小部件中渲染文本 - 从 glut 到 pango