1

このような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)
...

後で、(AVpreviewlayer から受け取った) の中央部分をimage次のように 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のglView

iPadのglView

iPhoneでは、赤い四角形の内側の黒い部分(私が描いている画像)は、iPadのように四角形を完全に埋める必要があります...左下の四分の一だけではありません。

ここで何が問題なのか誰にも分かりますか?

よろしくクリス

ps.私は両方のデバイスで iOS 9.2.1 を使用しています

4

0 に答える 0