[SDK] MonochromeLib - une lib graphique monochrome
Posté le 09/06/2010 02:22
MonochromeLib, qu'est ce que c'est ?
MonochromeLib est une bibliothèque de dessin pour le SDK Casio Graph 85.
Elle fournit aux développeurs des fonctions optimisées pour tracer toute sorte de choses à l'écran.
Chaque fonction de MonochromeLib est bien plus rapide que son équivalent dans fxlib.h, et elle fournit de nombreuses fonctionnalités supplémentaires.
Comment l'utiliser
Pour utiliser la bibliothèque, copiez les 2 fichiers dans le dossier de votre projet, ajoutez MonochromeLib.c à votre projet (dans la fenêtre "Files in project" dans le SDK), ajoutez #include "MonochromeLib.h" au début de votre code.
Pour n'ajouter à votre projet que les fonctions dont vous avez besoin, chaque fonction est protégée par un #ifdef, et les #define de chaque fonction sont commentés par défaut.
Pour pouvoir utiliser une fonction, il suffit d'éditer MonochromeLib.h et de décommenter les #define des fonctions que vous voulez utiliser.
/!\ Important
Si vous rencontrez une erreur de compilation de ce type :
** L2310 (E) Undefined external symbol "_ML_pixel" referenced in "C:\...\CASIO\fx-9860G SDK\Projet\Debug\MonochromeLib.obj"
et que le #define de la fonction en question est bien actif dans MonochromeLib.h, alors il faut juste recompiler MonochromeLib.c
Pour cela, Utilisez la fonction Project > Rebuilt all dans le SDK. Si cela ne résoud pas le problème, supprimez le dossier Debug de votre projet, et recompilez normalement.
N'attendez plus !
Une documentation complète est maintenant fournie dans l'archive zip, en anglais et en français.
Questions récurrentes :
Problème : voici mon code, le compilateur ne veux pas le compiler :
unsigned char image[] = { ... };
ML_clear_vram();
ML_BMP_OR(image, 21, 42, 34, 34);
ML_clear_vram();
Solution : toutes les fonctions de MonochromeLib s'appellent en minuscule : les seules majuscules sont celles du "ML". Relisez la doc ou le
wiki, et regardez l'orthographe exacte de la fonction.
Version actuelle : 22 novembre 2011
Télécharger MonochromeLib
Citer : Posté le 21/04/2012 14:31 | #
Juste comme ça, je me suis amusé à lire le code de la documentation... Moi qui étais en admiration devant Pierrotll :
Alors que ce serait tellement plus simple:
Citer : Posté le 21/04/2012 14:33 | #
Bah quoi? On ne peut pas être bon partout!
Et Puis, si tu n'as aps un navigateur qui prend pas footer...
Citer : Posté le 21/04/2012 15:02 | #
Tu vois beaucoup de programmeurs sur une version de Internet Explorer inférieure à 8 ? Ou sur Explorer tout court...
Citer : Posté le 22/04/2012 12:28 | #
oui, mais des types "normaux" si...
Citer : Posté le 22/04/2012 12:44 | #
Les types "normaux" n'utilisent pas MonochromeLib
Citer : Posté le 22/04/2012 15:11 | #
mouai....
Citer : Posté le 24/04/2012 20:39 | # | Fichier joint
J'ai un petit problème...
Alors voila le petit code (je veut afficher un sprit):
ML_bmp_or (kirbyrepos, 0, 0, 12, 12);
ML_display_vram();
Je compile et ça m'affiche pas du tout mon sprite mais un ça (fichier joint)
Le sprite que je veut afficher est a droite et ce que j'ai en réalité à gauche
Citer : Posté le 24/04/2012 20:59 | #
Toujours pas trouvé ?
8 pixels pour une case, parc'que char doit être <256, donc 8 pixels par 8 pixels pour encoder ton sprite !
Citer : Posté le 24/04/2012 21:00 | #
sinon, faut utiliser un int je suppose (je ne suis pas fan des sprites)
Citer : Posté le 24/04/2012 21:02 | #
Non j'crois pas, vu que la lib lit octet par octet, donc 8 pixels par case
Citer : Posté le 24/04/2012 21:06 | #
bah tu fait comment alors ?
Citer : Posté le 24/04/2012 21:07 | # | Fichier joint
A d'accord j'avais pas compris a cause du protoype et aussi parce que je suis noob du C
EDIT: j'avais pas vu la 2° page (enfin la 11°)
Oui donc comment tu fait ?
EDIT2: j'ai mis un int et ça fait ça (fichier joint)
C'est bizarre mes pixels sont espacés, ça doit être la conversion en décimal qui est mal faite
Citer : Posté le 24/04/2012 21:36 | #
Faut pas mettre de int, tu laisses en char, mais tu fais ton tableau différemment, de 8 pixels en 8 pixels ...
Citer : Posté le 24/04/2012 21:48 | #
A OK donc en tout il y aura 16 cases dans le tableau
C'est ça (je teste demain) ?
Citer : Posté le 24/04/2012 21:56 | #
Tu peux aussi garder ton encodage actuel et déclarer ton tableau comme un tableau de short (16 bits).
L'encodage des bitmaps est expliqué dans la documentation.
Citer : Posté le 24/04/2012 23:03 | #
Ok !
Mais est-qu'une des methode est plus rapide que l'autre ?
P.S: pierotll j'ai pas reussis a fair marcher find_sprit_in_bitmap donc j'ai tout convertit en décimal avec ma calculette.
Citer : Posté le 24/04/2012 23:19 | #
Tout est expliqué dans les commentaires, il faut un bitmap 24 bits.
Il faut que les images soient entourées d'un carré noir avec une marge intérieure et extérieur d'1pixel blanc, comme dans l'image d'exemple.
Les carrés noirs ne doivent pas se toucher, et ne doivent pas toucher les bord de l'image.
Citer : Posté le 25/04/2012 13:04 | #
Utilise Sprite maker alors.
Citer : Posté le 25/04/2012 17:08 | #
Même l'image d'exemple ne marche pas
Citer : Posté le 25/04/2012 19:02 | #
Il faut taper le nom du fichier avec ".bmp"