Les timers ALLEGRO sont-ils dangereux ?

casanoveg Messages postés 17 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 19 janvier 2005 - 27 déc. 2004 à 11:33
casanoveg Messages postés 17 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 19 janvier 2005 - 27 déc. 2004 à 19:13
Salut,

J'ai enfin réussi depuyis 5 jours à faire fonctionner la compilation avec ALLEGRO sur Dev-C++. Depuis je n'ai pas chomé et je suis maitenant capable de créer un personnage qui se déplace avec le clavier à une vitesse résonnable et capable de s'animer pendant son déplacement, illusion qu'il marche où fait tout plein d'autres choses. Je peux aussi charger la musique, le son... Bref en 4 jours j'ai rattrappé mon retard de plusieurs mois. C'était une petite parenthèse !

Voilà j'ai une question importante concernant les timer avec ALLEGRO, dont j'ai utilisé mon premier pour l'animation de mon personnage. J'ai lu dans la doc Allegro, que mal utilisé un timer pouvait littéralement "tuer" mon système. Et aussi qu'il fallait éviter d'en utiliser trop en même temps pour épargner la pile de l'horloge. Est-ce que j'ai bien compris ce qui est dans la doc ?
Y a t-il vraiment un risque en cas d'oublie d'écrire les lignes,
LOCK_VARIABLE(tempus);
LOCK_FUNCTION(inc_tempus);
de voir mon système completement détruit ?
Et est-ce que l'utilisation des timer en grande quantité simultanément est mauvais pour la pile ?

Parce que je n'aimerais pas créer un virus capable de "tuer" mon ordinateur, en voulant faire un simple jeu-video. %-6

Le passionné de la prog en c++ :)

4 réponses

xboxut Messages postés 172 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 27 novembre 2009 1
27 déc. 2004 à 16:35
moi j utilise allegro je les oublie de temps en temps(les LOCK VARIABLE et LOCK FUNTION) et ca fait pas grand chse p systeme XD.
c bidon l utilisation de timer te flinguera pas ton ordis :p
et tu vas peiner a faire un virus en voulant utiliser les timer d allegro pour faire un jeu :D
0
xboxut Messages postés 172 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 27 novembre 2009 1
27 déc. 2004 à 16:36
In a DOS protected mode environment like djgpp, memory is virtualised and can be swapped to disk. Due to the non-reentrancy of DOS, if a disk swap occurs inside an interrupt handler the system will die a painful death, so you need to make sure you lock all the memory (both code and data) that is touched inside timer routines.

c que en dos que les LOCK sont obligatoires
0
xboxut Messages postés 172 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 27 novembre 2009 1
27 déc. 2004 à 16:41
desole de faire plein de reponse c chiant mais bon ...
pour la pile de l horloge je sais pas ou tu a pecher ca :p tu a sans doute mal traduit l aide d allegro
0
casanoveg Messages postés 17 Date d'inscription mardi 17 juin 2003 Statut Membre Dernière intervention 19 janvier 2005
27 déc. 2004 à 19:13
Ok, merci ! Je suis rassuré, j'avais un peu peur de faire un jour une boulette monumentale.

Le passionné de la prog en c++ :)
0
Rejoignez-nous