[BETA] Gint++
Posté le 09/02/2024 15:22
voila le Lien du projet
voila le Dépot Gitea
Je suis actuellement en train de travailler sur un projet que j'appelle(avec l'accord de
Lephenixnoir) gint++.
Le projet sera un fichier python qui offrira plus de fonctionnalité de graphismes pour gint. Les fonctions sont juste en réalité plusieurs fonctions de gint pour faire une image.
Pour l'utiliser, tu n'as qu'a faire
from gintpp import *
au début de ton code
.
Ce projet est inutilisable sans
PythonExtra puisqu'il utilise gint.
Je suis ouvert aux questions
et si vous avez des autres idées, mettez les en commentaires s'il vous plaît
.
Fonction fini:
Cliquer pour enrouler
dlimage(x,y,list,couleur)
Cliquer pour enrouler
dlimage sera sous cette forme:
dlimage(x,y,list,couleur)
. Voici a quoi servent tous ces paramètres:
- x et ysont les coordonnées du coin de l'image en haut a droite.
- la list doit ressembler a ça:
img = [
"# #",
"#####"
]
Cette image sera une sorte de but et ressemblera a ça: |___|. taillex et tailley dans le cas du but sera alors:taillex = 5
tailley = 2
car il y a 5 caractères par lignes et il y a 2 caractères par colonnes. la fonction trouve la taille toute seule maintenant .
couleur1 est la couleur des 0 et couleur2 est la couleur des #il n'y a plus qu'une seule couleur a mettre et ce sera la couleur du #, tu dois juste mettre un espace au lieu d'un 0 et sa couleur sera du blanc
Cette fonction est la version améliorée de dimage() (désolé Lephe' ^^"). Maintenant regardons les pour et les contres:
plus facile a éditer
plus facile a comprendre
ne peux que faire deux couleurs
ne peux pas être très bien bien utilisé pour Graph 90+E a cause de ses plus petits pixels que les monochromes
dmenu(titre,liste,version)
Cliquer pour enrouler
cette fonction te permet de faire un menu assez beau en beaucoup plus rapidement. Le paramètre "titre" est le string qui seras affiché en gros sur le menu (et il est automatiquement centré
).
Le deuxième paramètre "liste" sera la liste des options qui seront affiché. On ne peut que mettre 5 options maximum, si il y en a plus dans la liste, ils seront supprimés et affichera les 5 premiers.
Et le dernier paramètre "version" est le petit mot en dessous du titre (signature, version du projet, etc...). Si vous ne voulez rien, mettez None a la place
rapide a utiliser
pas customable
dlocate
dmenu
Le module python s'appelle gintpp et est en fichier joint.
Voilà
Tuper
@RDP
Fichier joint
Citer : Posté le 11/02/2024 11:43 | #
C'est bon! La nouvelle version de dlimage est sortie tu peux maintenant remplacer ça:
"#","#","#","#","#",
"#","0","0","0","#"]
"#####",
"# #"]
2 vidéos de démo:
https://youtube.com/shorts/3ZkvTjT4xmE?si=7152U7Lx91Nw4kOS
https://youtube.com/shorts/8fqwjVF-L04?si=bsrGPlyogESx5pXZ
Voilà
Tuper
Citer : Posté le 11/02/2024 12:07 | #
Où est-ce qu'on peut télécharger/tester du coup ?
Citer : Posté le 11/02/2024 12:14 | #
Non ^^" je suis sur téléphone et l'ordinateur n'est pas le mien :/ je peux tout de même recopier le code qui n'est pas très long . Tu le verras dans 10 min normalement .
Voilà
Tuper
Citer : Posté le 11/02/2024 12:24 | # | Fichier joint
Alors, voici le module python . Le module s'appelle gintpp et il n'y a qu'une seule fonction: dlimage. Voici les paramètres:
Voilà
Tuper
Citer : Posté le 11/02/2024 13:31 | #
NOUVELLE VERSION
Fonction Dlimage n'a plus besoin de connaitre la taille . Juste les coordonnées, la list et la couleur.
Toutes les autres fonctions en haut dans le topic seront enlevé sauf les trois dernières
Toutes autres fonctions envoyé dans les commentaires seront prises en compte mais pas forcement faites.
Voilà
Tuper
Citer : Posté le 12/02/2024 21:56 | # | Fichier joint
Désolé pour ne mettre en FJ la nouvelle version . Il n'y a que dlimage qui est amélioré: détecte automatiquement la taille et prévient si il y a une image avec une erreur de dimension, comme ça:
"# #",
"# #",
"##### "]
Cette version est en FJ.
Je travaille pour l'instant sur dmenu()
Voilà
Tuper
Citer : Posté le 21/02/2024 22:18 | # | Fichier joint
Je vais ajouter le logo de Code Clan (c'est pour mettre l'image en fichier joint)
EDIT: un peu trop grosse ^^"
Citer : Posté le 17/05/2024 11:55 | # | Fichier joint
Nouvelle Update
Je présente enfin la 0.2 de gint++ implémentant de nouvelles fonctionnalités et de bonnes nouvelles:
- implementation de "dmenu" "dlocate" et "dbar" (les documentations arrivent bientôt)
- des exemples sur toutes les fonctions
- une TODO list (dans le fichier .pnotes)
Je compte aussi de faire une version en C pour les add-ins pour aider une plus grande variété de codeur (la version CG est un peu plus difficile mais je note tout de même)
Voilà tout ce que j'ai en tête pour l'instant et n'hésitez pas a partager vos idées, ça peut toujours aider!
Lien Gitea
Lien de téléchargement (aussi en FJ)
Amusez vous bien
Tuper
Citer : Posté le 17/05/2024 13:26 | #
(À la fin de dmenu() tu as un \r qui traîne dans le "return select+1" après le "select" ce qui fait que le +1 est à moitié sur la ligne suivante)
Citer : Posté le 17/05/2024 14:19 | #
Corrigé. Merci pour la remarque
Citer : Posté le 17/05/2024 18:54 | #
tu es vraiment fort Tuper4 ! bravo !
https://joz.alwaysdata.net/info/
Citer : Posté le 17/05/2024 21:53 | #
Merci beaucoup!
Si tu as des idées ou commentaires, n'hésite pas a les partager car j'avoue que je suis a bout d'idées ^^"
Citer : Posté le 20/09/2024 11:36 | #
Salut,
Ça fais longtemps que j'était inactif mais juste pour vous dire, ce projet n'est pas mort. J'ai quelques autres fonctions à implémenter comme dsave et dload qui fais un capture d'écran et sauvegarde ça dans un fichier. Pour dessiner la capture d'écran, dlimage fais le reste!
Je vais essayé de les faire le plus rapidement possible (surtout que j'ai un problème avec le mode examen...)
Merci beaucoup
Citer : Posté le 08/10/2024 15:20 | #
Donc j'ai
réussiessayé de faire dsave() et dload() qui est essentiellement l'équivalent d'une capture d'écran qui est stocké dans la mémoire pour pouvoir la réutiliser plus tard.Alors j'ai d'abord pensé à faire en sorte qu'il capture tous les pixels et mets un 1 si il est allumé et sinon, 0. Le problème de ça c'est que le fichier va dans ce cas là faire 128×64=8192 octets qui est un beaucoup trop pour seulement une capture d'écran.
J'ai alors fais en sorte que le fichier stocke la capture en héxadécimal: si 4 pixels consécutifs sont allumés (1111) on aura seulement un F, et si on a 1001, on aura un 9.
Cette méthode fera réduire la taille par 4! On aura alors 8192/4=2048 octets pour une capture. Le seul soucis est que je suis sur 35EII et elle est très lente. Et du coup, quand il essaye d'écrire dans un fichier 2048 caractères, il a du mal... J'obtiens à tout les coups une MemoryError.
Alors à part plus optimiser le code, je ne crois pas que ce serait possible...
Citer : Posté le 08/10/2024 17:01 | #
C'est probablement une fuite de mémoire ou un truc comme ça dans l'interface de fichiers
Essaye d'écrire ta string d'un coup. Et au passage je crois que tu peux sortir direct en binaire. Si tu peux pas tu pourrais utiliser plus de caractères que les 16 de l'hexa, au moins 32 ou 64
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 08/10/2024 17:26 | #
Alors, j'écrivais déjà tout mon string d'un coup :/ mais du coup, le faire avec 32 caractères sera pas mal en vrai, je n'y avais pas pensé. Ça pourrait alors réglé le problème puisqu'il aura moins de truc à écrire.
Merci pour ta réponse, je vais essayé ça
Citer : Posté le 08/10/2024 17:50 | #
Perhaps I'm misunderstanding, but the gint/display-fx.h and gint/display-cg.h headers provide access to the gint_vram variable, which (according to the headers) is 1024 bytes on FX (G35+E II), and 177408 on CG. Then you could read/write gint_vram directly, without allocating any additional memory.
“They call me the king of the spreadsheets, got 'em all printed out on my bedsheets.” — “Weird Al” Yankovic
Citer : Posté le 08/10/2024 17:53 | #
@Calamari He is doing it in Python
@Tuper4 Tu peux faire une issue sur le repo de Sly au cas où il ne voie pas tes messages ici
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 08/10/2024 17:56 | #
@Fcalva Ah okay, I was confused. By the project name, I thought it was a bridge from Python to gint.
“They call me the king of the spreadsheets, got 'em all printed out on my bedsheets.” — “Weird Al” Yankovic
Citer : Posté le 08/10/2024 17:56 | #
Si tu étais capable de créer le buffer que tu veux mettre dans le fichier ça m'étonnerait que ça pète au moment d'écrire le fichier.
Sinon je pourrais juste fournir un accès direct à la VRAM comme un type de buffer de MicroPython ça t'éviterait la copie.
Mais stocker des trucs dans la SMEM, c'est... plutôt douteux, IMHO.
Citer : Posté le 08/10/2024 19:17 | #
Euh... j'ai trouvé le problème je crois déjà en reéssayant, j'ai remarqué que le OSError se passe en essayant de load la VRAM. Et quand je regarde de plus près, le fichier dépasse les 65000 octets ce qui est pas normal du tout. Mais pas du tout. Donc c'est vraiment une erreur au niveau de l'écriture mais le OSError est par ce qu'il n'arribe pas à stocké un string de 666000 caractères dans une variable, pas étonnant...