纹理小部件渲染OpenGL示例

Ger*_*kin 5 android opengl-es flutter

我的Flutter应用需要显示3D模型并允许用户旋转它。我通过本机视图(ViewController和Activity)和用于渲染的C ++代码实现了此步骤,下一步,我尝试使用Texture小部件删除本机视图并仅使用Flutter。我设法通过FlutterTexture在iOS上显示OpenGL渲染,但不了解如何在Android上实现。您能否显示任何示例如何将OpenGL与SurfaceTexture一起使用并将其连接到Texture小部件?

Ger*_*kin 5

eglCreateWindowSurface在配置OpenGL堆栈时,应该将SurfaceTexture传递给。

我花了一段时间构建了示例项目和文章: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);
}
Run Code Online (Sandbox Code Playgroud)