1

J'aimerais bien faire des fonts pour mon hibview. J'ai cherche et j'ai trouvé TFP (Ti Font Project de j2t). Si mes souvenirs sont bon, y'a aussi un projet de fichier font par geogeo...
C'est plutot pas mal, malgres qq reserves sur TFP:
- y'a un espace de deux pixels entre deux caracteres : inconveniant majeur : on ne peux pas faire les fonts du Ti-OS....
- une font doivent etre chargée (allouee sur un pointeur) en statique dans TFP : vraiment embetant si on veut utiliser plusieurs font differentes. Surtout qu'en fait, les font peuvent etre utilisee telles quel depuis le fichier FONT...
- surement par soucis de rapidite, pour chaque caractere, y'a un yoffset et un hauteur.
la structure d'un caractere est la suivante :
struct CHAR //forme d'un caractère //
{ //
char Yoffset; //decalage par rapport au 'top' //
char lar; //largeur //
char hau; //hauteur //
unsigned char map[12];//sprite //
};

hauteur est la place en hauteur que prend le caractere, et yoffset est 30*le nb de lignes a sauter avant de dessiner le caractere. (pour le signe moins en taille 2 du TIOS, yoffset=30*3 et hauteur=1).
Mais je trouve un peu lourd d'utiliser 256*2*1=512 octets pour cette optimisation...

Ca ne me plait pas trop de vouloir creer un nouveau format de FONT, d'autant plus que la j2t a fait du bon boulot puisqu'il y a un editeur de font et deja 3 fonts.
Je ne sais pas si il existe de version plus recente de TFP....
Mais j'aimerais qd meme optimiser tout ca.

J'aimerai avoir votre avis, vous programmeur avec TFP potentiel.
Il y a aussi des fonctions d'ecriture optimisé avec TFP. Peut-etre que les programmeurs de lib graphique (tinyx, extgraph,... ) pourrais donner leurs idees...

2

Mon idée c'est que tu ferais mieux d'utiliser GX_DrawChar tritop
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

3

regarde tinyX, tu trouveras peut etre ton bonheur tongue

4

En effet j'avais travaillé sur ma propre gestion des fonts capable de faire des taille variable avec un mode, italique, gras souligné, tous additionnable. Si tu veut je te donne les sources, mais le problèmes majeure et que je peux faire que 800 caractères par secondes à causes des routines que j'ai écrit en C.
Pour optimiser tout ça j'ai une meilleur idée maintenant, mais je reverrais ça quand je revienderais sur ce projet.

Il y a aussi qu'un font pour l'instant, un font presque identique au font du TIOS 4x6 mais avec des caractères acentué et de nouveaux caractères.
Le fichier font fait 2 Ko.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

5

L'interet de TFP est de pouvoir utiliser des font differentes. Je vois pas ce que je peux faire avec GX.... surtout que personnelement je n'aime pas du tout ta font a cause des é décalés vers le bas.
de meme pour tinyx. mais neuroo pourrais p-e modifier ses routines pour que ca marche des des font variables, etant donne que c'est encore en cours de dvpt. Mais bon, la vitesse risque de tomber un peu.

geogeo>oui je veux bien voir ce que tu as fait, si ca te derange pas. En plus gras souligne italique, tout ca m'interesse bcp. pour la vitesse, je pense que c'est normal d'etre aussi rapide que tinyx ou autre etant donne que tu fais des font a taille variable. Mais du moment qu'on est bien plus rapide que l'AMS, pour hibview je pense que ca peut suffire.

6

demande a neurone, pour faire des fontes perso c'est pas tres sorcier il devrait pouvoir te faire ca (enfin si il a prevu ca dans tinyX)

7

Voici le fichier h qui contient toute les fonctions que j'ai fait. Je t'autorise vivement à faire ce que tu veut avec et même me donner le résultat. Ah oui il faut extgraph.

http://perso.wanadoo.fr/tisofts/divers/WinFont.h

Je recoderais ça et je changerais le format pour que ça carbure à fond. Je coderais ça en ASM.

http://perso.wanadoo.fr/tisofts/divers/W_Fsys.9xy

Le premier font que j'ai fait. Il y a 256 caractères, néanmoins il reste un bug pour la fonction Italique, il n'est pas possible de donner une taille correcte des caractères.

Voici la structure font:

struct _Font
{
BOOL State;
unsigned char *File;
SYM_ENTRY *Sym;

unsigned char Name[24];
unsigned char X;
unsigned char Y;
unsigned char CharSpace;
unsigned char CharDebut;

unsigned char sprite[32];
};

struct _Font *font=NULL;

C'est un peu caca mais je me rend compte que j'ai progressé. smile

Les fonctions de sprites sont celle d'extgraph, la lenteur ne vient pas d'extgraph mais des multiplications et divisions que je fait....

Et enfin pour terminer:
Le ZIP qui contient tout les BMP de chaque caractères:
http://perso.wanadoo.fr/tisofts/divers/W_Fsys.zip

Le format du fichier ce comporte de cette façon:
-Nom du font. /0
-Taille X (1 octet) pui taille Y (1octet). Ce sont les tailles maximum, qui renseigne pour le mode italique...
-Table X de chaque caractères, chaque X fait un octet et cette table doit faire 256 octets.
-Table de sprites, les sprites sont les un à la suite des autres sans caractères intermédiare.

J'utilise DataToLib pour que ça fonctionne.

J'avais commencé un logiiciel sous VB pour faire ses fonts facilement dands ce format, mais à cause d'autre projets et la lenteur (1000 car/s) j'ai abandonné.
Le format n'est pas adapté pour la vitesse et la taille des données en mémoire. Je pense vraiment revoir ça un jours smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

8

geogeo
: Voici le fichier h qui contient toute les fonctions que j'ai fait. Je t'autorise vivement à faire ce que tu veut avec et même me donner le résultat.
avec plaisir smile
Le format n'est pas adapté pour la vitesse et la taille des données en mémoire. Je pense vraiment revoir ça un jours smile
je vais voir si je peux t'aider et apporter mes idees.

9

J'ai regarder un peu la, et c'est affectivement un bizarre (pour ne pas reprendre ton expression "caca")
bon, d'abord, contrairement a ce que tu m'a dis, un fichier FONT est commme ceci :
.b X
.b Y
.b Charspace
.b CharDebut
.b longeur de la chaine de cractere decrivant le nom du font
(256-chardebut)*1 table des X
(256-chardebut)*Y*1 table des sprites
Nom du font

Ca m'a l'air d'un bonne solution je changerais juste la description du nom du font :
.b X
.b Y
.b Charspace
.b CharDebut
(256-chardebut)*1 table des X
(256-chardebut)*Y*1 table des sprites
Nom du font \0

Quand a l'affichage du sprite, je le trouve vraiment particulier: tu recopie ton caractere dans une sprite local pour ensuite seulement l'afficher. Autant l'afficher tout de suite non ?
Ensuite, tu garde seulement en memoire le sym * pour connaitre ton font. Cela t'oblige a chaque fois que tu veut aller chercher un caractere de faire un heapderef et un tas d'addition :
HeapDeref(p->Sym->handle)+2+2+2+1+(256-p->CharDebut)+((p->Y*2)*(CharCode-p->CharDebut)))
je pense que c'est un peu lourd...
surtout que le sym * est, à moins d'un lockage des tables, assez volatile...
une solution plus simple que je te propose est de locker simplement la variable font et d'obtenir les pointeur sur les tableaux de X et de sprite dans la variable FONT directement.
Ce qui fait une structure Font suivante
uchar * name;
uchar X;
uchar Y;
uchar CharSpace;
uchar CharDeb;
uchar * TableX;
uchar * SpriteTable;

mes remarques amenes a changer pas mal de choses...

10

bon vu que je suis de bon humeur, si tu me donne le format de fonte que tu veux, je peux te faire une routine de fonte en asm qui gere le gras italique etc..

11

hibou> J'ai progressé entre temps. Et tout ce que tu me dis, je ne ferait plus comme ça, ainsi que l'écriture du code.

Pour le format, oui je crois que je l'avais changé, mais c'est faut ce que tu voit, c'est pour le futur format... grin
Prend celui que je t'ai dit.

N'hésite vraiment à tout modifier.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

12

geogeo>ok, on change tout grin
pour le format, c'est mieux de laisser le nom du font a la fin pour permettre une taille variable. J'ajouterais aussi au debut un octet pour enregistrer la version du format de font. Comme ca en cas de chgt, on peut toujours se debrouiller pour que ca marche avec les anciennes versions.

JackosKing>Je veux bien profiter de ta bonne humeur oui smile
voila ma structure qui decrit une font
typedef struct {
HANDLE h;
unsigned char filename[18];
unsigned char * name;
unsigned char X; //largeur de caractere max
unsigned char Y; //hauteur de caractere max
unsigned char * XTable;
unsigned char * SpriteTable;
} Font;

XTable -> tableau des largeurs de chaques caracteres ->fais donc 256 * 1 octets
#define getCharSize(font,caract) font.XTable[caract-font.FirstChar]
SprtieTable -> tableau des sprites . l'adresse d'un sprite est obtenue avec :
#define getCharSprite(font,caract) (font.SpriteTable+font.Y*(caract-font.FirstChar))

et geogeo avais defini ca :
enum Font_Mode {F_NORMAL = 0x01,
F_UNDERLINE = 0x02,
F_BARRE = 0x04,
F_BOLD = 0x08,
F_ITALIC = 0x10 };

voila,
bonne prog !

13

enum Font_Mode {F_NORMAL = 0x01,
F_UNDERLINE = 0x02,
F_BARRE = 0x04,
F_BOLD = 0x08,
F_ITALIC = 0x16 };

plutôt. grin
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

14

0x10 me paraît plus correct

15

gegeo: évite de confondre l'héxadécimal et le décimal quand même.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

16

lol, désolé. J'ai pas fait attention. C'est bien 0x10 (16)=16(10)
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

17

heu le italique tu le veux par un shift tout les pixels, tous les 2 pixel,s ou a la moitié de la lettre?

18

ha sinon si tu avais une fonte comme pour tester ce serait pas mal smile
thx

19

pour l'italique, tous les deux pixels serait bien

une font pour tester, je peux te proposer une copie des fonts de la Ti.
en fait je vais te passer ce que j'ai fait. Y'a un prog de test pour la comparaison en vitesse avec AMS.
Tu veras c'est un peu brut, y'a surement qq optimisation a faire, mais l'ago general est la, et ca marche
en fait, marlgre les modif que j'ai fait du code de geogeo, je ne gagne rien en vitesse, par contre je diminue de 10% le taille de code.
je le mets en ligne tout de suite.

20

ok thx

21

c'est moi qui avait fait TFP
mais bon c'était super sale et non optimisé
j'avais en effet fini une nouvelle version, multifonte et avec plein d'effets qui devait sortir avec mon éditeur de texte( certains doivent se rappeler ) mais j'ai voulu le reprendre récemment et j'ai paumé toutes les sources

je suis profondément désolé
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

22

erf je viens de me souvenir qu'un pote a peut-être une copie...
mais bon, hibou te fais pas de faux espoirs...
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

23

grr j'ai perdu mon projet sad((

24

non ?!?
comment t'as fait pour faire une betise pareil ? C'est la magie Windows ?... sad
tu compte le refaire ?

25

ouai je vais le refaire t'inquiette, ct juste que j'ai fait le menage un peu trop vite sur mon bureau sad

26

ca m'arrive des fois, mais heureusement pour moi, j'ai le norton unerase. tu devrais essayer tongue

27

Moi, je me rappelle de ce bel éditeur smile

28

neurone> huhu
Entièrement ecrit en pur GDI!!
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay