2009-07-21 3 views

Répondre

4

Vous pouvez structurer votre code comme vous le souhaitez. Oui, les commandes OpenGL sont de style impératif procédural, mais vous pouvez créer vos propres abstractions, par exemple. style orienté objet sur eux. Vous pouvez donc avoir un objet cube, qui possède certaines propriétés, puis dessiner une méthode qui utilise des commandes OpenGL pour dessiner un cube avec ces propriétés. Par exemple, notre bibliothèque 2D construite sur OpenGL a des couches en tant qu'objets et ces couches forment une hiérarchie de couches où chaque couche est simplement responsable de dessiner elle-même et d'appliquer des transformations pour qu'elles s'appliquent à ses couches enfants. Ainsi, par exemple, nous pouvons construire facilement des formes complexes à partir de couches de formes simples (cercles, rectangles, polygones convexes, images ...) et en faisant tourner un calque parent, les calques enfants tournent correctement en une forme complexe.

+0

Je vois ... c'est cool. Votre lib est fait par vous-même? Je pense que je vais devoir créer quelque chose de similaire à tout le système d'animation UIKit/core pour faire de belles choses. Mais je me demande si cela a du sens, car beaucoup d'abstraction est mauvaise pour la performance, n'est-ce pas? – Thanks

+0

Trop d'abstraction peut être mauvais pour la performance, mais il est peu probable que vous en fassiez trop. Et vous pouvez toujours optimiser plus tard. Nous avons fait notre propre bibliothèque parce que nous voulions avoir une bibliothèque identique, un style de programmation (assez fonctionnel) et des idiomes à ce que nous avons déjà dans Flash. Mais je recommande que vous commenciez avec, par exemple, Cocos2D pour iPhone si vous avez besoin d'une bibliothèque 2D ou par ex. Moteur Oolong ou moteur SIO2 si vous avez besoin de 3D. –

1

Vous pouvez faire des classes dans l'objectif c, mais il y a aussi un article intéressant avec le mélange de l'objectif c avec C++ pour gérer vos classes. C'est ce que j'utilise pour mon application OpenGLES.

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

+0

Je me suis retrouvé avec C droite pour ma manipulation OpenGL ES. Je suis curieux d'ajouter C++ à Objective-C. Diriez-vous que cela rend la manipulation de la mémoire plus facile, plus difficile ou ne l'affecte pas du tout? – Nosredna

+0

si ce serait en dehors du cacao: certainement plus difficile. au moins je le crois. – Thanks

+0

Tout dépend de ce que vous savez déjà dans la mesure où plus facile/plus difficile va. Personnellement, j'ai beaucoup d'expérience en C++ donc pour moi c'était un million de fois plus facile car je trouve la manière objective de gérer les classes extrêmement horrible. Ce n'est pas forcément plus dur parce que c'est en dehors du cacao, encore une fois cela dépend de votre expérience. –

Questions connexes