Могу ли я по-прежнему заниматься объектно-ориентированным программированием при использовании OpenGL ES на iPhone OS? - PullRequest
1 голос
/ 21 июля 2009

Когда я программирую с OpenGL ES на iPhone OS, мне приходится использовать множество функций OpenGL. Это выглядит очень процедурно для меня. Интересно, смогу ли я создать класс с именем "куб", который нарисует куб, если будет вызван. Или весь код приложения должен быть в одной огромной области?

Ответы [ 2 ]

4 голосов
/ 21 июля 2009

Вы можете структурировать свой код так, как вам нравится. Да, команды OpenGL имеют процедурный императивный стиль, но вы можете создавать свои собственные абстракции, например, объектно-ориентированный стиль поверх них. Таким образом, у вас может быть объект куба с определенными свойствами, а затем метод рисования, использующий команды OpenGL для рисования куба с этими свойствами.

Например, наша 2D-библиотека, построенная поверх OpenGL, имеет слои в качестве объектов, и эти слои образуют иерархию слоев, где каждый слой просто отвечает за рисование самого себя и применение преобразований, так что они применяются к дочерним слоям. Таким образом, например, мы можем легко создавать сложные формы из простых слоев фигур (круги, прямоугольники, выпуклые многоугольники, изображения ...) и вращая родительский слой, дочерние слои вращаются правильно как одна сложная форма.

1 голос
/ 24 июля 2009

Вы можете создавать классы в цели c, но есть также интересная статья о смешивании цели c с c ++ для обработки ваших классов. Это то, что я использую для своего приложения OpenGLES.

http://mitchallen.com/iphone/archives/64

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