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 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
// fenetres ouvertes. C'est utilisé par exemple par la fenetre de palette
// 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;
byte* EDI;
@ -1964,8 +1964,15 @@ void Remappe_fond_fenetres(byte * Table_de_conversion)
EDI = Fond_fenetre[Indice_fenetre];
// 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
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);
int Numero_bouton_sous_souris(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);
}
// 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);
}