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:

Pour le moment, seule des fonctions assez basiques sont implémentées:

Création d'un projet utilisant PFen sous Code::Blocks:
  1. Créer un projet SDL (les 2 devraient fonctionner) et sans générer de source (ou alors, supprimez les après).
  2. Allez dans les propriétés du projet (pour plus de simplicité: clic droit sur le projet, puis, properties)
  3. Dans la fenêtre qui s'affiche, cliquez sur "Project's Build Options..." en bas à droite.
  4. Dans l'onglet "Linker settings" ajoutez PFen.dll
  5. 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
  6. Validez tout. ("project's build options" et "properties" donc)
  7. Dans le fichier principal de votre application ajoutez #include <pfen.h>
  8. 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.
Les outils:
Compilation et installation de la librairie pour Code::Blocks:
  1. Installez code::blocks. Si vous voulez utilisez les nightly builds (ce que je conseille) vous trouverez ici la marche à suivre.
  2. 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.
  3. 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)
  4. Ouvrez le fichier PFen.cbp avec Code::Blocks.
  5. Choisissez la cible (debug par défaut, mais une cible release plus optimisée est disponible).
  6. 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:

License

Cette librairie est licensiée sous les termes de la LGPL.