2016-05-27 3 views
0

私が使用しているライブラリがOpenGLビューを作成し、メモリ警告を発生させる問題をデバッグしています。OpenGLビューでのCGAffineTransformとビューサイズへの影響

私が気づいたことの1つは、ビューをウィンドウサイズの一部に設定するとうまく動作することです。 XCodesインターフェイスデバッガを介してビューを介してデバッグすると、ビューの境界が親ビューの境界を超えてうまく行くことがわかります。問題のビューを印刷するとき、私はこれを参照してください。

<RenderView: 0x140a61d10; frame = (5 0; 1019 728); transform = [1019, 0, 0, 728, 0, 0]; layer = <CALayer: 0x140ad0a40>> 

を私はこれに慣れていないけど、CGAffineTransform docsを読んでから、設定されている変数は、スケールSXに対応して「A」と「D」であることをようで、 sy。

私の質問は、この変換は実際に1019 * 1019 x 728 * 728のビューを表示していますか?これは疑わしいと思われますか?おそらくライブラリのバグ、または私の理解が間違っていますか?

Xcode 7を複数のデバイスで使用していますが、現在9.3.1を実行しているiPad Pro 9.7でテストしています。

答えて

0

ここどこ2×3 CGAffineTransformとGLKMatrix4の間で何が起こっ上の明確化...あなたのビューまたは資産寸法と向き(または縦横)の変換を優先または実際を表し

あなたCGAffineTransform GLKMatrix4(に変換さですか、頂点シェーダに位置に対する倍数であるMAT4)、thusly:

CGAffineTransform preferredTransform= [videoTrack preferredTransform]; 

GLfloat preferredTransformMatrix[] = { 
preferredTransform.a, preferredTransform.b, preferredTransform.tx, 0.0, 
preferredTransform.c, preferredTransform.d, preferredTransform.ty, 0.0, 
0.0,     0.0,     1.0,     0.0, 
0.0,     0.0,     0.0,     1.0 
}; 

これは、4×4行列のための2×3の行列の各値の正しい位置を示す一例です。

関連する問題