Мобильные платформыФорумОбщее

Разрешение экрана iPad

#0
17:31, 9 ноя 2010

Вот захотел что бы мое приложение загружалось на весь экран iPad и тут начались странности. После использования "Upgrade current target to iPad…" все работает, но окно задается на 1216 к 1568. Погуглил, но что-то нет такого прикола больше. С чем это может быть связанно?

#1
17:38, 9 ноя 2010

...   
    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 задает эти параметры.

#2
21:32, 9 ноя 2010

А какой размер View в xib?

#3
10:39, 10 ноя 2010

MainWindow-iPad.xib какой создал "Upgrade current target to iPad…" ... вот как к нему добраться? Интерфейс билдер его не открывает, а в виде кода не нашел зацепки. Да... кстати...

CGRect screenBounds = [[UIScreen mainScreen] bounds]; (0,0,768,1024)

Дает адекватное разрешение в отличие от glGetRenderbufferParameterivOES... он же берет с xib вроде?... где же тогда мой ляп? О.о

#4
11:19, 10 ноя 2010

<reference key="NSNextResponder" ref="380026005"/>
            <int key="NSvFlags">1298</int>
            <string key="NSFrameSize">{768, 1024}</string>
            <reference key="NSSuperview" ref="380026005"/>
           

Кусок из кода MainWindow-iPad.xib

#5
11:40, 10 ноя 2010

NVS
> Интерфейс билдер его не открывает
Почему он его не открывает?

Какая OS? Проверь contentScaleFactor у вьюшки, на которой инициализируешь OpenGL

#6
12:22, 10 ноя 2010

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. И уже совсем от делать нечего сделал подобное на скаченном проекте, а вот там пошло все отлично. Странно. Сейчас вглядываюсь в свой и чужой проект... все тоже самое.

#7
12:29, 10 ноя 2010

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'у, м?

#8
12:52, 10 ноя 2010

Есть только MainWindow.xib и MainWindow-iPad.xib... оба открываются билдером с ошибкой. Может именно в ошибке дело? Суть такая что была pngшка... в ходе дела нужно было ее изменить, название менять не хотел, просто заменил в папке рисунок на другой с таким же именем. Но назначать ключ путем к этому рисунку О.о есть предположение что этот эррор вообще имеет ввиду?

А откуда вообще ogl берет эти числа? Они не случайные.

П.С. Хм... нет... вроде ошибка не особо влияет... игнорирую ее и спокойно могу работать с элементами... да и не запустилось бы вообще если бы ошибка была виной.

#9
17:52, 10 ноя 2010

Итого... пересобрал весь проект заново, вручную создал все xib и настроил связи. И все пошло. О.о
Спасибо за советы :) (ушел за пивом)

Мобильные платформыФорумОбщее

Тема в архиве.