翻转CAEAGLLayer以在OpenGL ES 2中进行演示的最佳方法

时间:2011-02-11 21:01:21

标签: iphone ios opengl-es avfoundation

与iOS相比,打开GL ES坐标在y轴上翻转。通过glreadpixels(到视频)保存数据给了我正确的转换,但在UIView中显示y轴被翻转。将其翻转以进行演示的最佳方法是什么?

到目前为止,我看到了三种方式:

1)在opengl中渲染两次,将非翻转版本发送到glreadpixels,将翻转版本发送到CAEAGLLayer(presentRenderbuffer)。

2)翻转opengl中的像素,使其显示正常;一旦我通过glreadpixels读取它们,移位,然后将其保存到文件。

3)翻转opengl中的像素,使其显示正常;对视频本身应用某种类型的变换(使其在播放时翻转)。

我不确定这些是否是正确的道路。寻找最高效的道路。

2 个答案:

答案 0 :(得分:4)

只需将变换应用于UIView即可将其翻转。例如:

view.transform = CGAffineTransformMakeScale(1.0, -1.0);

答案 1 :(得分:0)

看起来最好的方法是在opengl中使用翻转顶点。