Как изменить размер холста в OpenGL? glClearColor рисует только маленькую коробочку - PullRequest
1 голос
/ 17 января 2011

Когда я запускаю следующую команду open gl, она только красит нижнюю левую часть экрана ipad красным цветом.

glClearColor (255.0f, 0.0f, 0.0f, 0.0f);

alt text

Как мне сделать так, чтобы весь экран был закрашен красным?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 17 января 2011

Возможно, вы не установили кадровый буфер на правильный размер. Если вы используете iPhone 4, наиболее распространенной ошибкой является использование указанных размеров представления, которые совпадают с предыдущими моделями, даже несмотря на то, что iPhone 4 имеет вдвое большее разрешение.

Вот как я делаю это в своем приложении (Важное предупреждение: для меня это все чёрная магия, так что возьмите это с крошкой соли, и, пожалуйста, не просите меня объяснить это):

- (BOOL)resizeFromLayer:(CAEAGLLayer *)layer {
    glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorRenderbuffer);
    [context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:layer];
    glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &vWidth);
    glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &vHeight);

    glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderBuffer);
    glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, vWidth, vHeight);

    if (glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES) != GL_FRAMEBUFFER_COMPLETE_OES)
    {
        NSLog(@"Failed to make complete framebuffer object %x", glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES));
        return NO;
    }

    return YES;
}
1 голос
/ 17 января 2011

Не работает ли glViewport()?

0 голосов
/ 17 января 2011

Я на iPad, используя пример кода, созданного для iPhone

Возможно ли, что размер окна в коде жестко закодирован для меньших размеров экрана iPhone?

Редактировать:
Это сообщение на форуме idevgames похоже на ту же проблему с кодом (не OpenGL), вызванную:

  1. Начиная сПроект iPhone в xcode
  2. Неправильные настройки в файле .xib

Два решения, которые я не тестировал:
1)

UIWindowизменение размера может быть достигнуто с помощью ручного преобразования файлов .xib в версию iPad с помощью Interface Builder.Это упоминается в Примечаниях к выпуску iOS 4.0 в разделе Известные проблемы-> Xcode.
Это поможет мне.

2)

Сэкономьте себе массу хлопот, просто создайте новое приложение iPad OGLES в xcode, все уже будет настроено и работает для вас, перетащите файлыиз вашего старого проекта xcode в новый обновите xib, указав правильное имя приложения и все готово.Я должен был начать целый новый проект сегодня и сделать это просто, чтобы получить MF # !! FS # $ *!Подписание кода для работы.

...