相关疑难解决方法(0)

强制OpenGL Buffer使用GL 1.0或1.1?

我一直致力于一个项目,用户可以在其中与a交互以GLSurfaceView在屏幕上绘制形状.这一切都很好,花花公子,但现在我尝试做两件事:1)创建他们的绘图的缩略图,2)保存他们的绘图.重要的是要注意用户可以绘制比屏幕大的图像.

就我的研究表明,最好使用a Bitmap(可以是1)渲染到Canvas缩略图,2)保存到文件系统,这实现了我的两个目标).

最初,我试图RendererGLSurfaceView通道中读取glReadPixels,但事实证明我无法从中获取屏幕外数据.相反,我选择做一个离屏缓冲区来生成图像的渲染,可以将其转换为Bitmap.

我发现了一个可爱的帖子,它提供了一个名为的类的代码PixelBuffer,我现在正在使用它.(我做了一些调整,但无论是否有调整,我都会遇到所有问题.)

现在,当使用getBitmap()代码时(我将在PixelBuffer论坛帖子不可读的情况下发布),我得到了一堆called unimplemented OpenGL ES API.起初这让我很奇怪,所以我做了一些调查.事实证明,由于某种原因,PixelBuffer该类使用OpenGL ES 2.0,而GLSurfaceView使用的是OpenGL ES 1.1.我正在使用的设备(Galaxy Nexus)不支持2.0.(而且,我想支持最大范围的设备.)

所以,这是我的问题:如何强制我的PixelBuffer类使用OpenGL ES 1.1 API?我已经在我的清单中添加了以下内容:

<uses-feature android:glEsVersion="0x00010001" />
Run Code Online (Sandbox Code Playgroud)

另外,我试图设置版本使用int[] version = new int[] { 1, 1 };,但无济于事.

PixelBuffer我正在使用的代码:链接.调用的问题Renderer在第91行.版本代码在第39行开始.

这是我用来创建的代码PixelBuffer,从GLSurfaceView对象调用:

    setEGLConfigChooser(8, 8, 8, 8, 0, 0);
    mRenderer = …
Run Code Online (Sandbox Code Playgroud)

java android opengl-es

5
推荐指数
1
解决办法
2216
查看次数

如何在不显示OpenGL的情况下使用它?

对于应用程序,即使当前未显示该应用程序,我也希望在后台渲染事物。官方文档写过通过GLSurfaceView打开GLcontext。对于不显示图形并渲染到另一个目标中,似乎不是一个真正的解决方案。

那么问题是如何在Android中创建没有GLSurfaceView的GL上下文?

用例:录制视频并将当前时间作为文本直接添加到视频中。为此,基于CPU的图像处理只会减慢实时执行的速度。至少在录制时还应该显示视频。OpenGL可以将所有内容简单地渲染到Framebuffer / Renderbuffer中。

android opengl-es background-process

1
推荐指数
1
解决办法
2249
查看次数

标签 统计

android ×2

opengl-es ×2

background-process ×1

java ×1