我有一个像这样的51x51px的glView。
...
glContext = EAGLContext(API: .OpenGLES2)
glView = GLKView()
glView.context = glContext
ciContext = CIContext(EAGLContext: glContext)
glView.layer.borderColor = UIColor.redColor().CGColor
glView.layer.borderWidth = 3
glView.translatesAutoresizingMaskIntoConstraints = false
widthConstraint = NSLayoutConstraint(item: glView, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 51)
loupeImageView.addConstraint(widthConstraint)
heightConstraint = NSLayoutConstraint(item: glView, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 51)
loupeImageView.addConstraint(heightConstraint)
...
稍后我将image
的中心部分(从AVpreviewlayer接收)绘制到glView的EAGL上下文中,如下所示:
ciContext.drawImage(image, inRect: CGRectMake(0, 0, 50, 50),
fromRect: CGRect(x: (image.extent.width/2)-(50/2), y: (image.extent.height / 2)-(50/2), width: source, height: source))
glView.display()
基本上代码可以工作,但完全相同的代码在iPad和iPhone5上表现不同。结果如下所示。红色边框矩形是glView。
在iPhone上,红色矩形内的黑色部分(我正在绘制的图像)应该完全填满像iPad上的矩形...而不仅仅是左下角的四分之一。
有人知道这里的问题是什么吗?
此致 克里斯
ps.我在两台设备的iOS 9.2.1上