Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » GFA-Basic TI68K » Bugs et suggestions » Problème avec une font (106 réponse(s))
./REPRISE DU POST PRECEDENT (post n°76)   Marquer comme non lu.
geogeo Ecrit le: Lundi 2 janvier 2006 à 12:24 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


arf lol ok. :)
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°77   Marquer comme non lu.
Folco Ecrit le: Lundi 2 janvier 2006 à 12:54 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Kevin Kofler :
Martial Demolins :
Bon, en gagnant 4 octets, on peut maintenant traiter une fenêtre située dans la pile, en dur dans le programme, ou allouée ou on veut. Elle est pas belle la vie? :)

Ça a quoi de spécial, ce feature? Tu prends un pointeur en paramètre et tu t'en fous où le dialogue est situé, je ne vois pas pourquoi c'était autrement avant... #confus#

Parcequ'avant, ça allait chercher la structure à 4(sp), maintenant ça va la chercher à (a2).
Je n'avais pas besoin et je ne voulais pas faire d'allocation pour mes structures de fenêtre, donc je passais par la pile. Mais là c'est encore plus souple, même si perso, je ne passerai que par la pile. CQFD. :)

edit-> et hop, pour 0 octet de plus, on peut positionner ce qu'on veut où on veut, en x et y!!! Merci Kevin de m'y avoir fait réfléchir. Tu vois, je fais mieux que AMS! :p

Tu ne fais rien de mieux que AMS, AMS a toujours géré les dialogues faits à partir de structures statiques (ou allouées ou sur la pile, AMS n'en a rien à battre d'où tu sors ton pointeur!).

Et si je fais mieux, mon format de fenêtre propose plus de features. :p
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°78   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 2 janvier 2006 à 18:43 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Martial Demolins :
Parcequ'avant, ça allait chercher la structure à 4(sp)

#sick# Une structure passée par valeur, quoi. #sick#
AMS a toujours fait ça correctement.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°79   Marquer comme non lu.
Folco Ecrit le: Mardi 3 janvier 2006 à 10:35 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Et oui Kevin, désolé de ne pas être à ton niveau, de ne pas être un dieu, mais j'ai pas la prétention de programmer parfaitement du premier jet.

En attendant, je te console avec la création d'une lib dynamique, gw2 (Graphlib Window Wrapper). Des news d'ici bientôt. :)

edit-> naturellement, le format a un peu changé, il y a des fonctions de callback aux endroits quivontbien. :)


-Edité le Mardi 3 janvier 2006 à 11:03 par Martial Demolins-
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°80   Marquer comme non lu.
Folco Ecrit le: Mercredi 4 janvier 2006 à 11:47 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


bon ayé, mon nouveau format de fenêtre semble définitif.
Les flags ne sont pas encore définis, même si j'ai bien évidemment une idée assez claire de ce que je vais en faire.
Si certains ont des remarques ou des suggestions sur le format en lui-même ou sur le tag, merci de m'en faire part.
Kevin: si tu trouves ça très nul (ce que je pense sincèrement que tu penses), n'hésite pas non plus à te lacher. ^^

Merci à tous pour vos éventuelles contributions pour mon petit projet, dont naturellemnt tout le monde se fout. :D

Pour info, le précalcul d'une fenêtre est terminée, je commence l'affichage (pas dur à faire), il ne restera plus que la gestion dynamique à faire (un poil plus dur, surtout faire ça avec bon sens pour obtenir quelquechose de maniable).


edit-> au fait Kevin, pourquoi pensais-tu que les fonctions de box de graphlib ne sont pas utilisables en gray, sans hack? avec choosescreen et un PortSet, tout se passe très bien pourtant. :)


-Edité le Mercredi 4 janvier 2006 à 14:39 par Martial Demolins-
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°81   Marquer comme non lu.
geogeo Ecrit le: Mercredi 4 janvier 2006 à 15:54 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Une très bonne idée et initiative, manque plus qu'à populariser ta libraire. :)
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°82   Marquer comme non lu.
Folco Ecrit le: Mercredi 4 janvier 2006 à 16:06 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


oh merci^^
je le fais pour gfae2 en fait. je ne veux pas des fenêtres d'AMS (je veux rester en gray), la lib est légère, et je ne veux pas réinventer ou calculer à la main ce qu'il faut afficher à chaque fois que je vais ouvrir une boite de dialogue ou afficher un popup. :)
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°83   Marquer comme non lu.
geogeo Ecrit le: Mercredi 4 janvier 2006 à 16:20 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Ouai t'as raison, c'est bien mieux comme ça. :)
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°84   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 4 janvier 2006 à 19:59 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Martial Demolins :
edit-> au fait Kevin, pourquoi pensais-tu que les fonctions de box de graphlib ne sont pas utilisables en gray, sans hack? avec choosescreen et un PortSet, tout se passe très bien pourtant. :)

Donc tu affiches sur un seul plan => hack. #roll# Je pense que tu peux faire la même chose avec les dialogues AMS, d'ailleurs.

Et sinon, tu sais comment combien de pointeurs tu as dans les Text par exemple?
Et enfin (comme la structure MENU de AMS, mais contrairement à la structure DIALOG de AMS), ta structure n'est pas exploitable en C vu que les éléments de ton union sont de taille différente.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°85   Marquer comme non lu.
Folco Ecrit le: Jeudi 5 janvier 2006 à 08:02 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


les texts sont une suite d'adresses, à la fin il y a un tag compris entre 0 et 9. donc je lis le longword, si c'est un tag, je vais à la fonction qui exploite le type de données correspondant, sinon c'est une adresse de texte. :)
pour le C, je sais... mais tant pis... je vais voir ce que je peux faire...

edit:
>>Donc tu affiches sur un seul plan => hack
je ne comprends pas où est le hack... j'affiche une fois dans un plan, une fois dans l'autre... et des choses différentes.

re-edit-> ça y est, la lib affiche ses premières fenêtres précalculées, composées des éléments les plus simples pour le moment. ça pooooooooooooooooooootr!!!!! #love##love##love#
-Edité le Jeudi 5 janvier 2006 à 11:00 par Martial Demolins-
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°86   Marquer comme non lu.
Folco Ecrit le: Jeudi 5 janvier 2006 à 14:37 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Premier screen:
http://databob.free.fr/Volume/files/00000033/gw2.png

Ca ne gère encore qu'une boite de dialogue basique, avec des textes.
Il me reste à programmer le reste des éléments. Mais ça pootr, le principe marche très bien.
Pour info, voici le code qui produit une telle boite:
      xdef      _main
      xdef      _ti89

      include    tios.h
      include    graphlib.h
      include    gw2.h

_main:
      jsr        graphlib::gray4        ;active les grays
      lea.l      window(pc),a2          ;charge l'adresse de la fenetre
      jsr        gw2::MakeWindow        ;precalcule ce qu'il faut
      jsr        gw2:ispWindow        ;affiche la fenetre
      jsr        tios::ngetchx          ;attend une touche
      jsr        graphlib::gray2        ;desactive les grays
      rts                              ;et voila, c'est tout!!!

window:
      dc.w    20            ;x
      dc.w    25            ;y
      dc.w    5              ;offset pour tous les items à gauche
      dc.w    0              ;offset pour tous les items à droite
      dc.w    0              ;largeur (calculee automatiquement)
      dc.w    0              ;hauteur (calculee automatiquement)
      dc.l    str            ;*titre

      dc.l    GW2_TAG_TEXT
      dc.w    0              ;offset
      dc.w    0              ;flag
      dc.l    str2          ;*str
      dc.l    str3          ;*str

      dc.l    GW2_TAG_EMPTY_LINE
      dc.w    5

      dc.l    GW2_TAG_TEXT
      dc.w    20            ;offset
      dc.w    0              ;flag
      dc.l    str4          ;*str
      dc.l    str5          ;*str

      dc.l    GW2_TAG_END_WINDOW

str:    dc.b    "Graphlib Window Wrapper",0
str2:    dc.b    "Does it work???",0
str3:    dc.b    "Nice!!!",0
str4:    dc.b    "Alors, Kevin Kofler, tu",0
str5:    dc.b    "trouves ça comment? ",0


Et voilà, c'est simplissime à programmer, tout en restant complètmeent paramétrable (grâce aux offset et aux flags), il y a juste les tags à placer où il faut en respectant le format, puis tout se fait totu seul. :)

edit-> correction d'un premier bug visible, changement de l'ombrage (mais ça ça peut encore évoluer, après tout c'ets pas le but principal), et rajout des deux dernières lignes de texte :p
edit2-> les offset horizontaux marchent effectivement maintenant, tout se passe bien. :)



-Edité le Jeudi 5 janvier 2006 à 15:41 par Martial Demolins-
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°87   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 5 janvier 2006 à 16:45 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Martial Demolins :
les texts sont une suite d'adresses, à la fin il y a un tag compris entre 0 et 9. donc je lis le longword, si c'est un tag, je vais à la fonction qui exploite le type de données correspondant, sinon c'est une adresse de texte. :)

#sick# HACK DETECTED... :(
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°88   Marquer comme non lu.
Folco Ecrit le: Jeudi 5 janvier 2006 à 16:55 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


... pourquoi c'est un hack???
voici la fonction:
;|==========================================================
;|      CheckTag
;|==========================================================
;|jump to the right function if (a2).l is a tag. else return
;|
;|input:
;|      a2.l  *in a window structure
;|      a3.l  *jump table
;|output:
;|      nothing
;|destroys:
;|      d0
;|==========================================================
CheckTag:
      cmpi.l    #NUMBER_OF_TAGS-1,(a2)
      bcc        \NotFlag
      addq.l    #4,sp                  ;destroy the return adress of the calling function
      move.l    (a2)+,d0              ;tag in d0, and a2 points to the first data after the tag
      lsl.b      #2,d0                  ;d0 offset of the right function in the jump table
      movea.l    0(a3,d0.l),a3          ;adress of the function
      jmp        (a3)
\NotFlag:
      rts                              ;(a2).l is not a flag, so return to calling function


euh... explique-moi ce que je hack... omn propre format de données? AMS? de toute façon, c'est entièrement transparent pour l'utilisateur, alors je vois pas où il pourrait y avoir un quelconque problème... Le jour où tu iras me faire lire des textes entre ($0) et ($8), appelle-moi, mais on est en assembleur sur une plateforme connue, donc je ne vois absolument où se situe le problème...
-Edité le Jeudi 5 janvier 2006 à 16:56 par Martial Demolins-
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°89   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 5 janvier 2006 à 19:55 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Le hack est que tu mets des données dans un pointeur. Un pointeur a une seule valeur particulière, NULL. (Bon OK, sous *nix il y a des fonctions qui retournent (void*)-1 en cas d'erreur, ça fait 2 valeurs spéciales.) 9 est une adresse comme une autre.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°90   Marquer comme non lu.
Folco Ecrit le: Vendredi 6 janvier 2006 à 08:16 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


ben nan justement, 9 est une valeur comme une autre dans un langage portable, dédié à n'importe quelle plateforme ou OS. En assembleur (non portable) sur TI (pour AMS ou PedroM), il n'y a pas de hack à faire ça. Et d'où est-ce que tu sors la notion de type en assembleur?
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°91   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 6 janvier 2006 à 08:26 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Je sais bien que l'assembleur te permet de faire n'importe quoi, même d'utiliser a7 pour stocker des données, d'exécuter des données ou d'écrire dans du code etc. Ça n'en fait pas une bonne idée. Et c'est la même chose ici. En règle générale, tout ce qui n'a pas d'équivalent C ou dont l'équivalent C est un hack est un hack. Et je suis désolé, mais donner une valeur particulière à (void *)9 est un hack.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°92   Marquer comme non lu.
Folco Ecrit le: Vendredi 6 janvier 2006 à 08:54 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


oui mais... c'est totalement transparent pour l'utilisateur, et totalement safe... partant de là, je ne vois pas le problème à le faire. :)
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°93   Marquer comme non lu.
LionelA Ecrit le: Vendredi 6 janvier 2006 à 12:31 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


"En règle générale, tout ce qui n'a pas d'équivalent C ou dont l'équivalent C est un hack est un hack." le SMC est un hack ?
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/
    
./Post n°94   Marquer comme non lu.
Folco Ecrit le: Vendredi 6 janvier 2006 à 13:32 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


et il y a des macros en C pour faire en asm ce que le langage ne permet pas directement...
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°95   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 6 janvier 2006 à 16:57 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


LionelA :
le SMC est un hack ?

Oui, bien sûr!
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
  :: Index » GFA-Basic TI68K » Bugs et suggestions » Problème avec une font (106 réponse(s))
Pages : 5/6     « 1 2 3 4 [5] 6 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 56.81ms avec 18 requetes