Implemented Meilleure_couleur_sans_exclusion().

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@281 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2008-10-17 21:01:47 +00:00
parent a223fcb9b6
commit 763087a626
5 changed files with 30 additions and 11 deletions

1
aide.c
View File

@ -30,6 +30,7 @@
#include "moteur.h" #include "moteur.h"
#include "tables_aide.h" #include "tables_aide.h"
#include "aide.h" #include "aide.h"
#include "sdlscreen.h"
#include <string.h> #include <string.h>

View File

@ -799,12 +799,6 @@ void Tempo_jauge(byte Vitesse)
} }
} }
byte Meilleure_couleur_sans_exclusion(byte Rouge,byte Vert,byte Bleu)
{
UNIMPLEMENTED
return 0;
}
void Set_color(byte Couleur, byte Rouge, byte Vert, byte Bleu) void Set_color(byte Couleur, byte Rouge, byte Vert, byte Bleu)
{ {
SDL_Color comp; SDL_Color comp;

View File

@ -91,9 +91,6 @@ void Tester_chrono(void);
void Remplacer_une_couleur(byte Ancienne_couleur, byte Nouvelle_couleur); void Remplacer_une_couleur(byte Ancienne_couleur, byte Nouvelle_couleur);
void Remplacer_toutes_les_couleurs_dans_limites(byte * Table_de_remplacement); void Remplacer_toutes_les_couleurs_dans_limites(byte * Table_de_remplacement);
byte Meilleure_couleur(byte Rouge,byte Vert,byte Bleu);
byte Meilleure_couleur_sans_exclusion(byte Rouge,byte Vert,byte Bleu);
byte Effet_Colorize_interpole (word X,word Y,byte Couleur); byte Effet_Colorize_interpole (word X,word Y,byte Couleur);
byte Effet_Colorize_additif (word X,word Y,byte Couleur); byte Effet_Colorize_additif (word X,word Y,byte Couleur);
byte Effet_Colorize_soustractif(word X,word Y,byte Couleur); byte Effet_Colorize_soustractif(word X,word Y,byte Couleur);

28
graph.c
View File

@ -143,6 +143,32 @@ byte Meilleure_couleur(byte R,byte V,byte B)
return Best_color; return Best_color;
} }
byte Meilleure_couleur_sans_exclusion(byte Rouge,byte Vert,byte Bleu)
{
short Coul;
int Delta_R,Delta_V,Delta_B;
int Dist;
int Best_dist=0x7FFFFFFF;
byte Best_color=0;
for (Coul=0; Coul<256; Coul++)
{
Delta_R=(int)Principal_Palette[Coul].R-Rouge;
Delta_V=(int)Principal_Palette[Coul].V-Vert;
Delta_B=(int)Principal_Palette[Coul].B-Bleu;
if (!(Dist=(Delta_R*Delta_R*30)+(Delta_V*Delta_V*59)+(Delta_B*Delta_B*11)))
return Coul;
if (Dist<Best_dist)
{
Best_dist=Dist;
Best_color=Coul;
}
}
return Best_color;
}
void Calculer_les_4_meilleures_couleurs_pour_1_couleur_du_menu void Calculer_les_4_meilleures_couleurs_pour_1_couleur_du_menu
(byte Rouge, byte Vert, byte Bleu, struct Composantes * Palette, byte * Table) (byte Rouge, byte Vert, byte Bleu, struct Composantes * Palette, byte * Table)
{ {
@ -3474,7 +3500,6 @@ void Remap_brosse(void)
for (Couleur=0;Couleur<=255;Couleur++) for (Couleur=0;Couleur<=255;Couleur++)
if (Utilisee[Couleur]) if (Utilisee[Couleur])
Utilisee[Couleur]=Meilleure_couleur(Brouillon_Palette[Couleur].R,Brouillon_Palette[Couleur].V,Brouillon_Palette[Couleur].B); Utilisee[Couleur]=Meilleure_couleur(Brouillon_Palette[Couleur].R,Brouillon_Palette[Couleur].V,Brouillon_Palette[Couleur].B);
//Utilisee[Couleur]=Meilleure_couleur_sans_exclusion(Brouillon_Palette[Couleur].R,Brouillon_Palette[Couleur].V,Brouillon_Palette[Couleur].B);
// Il reste une couleur non calculée dans la table qu'il faut mettre à // Il reste une couleur non calculée dans la table qu'il faut mettre à
// jour: c'est la couleur de fond. On l'avait inhibée pour éviter son // jour: c'est la couleur de fond. On l'avait inhibée pour éviter son
@ -3519,7 +3544,6 @@ void Remap_picture(void)
for (Couleur=0;Couleur<=255;Couleur++) for (Couleur=0;Couleur<=255;Couleur++)
if (Utilisee[Couleur]) if (Utilisee[Couleur])
Utilisee[Couleur]=Meilleure_couleur(Brouillon_Palette[Couleur].R,Brouillon_Palette[Couleur].V,Brouillon_Palette[Couleur].B); Utilisee[Couleur]=Meilleure_couleur(Brouillon_Palette[Couleur].R,Brouillon_Palette[Couleur].V,Brouillon_Palette[Couleur].B);
//Utilisee[Couleur]=Meilleure_couleur_sans_exclusion(Brouillon_Palette[Couleur].R,Brouillon_Palette[Couleur].V,Brouillon_Palette[Couleur].B);
// Maintenant qu'on a une super table de conversion qui n'a que le nom // Maintenant qu'on a une super table de conversion qui n'a que le nom
// qui craint un peu, on peut faire l'échange dans la brosse de toutes les // qui craint un peu, on peut faire l'échange dans la brosse de toutes les

View File

@ -178,3 +178,6 @@ void Remap_picture(void);
#define ToWinY(y) (((y)*Menu_Facteur_Y)+Fenetre_Pos_Y) #define ToWinY(y) (((y)*Menu_Facteur_Y)+Fenetre_Pos_Y)
#define ToWinL(l) ((l)*Menu_Facteur_X) #define ToWinL(l) ((l)*Menu_Facteur_X)
#define ToWinH(h) ((h)*Menu_Facteur_X) #define ToWinH(h) ((h)*Menu_Facteur_X)
byte Meilleure_couleur(byte Rouge,byte Vert,byte Bleu);
byte Meilleure_couleur_sans_exclusion(byte Rouge,byte Vert,byte Bleu);