Langue:
English •
Brazilian •
Chinese •
Deutsch •
Español •
Esperanto •
Français •
Magyar
Translate this page
Introduction aux bindings Python
Contents |
Introduction
Les bindings Python CS et CEL sont générés par l'outil SWIG. Ceci permet d'envelopper la plupart des fonctionnalités, et de fournir un accès pythonique aux deux bibliothèqyes CS et CEL et à leur plugins. Il est utile d'en connaître quelques détails avant de se plonger dans la programmation, notamment parce que la documentation C++, actuellement plus fournie, peut être ré-utilisée.
Modules disponibles
Les modules suivants sont disponibles dans différents dépôts, et peuvent être utilisés tous ensembles.
- cspace : le principal module de Crystal Space, contient tous les objets CS.
- pycscegui : binding pour le connecteur cs-cegui. Il se trouve dans le module cspace depuis la version 1.3.
- blcelc : le principal module de CEL.
- pycel : module de haut niveau spécifique à la couche comportementale Python.
- pycsextra : bindings pour le dépôt csextra.
- pycsexternal : bindings pour le dépôt csexternal.
- cscallback : Classes de base pour la création de classes de callback pour CS (dans csexternal). Voir Using callback interfaces from python (eng).
- celcallback : Classes de base pour la création de classes de callback pour CEL (dans csexternal). Voir Using callback interfaces from python (eng).
Principales utilisations de Python avec Crystal Space
Voici plusieurs façons d'utiliser Python dans le framework de Crystal Space, et les principales seront expliquées ici.
Application en Python pur et CS seul
Ceci implique de créer une application pouvant être entièrement lancée depuis l'interpréteur Python. Plusieurs tutoriels inclus avec Crystal Space peuvent vous aider à le faire.
Application en Python pur et duo CS + CEL
Similaire au précédent, mais encore légèrement expérimental (la réplique actuelle de CELstart en Python n'est pas encore tout à fait au point). Ce n'est pas encore recommandé, à moins de vraiment savoir ce que vous faites.
Embarqué dans une application CS à travers cspython
Une option pour les applications en C++ qui n'ont besoin que de quelques sous-systèmes extensibles via Python. Assurément plus complexe qu'un unique Python ou qu'une application Python embarquée dans CELstart, requiert par ailleurs de bonnes connaissances tant en Python qu'en C++.
Embarqué dans une application CELstart à travers la couche comportementale Python
CELstart est un runtime (environnement d'exécution) contenant (ou pouvant contenir) la totalité des bibliothèques CS et CEL. Ceci permet de créer des applications entières sans aucune recompilation. Si vous ne savez pas ce qu'est CELstart, peut-être voudriez-vous jetez un oeil à sa description avant de continuer cette lecture.
C'est la façon la plus simple de commencer, même si pas forcément la plus puissante pour créer des applications. Elle est particulièrement adaptée aux gens qui débutent à la fois avec Python et avec Crystal Space, car riche d'enseignement.
Documentation
Crystal Space et CEL sont tous deux des bibliothèques étoffées, dôtées de nombreuses fonctionnalités et d'abstraction via des bibliothèques tierces. Vous pouvez passer un peu de temps à vous familiariser avec leurs manuels dédiés. Notez aussi que la documentation relative à l'API Python n'est pas encore parfaite, et n'explique pas précisément comment utiliser les différentes parties de la bibliothèque Python. C'est en cours de réalisation, mais vous devrez être à la fois familier avec le C++, et les éléments suivants :
- Les paramètres de sorties de fonction sont convertis en paramètres de retour. Python ne prenant pas en charge les références et les pointeurs, les paramètres sont donc naturellement retournés.
- Par exemple, la fonction virtual void iBillboard::GetImageSize(int &w, int &h) devrait devenir (w,h) = iBillboard::GetImageSize()
- La plupart des interfaces et des classes devrait être enveloppée, mais certaines non, et devront donc être ajoutées aux bindings.
- En général, les callbacks autres que iEventHandler ne fonctionnent pas; ce point est en cours de développement.
- Les types csString peuvent toujours être gérés comme des strings Python.
- La plupart des classes/interfaces de listes et d'itérateurs peuvent être prises en charge en tant que dictionnaires ou listes Python, mais pas que vous puissiez utiliser des dictionnaires ou des listes à la place des classes CS.
- CEL offre un support spécial de Python, via les comportements contenus dans la couche comportementale Python. Vous pouvez consulter le manuel CEL pour plus d'information à ce sujet. En fait, si vous utilisez CELstart, vous devriez commencer par consulter cette information.
Retour vers PyCrystal
