我發現,顯然需要設置正確調整視圖視圖中的「規模」的方法(如視圖是基於位置而像素出於某種奇怪的原因,這些職位不會隨着決議的增加而重新調整等)。這是我真正能找到的唯一的東西。我已經注意到在GLView的init方法中包含下面的調用檢查並在下面設置...但我仍然想知道是否有更好的方法。我不會手動調整所有的東西的大小乘以高度和寬度的規模屬性?
- (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;
}
嗯,我並沒有特別需要這樣(它絕對可以縮放它,但我使用glViewport(0,0,width * [[UIScreen mainScreen] scale],height * [ [UIScreen mainScreen] scale]);編輯視口以縮放。我不喜歡這個想法,我必須手動乘以一個比例,但是會做什麼。我只是在更深入地瞭解OpenGL ES 1.1。我知道我在ES 2.0中從來不用擔心這個問題。所以不要再擔心了。 – TheCodingArt 2013-03-06 17:41:52