我有一个Android应用程序,使用OpenGL ES显示VGA(640x480)帧。应用程序从电影文件中读取每个帧并相应地更新纹理。
我的问题是,它耗时差不多30毫秒。使用OpenGL绘制每个帧。使用Canvas / drawBitmap的类似测试在同一设备上大约6毫秒。
我正在关注VLC Media Player正在使用的相同OpenGL调用,因此我假设这些调用已针对此目的进行了优化。
我只是想听听你的想法和想法吗?
答案 0 :(得分:0)
您使用的是哪些电话? 确保你只创建一次纹理(glTexImage2D),然后用新缓冲区更新它。你也可以禁用其他gl东西,如深度缓冲,模板,积累,灯光等...... 如果这些都没有帮助,请检查opengl实现。确保使用硬件(gpu)
答案 1 :(得分:0)
你确定位图是用RBG_565加载的吗?试试这个:
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
bm = BitmapFactory.decodeByteArray(temp, 0, temp.length,opt);
让我知道!