PFen est une librairie C++ qui implémente la gestion de fenêtres en utilisant la SDL.
Le but de cette librairie est d'implémenter un gestionnaire de de fenêtre pour des applications multimédia (qui à parlé de jeu? :°) qui soit:
- portable (du moins qui fonctionne, sur tout OS ou la SDL fonctionne)
- simple d'utilisation
- extensible (via utilisation d'héritages et de la STL)
Pour le moment, seule des fonctions assez basiques sont implémentées:
- affichage/effaçage de fenêtres
- déplacement des fenêtres
- transparence (merci la SDL)
Création d'un projet utilisant PFen sous Code::Blocks:
- Créer un projet SDL (les 2 devraient fonctionner) et sans générer de source (ou alors, supprimez les après).
- Allez dans les propriétés du projet (pour plus de simplicité: clic droit sur le projet, puis, properties)
- Dans la fenêtre qui s'affiche, cliquez sur "Project's Build Options..." en bas à droite.
- Dans l'onglet "Linker settings" ajoutez PFen.dll
- Dans l'onglet "Search directories":
- dans le sous-onglet "Compiler" ajoutez le répertoire ou se situent les headers de PFen
- dans le sous-onglet "Linker" ajoutez le répertoire ou se situent les binaires de PFen
- Validez tout. ("project's build options" et "properties" donc)
- Dans le fichier principal de votre application ajoutez #include <pfen.h>
- Dans la fonction principale de votre programme (int main(int argc, char **argv par exemple) initialisez la se sous-système SDL_INIT_VIDEO au minimum.
- EDI: Code::blocks. C'est un environnement léger, open-source, portable, puissant, extensible (utilise jour sont très fréquentes (voir du côté des nightly builds)
- Compilateur: MinGW32 pour windows. Sous Linux, GCC devrait fonctionner sans souci, puisque MinGW est son portage pour windows.
- Librairie: SDLest nécessaire pour compiler ou exécuter une application faite avec PFen. (PFen est basée sur la SDL)
- Générateur de documentation: doxygen. Avec de simples commentaires, cet outil puissant génère un manuel. Plutôt pratique pour se concentrer plus sur le code, ou retrouver plus facilement ses marques sur une portions que l'on à pas modifiée depuis longtemps.
- Système de gestion de versions: subversion. Pour les utilisateurs de windows, il existe un client qui s'intègre à l'explorateur de fichiers: (probablement pour les autres OS aussi mais je ne les connais pas) tortoiseSVN.
Compilation et installation de la librairie pour Code::Blocks:
- Installez code::blocks. Si vous voulez utilisez les nightly builds (ce que je conseille) vous trouverez ici la marche à suivre.
- Une fois Code::Blocks installé, il suffit de configurer la variable globale ($sdl) afin qu'elle contienne les chemins vers les headers et les binaires de la SDL.
- Téléchargez les sources, en prenant le dépôt de votre choix. (pour le moment, il n'y à que trunk, qui est la version de travail)
- Ouvrez le fichier PFen.cbp avec Code::Blocks.
- Choisissez la cible (debug par défaut, mais une cible release plus optimisée est disponible).
- Lancez la compilation.
Contribuer
Il y a de nombreuses façon de contribuer à l'avancement de ce projet. Comme vous pouvez le voir, ce projet est jeune (je l'ai commencé environ 3 semaines avant de le mettre sur sourceforge), et ce site est encore plus jeune. Les façon d'aider que je peux voir sont:
- Suggérer des idées.
- Aider à améliorer le design de ce site (je n'ai vraiment pas de talents pour ce genre de choses, comme vous pouvez le voir)
- Tester la librairie, et décrire les problèmes
- Aider à documenter. (Il y a un wiki, mais il faut du temps pour qu'il commence à être utile, et ma priorité actuelle est de créer une base solide avant d'écrire des tutoriels, documentations de l'utilisateur ou exemples)
- Bien sûr, améliorer le code
- Dire que vous appréciez cette librairie, et voter pour elle sur le site sourceforge. Ca peut paraître idiot, mais les encouragements sont importants pour ceux qui font un projet.
License
Cette librairie est licensiée sous les termes de la LGPL.