1

Salut à tous !

J'ai une image plus grosse que l'écran de la TI (en largeur et en hauteur) et je voudrais pouvoir scroller rapidement (dans les 4 directions).
Ya t-il des librairies pour faire ça ?
Je précise qu'il n'y a pas de motif répétitif. J'ai vu ce que pouvait faire le TileMapEngine : à la limite, c'est crade de découper mon image en plein de tiles ?
Ou y a-t-il des trucs mieux.

Dernière chose : j'ai besoin de dessiner dans cette image "virtuelle".

2

void put_background_image(unsigned int *img_data,int img_width_in_words,int x,int y,unsigned int *screen) {
  unsigned long *p = (unsigned long *)(img_data+(((x-1)>>4)+y*img_width_in_words));
  unsigned long *q = (unsigned long *)((unsigned int *)p+1);
  int shift = (-x)&15;
  int adjust_p = img_width_in_words*2-8*4;
  int adjust_q = img_width_in_words*2-7*4;
  int height = 128;
  while (height--) {
#define STEP(ptr) *screen++ = *ptr++ >> shift
    STEP(p), STEP(q);
    STEP(p), STEP(q);
    STEP(p), STEP(q);
    STEP(p), STEP(q);
    STEP(p), STEP(q);
    STEP(p), STEP(q);
    STEP(p), STEP(q);
    STEP(p);
#undef STEP
    ((void *)p) += adjust_p;
    ((void *)q) += adjust_q;
  }
}

(non testé ^^)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

3

LOL^! Ca c'est de la réponse explicative! cheeky

Tu as deux manières, on va dire les deux qui me viennent à l'esprit :
1 -> ou découper ton image comme tu l'as dit, pour utiliser un moteur préfait comme le Tilemap Engine ou Genlib.
2 -> lire ton image "à la main", c'est à dire t'aligner, lire des longwords (par 4 octets), faire les rotations kivonbien et afficher (et là, plus de problème avec l'écran virtuel, tu écris à la main encore une fois).

Pour tes histoires d'écran virtuel, vas voir dans la doc du coté de PortSet et PortRestore.
avatar
Mon journal de bord <flux rss manuel> asTI68k : WIP </flux>

Le modernisme ne diffère guère de la libre pensée absolue que par sa prétention de demeurer catholique.

4

Salut,

Il envoyer 5 variables à cette procédure ;
1- unsigned int *img_data
2- int img_width_in_words
3- int x
4- int y
5- unsigned int *screen

Pour la variable 1, on devine par bon sens qu'il s'agit de l'adresse mémoire où commence l'image à afficher.
Pour la variable 2, est-ce que quelqu'un sait de quoi il s'agit ?
Pour les variables 3 et 4, ça fait penser à une position de départ, est-ce que c'est bien ça ?
Pour la variable 5, on dirait le numéros de l'écran dans lequel l'image doit s'afficher, est-ce que c'est bien ça ?

5

2512 jours,
10 heures,
et 31 minutes sans réponses sur ce topic.

À un moment, j'ai cru que pollux était de retour sur yN, et puis j'ai vu la date de son post mourn


Bref, sinon pour la variable 2, c'est la largeur en words de ton image trigic
(word = 2 octets)
avatar
Appartiens à l'Unification Ultime !

Exec "4e444e750000"

6

Cool !