2010-10-24 23 views
2

Je veux juste savoir comment Adobe rend Photoshop multiplateforme? Je sais que Photoshop est complètement écrit en C++, mais qu'en est-il de l'interface graphique? Adobe utilise-t-il des toolkits d'interface graphique?Comment Adobe a-t-il rendu Photoshop multiplateforme?

+0

Je ne suis pas tout à fait sûr d'être honnête, mais si ça aide, ça vaut le coup de chercher [Qt framework Nokia] (http://qt.nokia.com/products/). Je l'ai vu utilisé dans plusieurs applications graphiques multi-plateforme, comme [Nuke] (http://www.thefoundry.co.uk/products/nuke/). (Je ne dirais pas Photoshop utilise Qt, Adobe pourrait rouler les siens) –

Répondre

4

Pour tout projet multiplateforme nativement compilé, la solution consiste généralement à avoir de petites portions du code appelées «wrappers» écrites exclusivement pour des plates-formes spécifiques. Ces wrappers font tout le dialogue directement à la plate-forme. Cela permet de créer une application comme Photoshop multiplateforme, mais il ne s'agirait pas nécessairement d'une plate-forme sur laquelle Adobe n'a pas écrit de wrappers.

+0

oui, vous avez raison, je comprends maintenant, et j'ai trouvé ici un exemple de "fonction Wrapper" http://en.wikipedia.org/ wiki/Wrapper_function mais je pense que la fonction Wrapper est une solution très longue et difficile pour faire du logiciel multi-plateforme! Merci Shmoopty =) – Freeseif

1

L'écriture d'un logiciel multiplateforme est fastidieuse mais voici les règles simples.

En règle générale, vous devez travailler avec une abstraction de l'OS/environnement sous-jacent, de sorte que votre code dépend de cette abstraction au lieu de l'OS lui-même. C'est ce qu'on appelle un modèle de pont. Il est important de comprendre plus de fonctionnalités que vous ajoutez au pont entre votre programme et le système d'exploitation, plus il sera difficile de porter le logiciel. Dans le cas d'Adobe, ils utilisent une partie relativement petite du système d'exploitation (petit pont) car ils ont leur propre interface utilisateur et le traitement de texte, ils ont juste besoin de saisir la souris/clavier et de dessiner dans une fenêtre.

+0

C'est pourquoi il est très important d'isoler la logique du modèle et de la vue. Je suis sûr que la majorité de leur logique de fonctionnement est construite sur leur propre API C++ interne et les points de terminaison de leur boîte noire de logique sont liés à des classes GUI spécifiques au système d'exploitation. –