Помогите понять шаблон проекта Xcode 4 для OpenGL - PullRequest
2 голосов
/ 30 мая 2011

В Xcode 4 шаблон / шаблон OpenGL ES отличается от предыдущих версий. (Все учебные пособия, которые я читал и смотрел, используют Xcode 3.X). Когда я начинаю новый проект, ES1renderer или ES2renderer отсутствуют. Весь код, который обычно находится в этих классах, находится в ViewContoller. У меня вопрос: должен ли я создавать эти классы самостоятельно или просто поместить свой код в ViewController? (Я новичок в OpenGL ES - и в разработке для iPhone - так что будьте осторожны).

1 Ответ

4 голосов
/ 31 мая 2011

Старый шаблон аккуратно разделил код ES 1.1 из кода 2.0.Это имеет смысл, потому что два API очень сильно отличаются друг от друга.Тем не менее, редко, когда приложение доставки поддерживает оба варианта - обычно вы либо идете 1.1 и ограничиваете себя в некоторых визуальных аспектах, либо 2.0 и ограничиваете себя аппаратной поддержкой.2.0 доступен с iPhone 3GS и далее на всех iPad, но не на iPod Touch последнего поколения с наименьшей емкостью (т. Е. Тот, который перестал быть актуальным в сентябре 2010 года), так что есть люди, которые владели менее годачто вы будете исключать из пула потенциальных клиентов.

Новый шаблон устраняет эту проблему из (последнего) образца EAGLView.Вы должны передать ему подходящий контекст, и тогда он делает только нейтральные для контекста вещи.Логика ES 1.1 или 2.0 теперь находится в контроллере представления.Строки с 43 по 57 обеспечивают создание подходящего контекста для последней поддерживаемой версии GLES, ветки строки 187 зависят от используемого API.

CADisplayLink для синхронизации теперь также находится в контроллере представления.

Так что для библиотеки, шаблонного кода вы, вероятно, захотите что-то наподобие нового EAGLView, в котором не делается никаких предположений об API или о том, как вы добавите в него графику.С точки зрения того, как вы будете рисовать, вы, вероятно, просто захотите выбрать лошадь и внедрить либо ES1, либо ES2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...