More fixes of palette remapping. Todo: Button Swap needs a refresh, button Cancel requires a toolbar redraw.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@258 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2008-10-15 00:04:15 +00:00
parent 9fb162e748
commit 9434f76dfd
4 changed files with 13 additions and 5 deletions

View File

@ -364,7 +364,8 @@ void Remapper_ecran_apres_changement_couleurs_menu(void)
Mais ça va être chiant parce qu'ils peuvent être affichés en mode Loupe. Mais ça va être chiant parce qu'ils peuvent être affichés en mode Loupe.
Mais de toutes façons, c'est franchement facultatif... Mais de toutes façons, c'est franchement facultatif...
*/ */
Remappe_fond_fenetres(Table_de_conversion); // Remappage de la partie du fond de la fenetre qui cacherait le menu...
Remappe_fond_fenetres(Table_de_conversion, Hauteur_ecran-HAUTEUR_MENU*Menu_Facteur_Y, Hauteur_ecran);
} }
} }

View File

@ -1953,7 +1953,7 @@ short Fenetre_Bouton_clicke(void)
// Fonction qui sert à remapper les parties sauvegardées derriere les // Fonction qui sert à remapper les parties sauvegardées derriere les
// fenetres ouvertes. C'est utilisé par exemple par la fenetre de palette // fenetres ouvertes. C'est utilisé par exemple par la fenetre de palette
// Qui remappe des couleurs, afin de propager les changements. // Qui remappe des couleurs, afin de propager les changements.
void Remappe_fond_fenetres(byte * Table_de_conversion) void Remappe_fond_fenetres(byte * Table_de_conversion, int Min_Y, int Max_Y)
{ {
int Indice_fenetre; int Indice_fenetre;
byte* EDI; byte* EDI;
@ -1964,8 +1964,15 @@ void Remappe_fond_fenetres(byte * Table_de_conversion)
EDI = Fond_fenetre[Indice_fenetre]; EDI = Fond_fenetre[Indice_fenetre];
// Pour chaque ligne // Pour chaque ligne
for(dx=Pile_Fenetre_Hauteur[Indice_fenetre];dx>0;dx--) for(dx=0; dx<Pile_Fenetre_Hauteur[Indice_fenetre];dx++)
{ {
if (dx+Pile_Fenetre_Pos_Y[Indice_fenetre]>Max_Y)
return;
if (dx+Pile_Fenetre_Pos_Y[Indice_fenetre]<Min_Y)
{
EDI += Pile_Fenetre_Largeur[Indice_fenetre];
}
else
// Pour chaque pixel // Pour chaque pixel
for(cx=Pile_Fenetre_Largeur[Indice_fenetre];cx>0;cx--) for(cx=Pile_Fenetre_Largeur[Indice_fenetre];cx>0;cx--)
{ {

View File

@ -65,4 +65,4 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click);
short Fenetre_Bouton_clicke(void); short Fenetre_Bouton_clicke(void);
int Numero_bouton_sous_souris(void); int Numero_bouton_sous_souris(void);
short Fenetre_Numero_bouton_clicke(void); short Fenetre_Numero_bouton_clicke(void);
void Remappe_fond_fenetres(byte * Table_de_conversion); void Remappe_fond_fenetres(byte * Table_de_conversion, int Min_Y, int Max_Y);

View File

@ -200,7 +200,7 @@ void Remap_image_HIGH(byte * Table_de_conversion)
Menu_Ordonnee_avant_fenetre,Table_de_conversion); Menu_Ordonnee_avant_fenetre,Table_de_conversion);
} }
// Remappe tous les fonds de fenetre (qui doivent contenir un bout d'écran) // Remappe tous les fonds de fenetre (qui doivent contenir un bout d'écran)
Remappe_fond_fenetres(Table_de_conversion); Remappe_fond_fenetres(Table_de_conversion, 0, Hauteur_ecran-HAUTEUR_MENU*Menu_Facteur_Y);
} }