我有一个使用OpenGL ES 3.0的应用程序,使用天空球体实现播放360个视频。我想使用OpenGL ES 2.0来支持更多设备。
在ViewController.swift中,我在方法setupContext()中创建了EAGLContext,它与.OpenGLES3一起使用,但是当我尝试使用.OpenGLES2时,我只看到黑屏。没有错误消息,我无法辨别OpenGL ES 2.0中不支持哪些API函数。
context = EAGLContext(API: .OpenGLES3)
EAGLContext.setCurrentContext(context)
如何使用OpenGL ES 2.0使用天空球显示360个视频?主要实现在Skysphere.swift中。感谢。
答案 0 :(得分:0)
问题在于OpenGL 3会自动推断出像素的宽度和高度。要使用OpenGL 2,我需要定义像素缓冲区属性kCVPixelBufferWidthKey和kCVPixelBufferHeightKey。我用修复程序更新了测试仓库。
let pixelBufferAttributes = [kCVPixelBufferPixelFormatTypeKey as String : NSNumber(unsignedInt: kCVPixelFormatType_32BGRA),
kCVPixelBufferWidthKey as String : 1024,
kCVPixelBufferHeightKey as String : 512]