[Linux/C++] Faire une application de type "GPS"

Faire une application de type "GPS" [Linux/C++] - C++ - Programmation

Marsh Posté le 30-10-2004 à 13:46:52    

Bonjour à tous !
 
Dans le cadre de mon travail de fin d’étude, je dois réaliser une application qui puisse afficher des cartes de navigation sur un écran en fonction de données GPS. Je dois pouvoir la réaliser sous Linux en C++ (idéalement dans ce langage).
 
Ma question : avec quel API je peux afficher des images à l’écran sachant que la vitesse d’affichage est critique. Au pire je dois pouvoir afficher mes images toutes les 90ms.
 
J’aimerons donc afficher à l’écran des images en me passant de X par exemple. J’ai entendu parlé du framebuffer et également de l’API SDL avec des drivers framebuffer.
 
Quel serait la meilleure solution pour afficher des images à une telle cadence ?
 
 
Je vous remercie tous d’avance ! ! !
 
 :jap:  :jap:  :jap:
 
 
EDIT : Il m'est également nécessaire d'afficher plusieurs données en couche au dessus de l'image. Je ne sais pas quel API serait le plus simple ?


Message édité par AZorbas le 30-10-2004 à 14:38:32

---------------
www.astrocosmos.net, le portail belge francophone sur l'astronomie et les Sciences.
Reply

Marsh Posté le 30-10-2004 à 13:46:52   

Reply

Marsh Posté le 30-10-2004 à 15:21:06    

Pour faire du 11 images/secondes, même X tout seul marchera bien (en utilisant X-shm au pire). Il existe des extensions Frame-buffer (DGA par exemple, faire une recherche sur le forum, j'ai donné un lien à madprog). Mais le plus simple, ça reste d'utiliser SDL. Il gère tout ça très bien, etc. (Allegro fait ça aussi je crois).  
 
Pour ce qui est des couches, SDL ne gère pas la composition à ma connaissance, donc tu devras les écrire toi-même (ou alors utiliser OpenGL par exemple), mais c'est pas la mort. A priori, la seule difficulté mineure, ça sera d'afficher du texte: il te faudra utiliser des libs spéciales si tu veux du beau truetype avec antialiasing, etc.

Reply

Marsh Posté le 30-10-2004 à 15:35:36    

Lam's a écrit :

Pour faire du 11 images/secondes, même X tout seul marchera bien (en utilisant X-shm au pire). Il existe des extensions Frame-buffer (DGA par exemple, faire une recherche sur le forum, j'ai donné un lien à madprog). Mais le plus simple, ça reste d'utiliser SDL. Il gère tout ça très bien, etc. (Allegro fait ça aussi je crois).  
 
Pour ce qui est des couches, SDL ne gère pas la composition à ma connaissance, donc tu devras les écrire toi-même (ou alors utiliser OpenGL par exemple), mais c'est pas la mort. A priori, la seule difficulté mineure, ça sera d'afficher du texte: il te faudra utiliser des libs spéciales si tu veux du beau truetype avec antialiasing, etc.


SDL + OpenGL + SDL_ttf est une combinaison très classique.

Reply

Marsh Posté le 30-10-2004 à 15:45:01    

Merci beaucoup pour votre aide !
 
Pour X, je ne préfère pas trop l'utiliser pour des raisons de poids (c'est un a priori qui est peut-être faux). Idéalement l'application devrait être la plus compacte possible.
 
SDL + OpenGL : ça passe par X ?
 
SDL_ttf : terrible ! A priori ce serait exactement ce qu'il me faudrait pour afficher des données suppl sur l'écran !
 
 
Une remarque, a priori 90ms ça parait peu, mais je dois encore derrière décoder et afficher des cartes de navigation au format CADRG qui englobent le monde entier (peu aller à plusieurs GO) ... voilà pq a priori je ne préfère pas passer par X.  
 
 
merci bcp !  :jap:


---------------
www.astrocosmos.net, le portail belge francophone sur l'astronomie et les Sciences.
Reply

Marsh Posté le 30-10-2004 à 15:49:23    

SDL passe par X ou par la Svgalib (si ça existe encore).  
 
OpenGL, il me semble que ça ne fonctionne que sous X. A voir en fonction de ta carte graphique.
 
Sinon, X n'est pas gros, et tout peut se faire en liant des shared-libs, donc avec un poids de ton executable tout rikiki.  
 
Ce qui rame et est gros, c'est KDE/Gnome/Enlightenment. Mais X lui-même est lean&mean. Il faut juste toujours se rappeller qu'il est asynchrone, ce que beaucoup de développeurs traitent par dessus la jambe. :( Donc pas de XFlush à chaque scanline, ou je lache les chiens. :)
 

Reply

Marsh Posté le 30-10-2004 à 15:54:49    

AZorbas a écrit :

Merci beaucoup pour votre aide !
 
Pour X, je ne préfère pas trop l'utiliser pour des raisons de poids (c'est un a priori qui est peut-être faux). Idéalement l'application devrait être la plus compacte possible.
 
SDL + OpenGL : ça passe par X ?
 
SDL_ttf : terrible ! A priori ce serait exactement ce qu'il me faudrait pour afficher des données suppl sur l'écran !
 
 
Une remarque, a priori 90ms ça parait peu, mais je dois encore derrière décoder et afficher des cartes de navigation au format CADRG qui englobent le monde entier (peu aller à plusieurs GO) ... voilà pq a priori je ne préfère pas passer par X.  
 
 
merci bcp !  :jap:


Faut pas croire que X c'est si lent que ça. SDL+OpenGL devrait être largement suffisant pour tes besoins de perfs si tu veux des effets spéciaux comme de l'alpha. Sinon, SDL seul devrait suffire largement. 90ms c'est environ 11 fps et les jeux sous Linux arrivent quand même à faire plus de 11 fps que je sache :D

Reply

Marsh Posté le 30-10-2004 à 15:58:46    

Kristoph a écrit :

Faut pas croire que X c'est si lent que ça. SDL+OpenGL devrait être largement suffisant pour tes besoins de perfs si tu veux des effets spéciaux comme de l'alpha. Sinon, SDL seul devrait suffire largement. 90ms c'est environ 11 fps et les jeux sous Linux arrivent quand même à faire plus de 11 fps que je sache :D


[troll]
Avec les ATI c'est presque mission impossible
[/troll]

Reply

Marsh Posté le 30-10-2004 à 15:59:29    

Kristoph a écrit :

et les jeux sous Linux arrivent quand même à faire plus de 11 fps que je sache :D


Comment tu peux savoir ? Half Life 2 n'est pas encore sorti. :whistle:

Reply

Marsh Posté le 30-10-2004 à 16:01:20    

Donc a priori X n'est pas si lourdingue que ça ? J'essaierai pour voir ... j'avais dans l'idée de me passer du maximum de librairies et programmer le terminal (:D) avec au pire utiliser des petites API pour m'aider à afficher à l'écran mes images.
 
Autre question, je peux programmer en C++ avec le SDL ?


Message édité par AZorbas le 30-10-2004 à 16:02:37

---------------
www.astrocosmos.net, le portail belge francophone sur l'astronomie et les Sciences.
Reply

Marsh Posté le 30-10-2004 à 16:02:49    

AZorbas a écrit :

Donc a priori X n'est pas si lourdingue que ça ? J'essaierai pour voir ... j'avais dans l'idée de me passer du maximum de librairies et au pire utiliser des petites API pour m'aider d'afficher à l'écran mes images.
 
Autre question, je peux programmer en C++ avec le SDL ?


La SDL c'est du C donc oui tu peux l'utiliser en C++. Par contre il ne faut pas s'attendre à avoir une API complètement objet.

Reply

Marsh Posté le 30-10-2004 à 16:02:49   

Reply

Marsh Posté le 30-10-2004 à 16:04:10    

Bah si X était lourdingue, tu ne le retrouverais pas sur certains PDA.  
 
Pour le C++, c'est possible. Il y a même plusieurs libs contribs. qui encapsulent les appels dans des classes C++.
 
Bon, va coder maintenant, au lieu d'alimenter les trolls. ;)  
 
Tu verras, c'est simple, pratique, et il y a plein d'exemples dispos.

Reply

Marsh Posté le 30-10-2004 à 16:09:04    

Merci beaucoup à tous !!!
 
:jap: :jap: :jap:


---------------
www.astrocosmos.net, le portail belge francophone sur l'astronomie et les Sciences.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed