Défi Pascal 2014 "screensaver" - Projet de EpiTouille : SSFirework

Présentation
Défi Pascal 2014 - SSFirework

Description

SSFirework est un économiseur d'écran créé par Epitouille dans le cadre du défi pascal 2015. L'économiseur reproduit l'effet de feux d'artifices (firework) en utilisant un moteur de particules très léger.
Il utilise OpenGL et SDL pour le contexte et gère lui-même les évènements ce qui le rend autonome et multi-plateforme.
Le projet comporte 2 unités ainsi que le fichier source principal :
  • UWindow.pas : unité permettant de gérer la fenêtre et ses interactions ;
  • UFirework.pas : unité contenant la classe Firework et permettant de gérer un feu d'artifice ;
  • main.pas : fichier source principal qui appelle la logique du jeu.


Contenu du zip

Le zip contient les fichiers sources, les DLL de la SDL et d'OpenGL ainsi qu'un binaire compilé depuis Windows 7.

Compilation

Le programme ne requiert aucune unité et aucune bibliothèque statique que celles fournies par défaut par FreePascal. La compilation est alors très simple.

fpc main.pas -ofirework.exe

suffit à générer un exécutable, car freepascal va compiler les dépendances lui-même.

Remarque

J'ai remarqué que FreePascal sous Linux était un poil différent : si on recompile main.pas alors que une unité a été changée, il ne va pas
automatiquement recompiler l'unité et linker avec le .o de l'ancienne version.
Donc sous Linux, penser à recompiler les unités si modifiées :

fpc UWindow.pas && fpc UFirework.pas && fpc main.pas -ofirework.exe

Exécution et installation

Pour tester le screensaver il suffit de lancer l'exécutable.

Sous Windows
Version(s) testée(s) : 7 (64b) ATI / 8.1(64b) ATI
Renommer l'exécutable en .scr ou directement
fpc main.pas -ofirework.scr
Vous pouvez le tester avec clic droit sur le .scr > tester
L'écran de veille ne fonctionne pas avec le gestionnaire d'écran de veille de Windows car il faut implémenter certaines fonctions de l'API Win32.
Mon but était de faire quelque chose le plus portable possible.

Sous Linux
Version(s) testée(s) : archlinux testing 64bits carte ATI
Gestionnaire de screensaver : xscreensaver
Copier l'exécutable (ou lien symbolique) dans /usr/lib/xscreensaver et dans /usr/bin/screensaver.
Attention aux permissions.
Créer un fichier /usr/share/xscreensaver/config/firework.xml contenant la description du fond d'écran. (doc xscreensaver)

Documentation

Le code est documenté avec la norme utilisée par Doxygene.

Avenir

En parallèle, j'ai commencé à créer mon propre screensaver manager car j'ai vu que chaque gestionnaire demandait d'implémenter une norme différente ce qui rend le développement d'un économiseur d'écran multi-plateforme irréalisable.

Remerciements

Je remercie l'équipe pascal pour son investissement et qui m'a permis de remettre les doigts dans du pascal ce que je n'avais pas fait depuis plus de 2 ans et avant, ça remonte au lycée :)
Bonne chance à tous les concurrents.
Epitouille
Téléchargement
Compatibilité
Windows
2  0 
Téléchargé 9 fois Voir le commentaire
Détails
Catégories : Free Pascal
Avatar de Titouan Créac'h
Membre éprouvé
Voir tous les téléchargements de l'auteur
Licence : Autre
Date de mise en ligne : 1er mai 2015




Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 01/05/2015 à 19:54
Magnifique présentation, messire Epitouille. Je m'en vais de ce pas télécharger vos sources.

 
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Responsables bénévoles de la rubrique Pascal : Gilles Vasseur - Alcatîz -