Opengl es 我们可以用OpenGL GLES20 API渲染图像并在Android上的小部件中显示结果吗?

Opengl es 我们可以用OpenGL GLES20 API渲染图像并在Android上的小部件中显示结果吗?,opengl-es,android-widget,Opengl Es,Android Widget,我们的Android应用程序使用OpenGL呈现美丽的图像。 现在,我们想让桌面应用程序小部件重用相同的代码库。 我们不需要实时监控。 静态图片可以 不幸的是,不可能将OpenGL图形直接呈现给小部件。 小部件API受远程视图组件的限制 但是,如果我们能够将OpenGL图形渲染到屏幕外缓冲区,然后将其导出为图像,那该多好啊。然后我们可以创建一个ImageView并将图像添加到小部件中 我知道,在手边有视图的情况下,可以创建一个开放的GL曲面。 但在Android小部件的情况下,没有视图。 这是死

我们的Android应用程序使用OpenGL呈现美丽的图像。 现在,我们想让桌面应用程序小部件重用相同的代码库。 我们不需要实时监控。 静态图片可以

不幸的是,不可能将OpenGL图形直接呈现给小部件。 小部件API受远程视图组件的限制

但是,如果我们能够将OpenGL图形渲染到屏幕外缓冲区,然后将其导出为图像,那该多好啊。然后我们可以创建一个ImageView并将图像添加到小部件中

我知道,在手边有视图的情况下,可以创建一个开放的GL曲面。 但在Android小部件的情况下,没有视图。 这是死胡同吗

是否有一种方法可以创建无视图的屏幕外开放GL曲面? 我们可以用OpenGL渲染图像并在Android上的小部件中显示结果吗

[更新] 我们的应用程序完全使用GLES20 API呈现内容。 有一种解决方案适用于旧的GL10API库。但是它不适合我们的项目。

您可以在几乎所有情况下使用它来创建Opengl上下文

编辑(放一个小c示例egl+GLES2):

安卓上

setEGLContextClientVersion(2);
要启用GLES20。(但我还没有测试过自己)


注意:在linux上,通过cairo api,我使用FBO进行了屏幕外渲染(egl上下文)

谢谢!但是,egl只支持旧的GL10API。我们的应用程序完全由GLES20 API调用编程。对不起,忘了提这个。我想知道是否有类似的库可以使用GLES20进行渲染?@Pavel:你可以将GLES2 api与绑定(在linux上运行得很好),但在android下我可能错了…@Pavel:@Pavel:我的想法是,
egl
是DRI的魔法层,试图找到更好的,会让你远离上升的风。
arm-linux-androideabi-gcc hello.c -o hello -lEGL -lGLESv2 -lui
setEGLContextClientVersion(2);