Как избежать обрезки дисплея в OpenGL на iPhone - PullRequest
0 голосов
/ 03 мая 2011

Это был долгосрочный вопрос, который мне нужен, чтобы решить ваш коллективный гений.Я беру изображения с камеры и выводю их в opengl.Запись изображений через выключенный экран выводит FBO правильно.

Однако то, что я вывожу на экран, всегда обрезается / увеличивается в правом верхнем углу.(Например, если я сделаю фотографию окна с четырьмя панелями, изображение, сохраненное из буфера за пределами экрана, покажет все окно, но то, что отображается на экране, это только верхняя левая панель.)

Я попытался изменить glviewport, а также умножить свои данные вершин, но безрезультатно.Единственная вещь, которая, кажется, работает - это установить contentScaleFactor для eagllayer на значение 1,4 или выше.По сути, этот хак делает увеличение FBO в 1,4 раза, что не очень хорошо для производительности.Любые идеи, как я могу правильно выводить на экран, не используя этот хак?Это должно быть что-то очень простое, чего я просто не нашел.Спасибо всем.

1 Ответ

0 голосов
/ 04 мая 2011

Забавно, как простая публикация в stackoverflow часто решает мои проблемы. Оказывается, ширина и высота подложки были установлены неправильно из-за того, что glGenFramebuffers вызывался дважды. Исправление, которое позволило glviewport (установить ширину и высоту отображения) работать.

...