Arcallians

Arcallians / Orx / EditOrx

Entries feed - Comments feed

Dépendances de SFML

SFML est une bibliothèque C++ de développement multimédia. Elle sert depuis peu de brique à des plugins d'Orx.

Mais j'ai eu du mal à la compiler sous Ubuntu car il me manquait des dépendances. Ces dépendances ne sont marquées nulle part sur le site (ou alors, faut que je retourne chez l'ophtalmo).

Pour compiler SFML, il faut installer les paquets de développement suivants :

  • OpenAL
  • DevIL
  • Vorbis
  • sndfile

Votre serviteur.

orxMessageQueue devient orxQueue.

Suite à une grande discussion avec Nicolas et Romain, J'ai transformé les orxMessageQueue en OrxQueue.

En effet, le code des files a été généralisé car il peut être utilisé par d'autres modules.
Du coup, les orxEvent héritent du code spécifiques aux messages.

Capacité initiale des files de messages pour Orx

Je viens de commiter la capacité initiale des files de messages (MessageQueue) pour Orx.

Continue reading »

Fin des intervalles mathématiques

Bon, ben voila, c'est fait.
J'ai finis d'implémenter les fonctions de manipulation des intervalles mathématiques. Il y avait vraiment beaucoup de bugs, surtout dans la partie avec les nombres flottants surtout dus à l'inclusion ou l'exclusion des bornes.
Le module de test correspondant est fini lui aussi. Il m'a d'ailleur beaucoup servi pour la chasses aux bugs.

En accord avec Nico et Romain, je vais laisser la programmation des BNT de côté pour me concentrer sur le gestionnaire d'évènements qui semble plus prioritaire (à juste titre :-)) pour tout le monde. Par contre, je ne posterai surement pas de code tout de suite car il reste pas mal de points de l'architecture des évènements à éclaircir avec les programmeurs avant de coder la tête dans le guidon (la tête dans le clavier plutôt :-D ).

Mathématiques et erreurs d'optimisation.

Comme le gestionnaire d'évènement est plus important que les réseaux bayésiens, je vais interrompre les développement de ces derniers pour me concentrer sur la mise au point d'une table d'interception des évènements.
Toutefois, je vais finir la partie déjà commencée des BNT, c'est à dire la partie mathématique : gestion des ensembles mathématiques.

A ce propos, j'ai déjà eu plein de problèmes qui m'ont ralentis, des problèmes liés à l'optimisation des fonctions inlines de GCC ou, tout au moins de mingw ( car je n'ai que ca en ce moment).
En effet, certaines fonctions sont, pour des raisons d'optimisation de vitesses, de simples fonctions mathématiques/logiques très peu lisibles :
orxINLINE orxBOOL orxIntervalFloat_IsLess(orxINTERVAL_FLOAT _stInter1, orxINTERVAL_FLOAT _stInter2)
{
    return (_stInter1.fMax<_stInter2.fMin) ||
           ((_stInter1.fMax==_stInter2.fMin) && 
            (((_stInter1.u32Flags&orxINTERVALFLOAT_MAX_INCLUDED)|(_stInter2.u32Flags&orxINTERVALFLOAT_MIN_INCLUDED))!=orxINTERVALFLOAT_ALL_INCLUDED));
}
C'est très efficace mais le problème est que gcc doit mal implémenter la gestion de la cache car sur certains appels, si les calculs via ces fonctions sont encahinés, leurs résultats sont faux ou partiels, alors que si les calculs sont entrecoupés de fonctions (non-inline) d'affichage (par exemple, en tout cas qui ne modifient pas le calcul), les calculs sont magiquement correct.

La pensée du jour sera donc : Toujours vérifier les appels inlines, tu feras !
Thème original par N.Design Studio - Adapté par Pixials - Powered by Dotclear
Fil des billets Administration