Рисование в контексте


Приложения для Iphone, рисование в контексте

Далее очищаем фон, выделяя его тем же самым оттенком серого, что и в версии Quartz рассматриваемого здесь приложения.

После этого нам нужно задать средствами библиотеки OpenGL цвет рисования, расчленив объект типа UlColor таким образом, чтобы извлечь из него отдельные составляющие цвета RGB. Правда, нам не нужно особенно задумываться о цветовой модели, применяемой в объекте типа UlColor, поскольку мы воспользовались служебными методами данного класса. Благодаря этому мы можем без всякого риска предположить, что в данном случае будет использоваться цветовое пространство RGBA.


Далее мы запрещаем OpenGL ES накладывать текстуры.

Любой код, который начинает выполняться после вызова данной функции и до вызова функции glEnable (GL TEXTURE 2D), будет рисовать объекты без текстуры, что нам, собственно, и требуется. Если бы мы разрешили наложение текстур, то цвет, который мы только что задали, не проявился бы вообще.


Для того чтобы нарисовать линию, нам потребуются две вершины, а это означает, что нам нужен массив, состоящий из четырех элементов. Как пояснялось ранее, точка в двухмерном пространстве обозначается двумя координатами: х и у. В библиотеке Quartz для хранения этих координат мы пользовались структурой CGPoint.


Ради большей ясности уточним, что процесс рисования в OpenGL ES состоит из трех этапов.

1. Рисование в контексте.

2. Визуализация контекста в буфере по завершении рисования.

3. Представление буфера визуализации, которое фактически заключается в отображении пикселей на экране.

Как видите, рассматриваемый здесь пример рисования линии средствами OpenGL оказывается значительно длиннее.

Отличия между библиотеками Quartz 2D и OpenGL ES становятся еще более разительными при рассмотрении процесса рисования эллипса, библиотеке OpenGL ES вообще ничего неизвестно о том, как рисовать эллипс. В библиотеке OpenGL, старшей предшественнице OpenGL ES, имеется целый ряд служебных функций для формирования наиболее распространенных двух и трехмерных форм, но эти функции обладают рядом функциональных возможностей, которые были исключены из OpenGL ES с целью упростить эту библиотеку и сделать ее более пригодной для программирования таких мобильных устройств, как iPhone. В итоге намного больше ответственности возлагается на долю самого разработчика приложений.


  • Дата: 15-01-2015, 22:16

Предыдущие статьи сайта:

Понравилась статья? Ставь лайки, рассказывай друзьям!



Отзывы о статье: Рисование в контексте

Технологии, секреты и фишки Apple: Iphone, iPad, iPod