Pages: [1] 2   Bas de page
Imprimer
Auteur Fil de discussion: [Résolu/PAlib] Custom Font 16c et couleur  (Lu 2617 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Rainbow Hors ligne
Jr. Member
**
Messages: 80


Voir le profil WWW
« 16 Décembre 2007, 22:09:10 »

Bon, j'ai créé ma propre police avec DSfont, dans la couleur que je la voulais et sur fond magenta pour la transparence. Seulement quand j'essais de l'utiliser avec PA_16cText, je n'arrive qu'à l'afficher dans les couleurs par défaut (blanc, noir et les autres couleurs criardes qui ne collent tout simplement pas avec mon application).

Bon à la limite je peux bien me débrouiller avec le noir, mais je préférerais quand même pouvoir l'afficher dans la couleur de mon choix. Est-ce possible?
Journalisée

Copper Hors ligne
Mega Member
***
Messages: 1296


Voir le profil
« Réponse #1 : 16 Décembre 2007, 22:35:15 »

A mon avis il faut modifier la palette pour obtenir des autres couleurs...

Journalisée
Arialia Hors ligne
Elite Member
**
Messages: 868


Voir le profil
« Réponse #2 : 16 Décembre 2007, 23:01:15 »

copper : tu lis dans mes pensées  Shocked  Wink
Journalisée

Mon blog de dev   - -  Mon tutoriel sur la libfat -- DSPhoto
Un bon programmeur est fainéant : il déteste refaire la même chose, il fait donc des fonctions Wink

Mais qui m'a mis des nounours roses ? Le rose c'est pour les homo et les gamines , beurk, mais ça va bien aux fleurs Smiley
Et aux jeux de Genevois Wink
Rainbow Hors ligne
Jr. Member
**
Messages: 80


Voir le profil WWW
« Réponse #3 : 16 Décembre 2007, 23:46:28 »

ok... mais elle est où cette palette là? Parce que je regarde le fichier PA_16c.c et je ne vois rien là dedans qui défini les couleurs possible du texte... (ou bien je sais juste pas à quoi c'est supposé ressembler).
Journalisée

Copper Hors ligne
Mega Member
***
Messages: 1296


Voir le profil
« Réponse #4 : 17 Décembre 2007, 09:16:41 »

Je pense que la palette est définie dans PA_Init16cBgEx par :

   PA_SetBgPalCol(screen, (npalette<<4)+1, PA_RGB(31, 31, 31)); // Blanc
   PA_SetBgPalCol(screen, (npalette<<4)+2, PA_RGB(31, 0, 0));    // Rouge
   PA_SetBgPalCol(screen, (npalette<<4)+3, PA_RGB(0, 31, 0));    // Vert
   PA_SetBgPalCol(screen, (npalette<<4)+4, PA_RGB(0, 0, 31));    // Bleu
   PA_SetBgPalCol(screen, (npalette<<4)+5, PA_RGB(31, 0, 31));  // Fushia
   PA_SetBgPalCol(screen, (npalette<<4)+6, PA_RGB(0, 31, 31));  // Cyan
   PA_SetBgPalCol(screen, (npalette<<4)+7, PA_RGB(31, 31, 0));  // Jaune
   PA_SetBgPalCol(screen, (npalette<<4)+8, PA_RGB(25, 25, 25)); // Gris clair
   PA_SetBgPalCol(screen, (npalette<<4)+9, PA_RGB(20, 20, 20)); // Gris foncé
   PA_SetBgPalCol(screen, (npalette<<4)+10, PA_RGB(0, 0, 0));    // Noir


Ariala : oui c'est une de mes nombreuses facultés de lire dans les pensées Smiley
Journalisée
frozenjazz Hors ligne
Full Member
***
Messages: 209


Voir le profil
« Réponse #5 : 17 Décembre 2007, 11:20:58 »

Je suis un gros noob, donc moi j'ai fait ca (avec un doute sur la nécessité du align.... et je ne sais pas encore à quoi sert __attribute__ si vous pouviez m'en dire plus...) pour avoir mes petites couleurs dans le texte de LinesCS:

Code:
const unsigned short text_Pal[16] __attribute__ ((aligned (4))) =
      {PA_RGB(0,0,0), PA_RGB(31,25,31), PA_RGB(25,15,25), PA_RGB(31, 30,31), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

PA_LoadPal16(PAL_BG0, 15, text_Pal);
PA_16cCustomFont(5, trebuchet_16);  // trebuchet c'est ma police...

// puis ensuite par exemple:
PA_16cText(1, 10, 10, 255, 40, "mon texte", 2, 5, 100);       // couleur 2, police 5

« Dernière édition: 17 Décembre 2007, 11:23:34 par frozenjazz » Journalisée
Copper Hors ligne
Mega Member
***
Messages: 1296


Voir le profil
« Réponse #6 : 17 Décembre 2007, 12:21:37 »

Ca m'a l'air pas mal Smiley

Journalisée
frozenjazz Hors ligne
Full Member
***
Messages: 209


Voir le profil
« Réponse #7 : 17 Décembre 2007, 13:59:02 »

Ca m'a l'air pas mal Smiley

C'est à dire ?  Shocked Comprends pô...

Par contre donc j'ai des questions techniques:
   - le "align" est-il utile là ?
   - le "__attribute__", ca fait quoi, de manière générale, et là, dans ce contexte, est-ce utile ?
   - qu'utilisez vous pour rendre vos images "RGB 5-5-5" compatibles ?  (donc utilisables, tout   simplement !!)
      => ca pourrait être cool d'intégrer un tel outil dans la PAlib, mais c'est peut-etre déjà le cas ?
 
Et sinon désolé, Cid... C'est pas cool comme news  Cry
Journalisée
PypeBros Hors ligne
Hero Member
*****
Messages: 707


Voir le profil WWW
Posez-vous les bonnes questions

« Réponse #8 : 17 Décembre 2007, 14:02:11 »

PAGfx me semble tout indiqué (non?)
quand au "attribute(align(4))", il indique au compilo de s'assurer que l'adresse du tableau sera un multiple de 4, bien que les éléments ne fassent que 2 bytes chacuns. A moins qu'une méthode de copie très spéciale ne soit utilisée sur ce tableau (genre DMA avec des mots de 32 bits), c'est franchement superflu (imho).
Journalisée

frozenjazz Hors ligne
Full Member
***
Messages: 209


Voir le profil
« Réponse #9 : 17 Décembre 2007, 14:06:32 »

PAGfx me semble tout indiqué (non?)

ah, ben donc, j'ai bien loupé quelque chose alors...
Car bien sur j'utilise PAGfx, ca marche nickel, mais si je veux un affichage correct sur la DS, mon image "8bits" ou "256 couleurs" en entrée doit être au préalable bien encodée en RGB 5-5-5...

Et c'est très clair: si je ne le fais pas, PAGfx me trouve par exemple 73 couleurs distinctes, au lieu de 240.... il loupe toutes les nuances ou R ou G ou B a une valeur > 32... enfin si je comprends bien...

Citation
quand au "attribute(align(4))", il indique au compilo de s'assurer que l'adresse du tableau sera un multiple de 4, bien que les éléments ne fassent que 2 bytes chacuns. A moins qu'une méthode de copie très spéciale ne soit utilisée sur ce tableau (genre DMA avec des mots de 32 bits), c'est franchement superflu (imho).

oki... j'ai pompé ce attribute et align quelque part sans savoir si c'était nécessaire là ou pas !
Journalisée
Copper Hors ligne
Mega Member
***
Messages: 1296


Voir le profil
« Réponse #10 : 17 Décembre 2007, 14:21:52 »

A mon avis il divise les composantes par 8 donc forcément ca peut diminuer la palette... Après l'ideal serait peut-être de faire un petit dithering (pour les dégradés) mais je sais pas si PAGfx le fait
Journalisée
frozenjazz Hors ligne
Full Member
***
Messages: 209


Voir le profil
« Réponse #11 : 17 Décembre 2007, 14:30:07 »

A mon avis il divise les composantes par 8 donc forcément ca peut diminuer la palette... Après l'ideal serait peut-être de faire un petit dithering (pour les dégradés) mais je sais pas si PAGfx le fait

ah mais non, enfin je veux dire, le dithering, ok, ca je le fais dans mon toshop...
Mon image est NI-CKEL avec ses 240 couleurs... mais reste à répartir ces couleurs et là, la seule solution, c'est d'encoder en RGB "5-5-5", certains appellent ca RGB15, et je suis sur avoir vu trainer un RGB15.exe, mais j'ai du mal à croire que je suis le seul à avoir le problème...

Comment faites vous pour encoder un dégradé de gris, par exemple ? Et que le résultat sur la DS soit aussi "smooth" et beau que l'image d'origine en 256 couleurs ?

EDIT: juste pour info, j'ai trouvé le filtre ici:  http://www.telegraphics.com.au/sw/ chercher "5_6_5 Filter"
« Dernière édition: 17 Décembre 2007, 14:34:22 par frozenjazz » Journalisée
zeblackos Hors ligne
VIP
****
Messages: 1204


Voir le profil
Apple][ fan - Disciple Molluskien depuis 1907

« Réponse #12 : 17 Décembre 2007, 15:17:40 »

molto bene Frozenjazz... thanx !
 Azn
Journalisée
Copper Hors ligne
Mega Member
***
Messages: 1296


Voir le profil
« Réponse #13 : 17 Décembre 2007, 15:27:22 »

L'idéal serait de trouver un filtre qui divise par 8 les composantes RGB de ton images avec un dithering (répercussion de l'erreur du au reste de la division entière par 8 sur les pixels voisins)... Ensuite le filtre peut remultiplier par 8 pour revenir à une image 24bits (si le logiciel ne gére pas les images RGB15)... Seulement toutes les composantes RGB seront toujours en 24 bits mais avec les 3 derniers bits à 0 donc du coup le passage en 15 bits de cette nouvelle image devrait se faire sans changements visuels...

Maintenant je ne sais pas si un tel filtre existe...
« Dernière édition: 17 Décembre 2007, 16:14:28 par Copper » Journalisée
frozenjazz Hors ligne
Full Member
***
Messages: 209


Voir le profil
« Réponse #14 : 17 Décembre 2007, 17:38:01 »

molto bene Frozenjazz... thanx !
 Azn

beuh... merci pour le merci, mais en fait je cherchais plutot des réponses...
C'est quand meme bizarre... mon premier test tout con, c'était d'afficher une "bete" image 256 couleurs...
Et ce test a foiré, donc je n'ai pas eu le choix... chercher un outil...

J'ai toujours ma question: comment font les autres !! Notamment les graphistes ici, ou meme Mollusk, qui a quand meme de beaux fonds...  Enfin, j'ai ma réponse, avec ce filtre, mais il y a surement des alternatives, comme un rgb15.exe qui semble avoir été un certain temps présent sur le site d'un certain dragonminded...
Journalisée
Pages: [1] 2   Haut de page
Imprimer

Aller à: