ビューの「スケール」メソッドを見つけました。これは、ビューのサイズを適切に変更するために設定する必要があるようです(ビューはピクセルではなく位置ベースであり、奇妙な理由により、解像度を上げても位置のサイズは変更されません)。これは私が本当に見つけることができた唯一のものです。GLViewのinitメソッド内に次の呼び出しチェックと設定を含めることに注意しました...しかし、もっと良い方法があるかどうかまだ疑問に思っています。高さと幅にscaleプロパティを掛けて、すべてを手動でサイズ変更する必要はありませんか?
- (id)initWithFrame:(CGRect)frame
{
NSLog(@"frame: Origin: x:%f y:%f, Size: width:%f height:%f", frame.origin.x, frame.origin.y, frame.size.width, frame.size.height);
self = [super initWithFrame:frame];
if (self) {
**if([[UIScreen mainScreen] respondsToSelector: NSSelectorFromString(@"scale")])
{
if([self respondsToSelector: NSSelectorFromString(@"contentScaleFactor")])
{
[self setContentScaleFactor:[[UIScreen mainScreen] scale]];
NSLog(@"Scale factor: %f", [[UIScreen mainScreen] scale]);
}
}**
NSLog(@"frame: Origin: x:%f y:%f, Size: width:%f height:%f Scale factor: %f", frame.origin.x, frame.origin.y, frame.size.width, frame.size.height, self.contentScaleFactor);
CAEAGLLayer *eaglLayer = (CAEAGLLayer *)super.layer;
eaglLayer.opaque = YES; // set to indicate that you do not need Quartz to handle transparency. This is a performance benefit.
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
if (!context || ![EAGLContext setCurrentContext:context]) {
return nil;
}