Quand nous (les divers contributeurs) avons programmé ExtGraph, nous avons probablement créé trop de routines. Mais je pense vraiment que de ton côté, tu n'en fais pas assez
Côté face, tes drawTile sont génériques... mais côté pile, telles qu'elles sont écrites, elles vont être vraiment lentes pour le cas simple (nettement majoritaire, en pratique, sur TI-68k et d'autres plate-formes): dessin de sprites non scalés, i.e. size = 1.
C'est un cas particulier de l'utilisation trop étendue, à mon goût, de drawBox_, telle que ta lib est actuellement écrite
Une routine de sprite 16 bpp est facile: copie par blocs de 16 bits, en utilisant les modes postincrémentés de l'ISA ARM (un des trucs bien du 68000, repris sur l'ARM).
Une routine de sprites alignés 16 bpp peut utiliser des copies par blocs de 32 bits, si on force à 4 l'alignement de la source et de la destination.
Une routine de sprite 4 bpp peut être faite avec deux écritures 32 bits et un shift droit + un shift gauche par ligne.
Une routine de sprite alignés 4 bpp... est déjà faite dans la version Nspire de shuffle (
http://www.ticalc.org/archives/files/fi ... 43472.html )
Encore une fois, je ne dis pas ça pour t'embêter, mais parce que si je voulais programmer sur Nspire, pour des raisons d'efficacité vitesse et taille, je n'utiliserais pas ta librairie telle qu'elle est écrite (mais je pourrais y contribuer - enfin, si j'ai le temps: comme je l'ai dit à "le solutionneur" ailleurs, il n'est pas nécessairement bon que je m'implique dans un projet alors que je sais que j'aurai peu de temps)
Par exemple, je séparerais complètement le mode 4 bpp et le mode 16 bpp, je ferais des macros de pixel pour les utiliser notamment à la place de setPixel dans les fonctions (et ainsi optimiser davantage).
Certes, encore cet après-midi au boulot, je disais que quand il s'agit de programmer sur plate-forme embarquée, je suis drogué à la performance
Mais c'est là que c'est le plus important