【发布时间】:2016-04-23 16:33:22
【问题描述】:
情况
我有一个来自 iOS 原生库的视频流。我正在尝试使用glTexImage2D 和glTexSubImage2D 在iPhoneOSGameView 中显示图像以进行更新。我可以更新图像的子区域,我收到一个结构,告诉我必须在 gpu 上更新哪个矩形。
问题
帧率很低。在对 OpenGLES 和应用程序代码进行大量分析之后,我得出结论,应用程序通常正在等待纹理上传。慢函数是glClear,但我怀疑里面有一个内在的glFlush。
我的问题
我看到一些人在谈论glMapBuffer,这可以让我将视频直接流式传输到用户空间中的纹理。我查看了像素缓冲区对象,但它们需要 OpenGLES 3.0 或 2.0 中的扩展。有没有一种有效的方法(用于移动设备)以最少的内存复制流式传输纹理或从不同线程传输纹理的方法?
其他信息
我在 C# Xamarin 中工作,并在不同的设备上进行测试,例如 iPod Touch Gen3、iPad Air 2 和 iPad Pro 12"。
【问题讨论】:
标签: c# ios opengl-es xamarin.ios