Различаются drawImage() на iPad и iPhone?

У меня есть glView, который 51x51px, как это.

...
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) в EAGL-контекст glView следующим образом:

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.

glView на iPhone

glView на iPad

На iPhone черная часть (то есть изображение, которое я рисую) внутри красного прямоугольника должна полностью заполнить прямоугольник, такой как на iPad... а не только нижняя левая четверть.

Кто-нибудь знает, в чем здесь проблема?

С уважением Крис

я на iOS 9.2.1 на обоих устройствах

0 ответов

Другие вопросы по тегам