Вот захотел что бы мое приложение загружалось на весь экран iPad и тут начались странности. После использования "Upgrade current target to iPad…" все работает, но окно задается на 1216 к 1568. Погуглил, но что-то нет такого прикола больше. С чем это может быть связанно?
...
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
[context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:(CAEAGLLayer*)self.layer];
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, viewRenderbuffer);
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
if (USE_DEPTH_BUFFER)
{
glGenRenderbuffersOES(1, &depthRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer);
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, backingWidth, backingHeight);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer);
}
...
glGetRenderbufferParameterivOES задает эти параметры.
А какой размер View в xib?
MainWindow-iPad.xib какой создал "Upgrade current target to iPad…" ... вот как к нему добраться? Интерфейс билдер его не открывает, а в виде кода не нашел зацепки. Да... кстати...
CGRect screenBounds = [[UIScreen mainScreen] bounds]; (0,0,768,1024)
Дает адекватное разрешение в отличие от glGetRenderbufferParameterivOES... он же берет с xib вроде?... где же тогда мой ляп? О.о
<reference key="NSNextResponder" ref="380026005"/>
<int key="NSvFlags">1298</int>
<string key="NSFrameSize">{768, 1024}</string>
<reference key="NSSuperview" ref="380026005"/>
NVS
> Интерфейс билдер его не открывает
Почему он его не открывает?
Какая OS? Проверь contentScaleFactor у вьюшки, на которой инициализируешь OpenGL
Mac OS X 10.6.4 Сдк последнее с сайта.
Вылетает, вначале вообще не реагировал никак... сейчас попробовал через сам интерфейс билдер. В деталях ошибки пишет полный бред...
Exception Name: NSInvalidArgumentException
Reason: *** -[NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: skin/dice_tex3skin.png)
User Info: (null)
Но в целом пошаманив добрался до окна... там нормальное разрешение.iPad 768, 1024 iPhone 320,480
Вот вся структура вьюшки
unsigned int userInteractionDisabled:1;
unsigned int implementsDrawRect:1;
unsigned int implementsDidScroll:1;
unsigned int implementsMouseTracking:1;
unsigned int hasBackgroundColor:1;
unsigned int isOpaque:1;
unsigned int becomeFirstResponderWhenCapable:1;
unsigned int interceptMouseEvent:1;
unsigned int deallocating:1;
unsigned int debugFlash:1;
unsigned int debugSkippedSetNeedsDisplay:1;
unsigned int debugScheduledDisplayIsRequired:1;
unsigned int isInAWindow:1;
unsigned int isAncestorOfFirstResponder:1;
unsigned int dontAutoresizeSubviews:1;
unsigned int autoresizeMask:6;
unsigned int patternBackground:1;
unsigned int fixedBackgroundPattern:1;
unsigned int dontAnimate:1;
unsigned int superLayerIsView:1;
unsigned int layerKitPatternDrawing:1;
unsigned int multipleTouchEnabled:1;
unsigned int exclusiveTouch:1;
unsigned int hasViewController:1;
unsigned int needsDidAppearOrDisappear:1;
unsigned int gesturesEnabled:1;
unsigned int capturesDescendantTouches:1;
unsigned int deliversTouchesForGesturesToSuperview:1;
unsigned int chargeEnabled:1;
unsigned int skipsSubviewEnumeration:1;
unsigned int needsDisplayOnBoundsChange:1;
unsigned int hasTiledLayer:1;
Указанный contentScaleFactor что-то не наблюдается.
И еще... интереса ради создал новый проект... тем же методом сделал xib для iPad и оно вообще не запускается для iPad. И уже совсем от делать нечего сделал подобное на скаченном проекте, а вот там пошло все отлично. Странно. Сейчас вглядываюсь в свой и чужой проект... все тоже самое.
NVS
немного уточню коммент Sergio. На размер OpenGL surface'а contentScaleFactor не влияет. Нужно использовать eglLayer.contentsScale. Правда это к iPad отношения не имеет, а применяется на iPhone4 с его дабл-скрином (http://www.iphonedevsdk.com/forum/iphone-sdk-development/51548-ho… -iphone4.html)
Кстати, твой EGLView скорее всего создается не из MainWindow-iPad.xib. Должны быть еще и другие xib'ы, соответствующие ViewController'у, м?
Есть только MainWindow.xib и MainWindow-iPad.xib... оба открываются билдером с ошибкой. Может именно в ошибке дело? Суть такая что была pngшка... в ходе дела нужно было ее изменить, название менять не хотел, просто заменил в папке рисунок на другой с таким же именем. Но назначать ключ путем к этому рисунку О.о есть предположение что этот эррор вообще имеет ввиду?
А откуда вообще ogl берет эти числа? Они не случайные.
П.С. Хм... нет... вроде ошибка не особо влияет... игнорирую ее и спокойно могу работать с элементами... да и не запустилось бы вообще если бы ошибка была виной.
Итого... пересобрал весь проект заново, вручную создал все xib и настроил связи. И все пошло. О.о
Спасибо за советы :) (ушел за пивом)
Тема в архиве.