Cela n'est pas un addin complet, mais une librairie pour les codeurs C, à inclure dans vos addin utilisant les niveaux de gris de Revolution-FX.
La fonction ls_screenshot() vous permettra de convertir deux buffers (clair et foncé) en une image BMP 4 bits (seulement 4 couleurs seront utilisées).
C'est encore très basique et de nombreuses améliorations peuvent être apportées (en vrac meilleur gestion des fichiers BMP, plus de niveau de gris, etc.), mais cela fonctionne. Je l'ai développée pour mon projet Sorcery-G, avec en tête la possibilité de la réutiliser pour tout le monde.
J'ai répondu à ton message privé, mais je vais t'apporter quelques informations supplémentaires ici.
Une fois le programme en enregistré, il ne sera pas possible de changer de nom, ni de modifier sa catégorie. Donc, il faut bien faire attention lors de la création d'un nouveau programme
Pour changer le nom du prog et sa catégorie, il faut demander à un admin, mais c'est vrai qu'ils se font rares depuis quelques temps
pour ton problème de type multi-byte, je pense que c'est due au système big-endian
Par exemple dans un BMP, les dimensions de l'images sont écrites sur 4 octets, donc ça joue. Il y a un header dans le SDK avec quelques macro pour faire les conversions big-endian, little-endian.
Et sinon, il faudrait penser à vérifier que l'ouverture du fichier a réussie avant d'essayer d'y écrire. Parce que là t'écris sur la carte SD, et toutes les caltos n'ont pas de carte SD.
@Totoyo : Voui j'ai bien vu... Je suis distrait parfois J'ai pourtant cru avoir fait attention ^^'
@Pierrotll : J'ai pas pensé que ca pouvais venir de l'endianness, c'est à explorer oui.
ls_screenshot() renvoie 0 si le fichier n'a pu être créé (quelqu'en soit la raison) ou si il y a eu un problème pendant la conversion/ecriture des buffer (en fait non ). c'est à la fonction appelante pour le moment de prévenir l'utilisateur qu'il y a eu un problème. Si un fichier du même nom existe déjà, il n'est pas remplacé (la création échoue).
En cas de succès la fonction retourne 1.
Le fichier est stocké dans fls0, c'est pas la mémoire de stockage ?
Ah si mince, t'as raison, fls0 c'est bien la mémoire de stockage. J'ai confondu.
Dafp: Quand on fait un jeu en niveaux de gris, l'émulateur du SDK ne peut pas afficher les niveaux de gris comme sur calculatrice (normal). Donc ce n'est pas très pratique de faire des screenshot de son jeu. Cette petite librairie sert à faire une capture des 2 buffers d'affichage, et génère ensuite un fichier bitmap avec l'image de l'écran en niveaux de gris.
En fait si je peux me permettre de préciser ta réponse, il n'y a pas conversion puis écriture, la conversion des buffers se fait à la volée pendant l'écriture. Ca évite de stocker un BMP dans la mémoire.
J'ai repensé à ce que tu m'as dit, effectivement je teste si la création du fichier à réussis, mais pas l'ouverture ensuite. Il faudrait au moins tester s'il reste assez de place pour l'image.
Très bonne idée, j'y avais jamais pensé
Quelques suggestions au passage :
Déjà, le problème des header vient de ce qu'on appel l'alignement de données.
J'aurais du mal à expliquer mieux que Wikipedia, mais pour faire simple les structures doivent "aligner" les données en mémoire en fonction de leur type (chaque type de base doit être écrit sur une adresse multiple de sa taille, 4 pour le int, 2 pour les short, etc...), ce qui a pour conséquence de parfois laisser des byte vides entre certaines variables d'une structure. D'ailleurs, c'est expliqué dans le PDF du compilo (fournit dans le SDK, regardez bien, sous le nom de "SHC Manual" ) à partir de la page 214. (d'ailleurs si je peux me permettre je conseil aux programmeurs intéressés par le fonctionnement du compilo de jeter un coup d'oeuil à cette doc, très interessant ).
Ensuite, je me disais que ce serait pas compliqué et toujours ça de plus de permettre d'utiliser un path manuel pour le fichier où enregistrer (genre un FONTCHAR*, qui, si il vaut 0, signifiera d'enregistrer sous un nom automatique). Genre pour les possesseurs de modèle SD, ce serait pratique pour avoir directe les .BMP sur la carte x_x
Voilà voilà, toujours du très bon travail quand même
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd