Fixes a SIGSEGV when using line,polyline,polygon etc. with a starting point below the picture (outside).

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@405 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2008-12-20 17:50:54 +00:00
parent 28805017a2
commit 8862c1994f
3 changed files with 16 additions and 6 deletions

View File

@ -800,6 +800,15 @@ void Remplir(byte Couleur_de_remplissage)
(Pos_Y<=Limite_Bas) )
Pixel_Preview(Pos_X,Pos_Y,Couleur);
}
// Affichage d'un point pour une preview, avec sa propre couleur
void Pixel_figure_Preview_auto(word Pos_X,word Pos_Y)
{
if ( (Pos_X>=Limite_Gauche) &&
(Pos_X<=Limite_Droite) &&
(Pos_Y>=Limite_Haut) &&
(Pos_Y<=Limite_Bas) )
Pixel_Preview(Pos_X,Pos_Y,Lit_pixel_dans_ecran_courant(Pos_X,Pos_Y));
}
// Affichage d'un point pour une preview en xor
void Pixel_figure_Preview_xor(word Pos_X,word Pos_Y,__attribute__((unused)) byte Couleur)

View File

@ -50,6 +50,7 @@ void Remplir(byte Couleur_de_remplissage);
void Remplacer(byte Nouvelle_couleur);
void Pixel_figure_Preview (word Pos_X,word Pos_Y,byte Couleur);
void Pixel_figure_Preview_auto(word Pos_X,word Pos_Y);
void Pixel_figure_Preview_xor(word Pos_X,word Pos_Y,byte Couleur);
void Pixel_figure_Dans_brosse(word Pos_X,word Pos_Y,byte Couleur);

View File

@ -523,7 +523,7 @@ void Ligne_0_5(void)
Pinceau_Forme=Pinceau_Forme_avant_operation;
Pixel_figure_Preview (Debut_X,Debut_Y,Lit_pixel_dans_ecran_courant(Debut_X,Debut_Y));
Pixel_figure_Preview_auto (Debut_X,Debut_Y);
Effacer_ligne_Preview (Debut_X,Debut_Y,Fin_X,Fin_Y);
Afficher_pinceau (Debut_X,Debut_Y,Couleur,0);
Tracer_ligne_Definitif(Debut_X,Debut_Y,Fin_X,Fin_Y,Couleur);
@ -636,7 +636,7 @@ void K_Ligne_0_6(void)
if ((Config.Coords_rel) && (Menu_visible))
Print_dans_menu("X:± 0 Y:± 0",0);
Pixel_figure_Preview (Debut_X,Debut_Y,Lit_pixel_dans_ecran_courant(Debut_X,Debut_Y));
Pixel_figure_Preview_auto (Debut_X,Debut_Y);
Effacer_ligne_Preview (Debut_X,Debut_Y,Fin_X,Fin_Y);
Pinceau_Forme=Pinceau_Forme_avant_operation;
@ -695,7 +695,7 @@ void K_Ligne_12_7(void)
{
// La série de ligne est terminée, il faut donc effacer la dernière
// preview de ligne
Pixel_figure_Preview (Debut_X,Debut_Y,Lit_pixel_dans_ecran_courant(Debut_X,Debut_Y));
Pixel_figure_Preview_auto (Debut_X,Debut_Y);
Effacer_ligne_Preview (Debut_X,Debut_Y,Fin_X,Fin_Y);
Afficher_curseur();
@ -2160,7 +2160,7 @@ void Polygone_12_9(void)
{
// La série de ligne est terminée, il faut donc effacer la dernière
// preview de ligne et relier le dernier point avec le premier
Pixel_figure_Preview (Debut_X,Debut_Y,Lit_pixel_dans_ecran_courant(Debut_X,Debut_Y));
Pixel_figure_Preview_auto (Debut_X,Debut_Y);
Effacer_ligne_Preview (Debut_X,Debut_Y,Fin_X,Fin_Y);
Operation_POP(&Fin_Y);
Operation_POP(&Fin_X);
@ -4561,7 +4561,7 @@ void Lignes_centrees_12_7(void)
Pinceau_Forme=Pinceau_Forme_avant_operation;
Pixel_figure_Preview (Debut_X,Debut_Y,Lit_pixel_dans_ecran_courant(Debut_X,Debut_Y));
Pixel_figure_Preview_auto (Debut_X,Debut_Y);
Effacer_ligne_Preview (Debut_X,Debut_Y,Dernier_X,Dernier_Y);
Smear_Debut=1;
@ -4589,7 +4589,7 @@ void Lignes_centrees_12_7(void)
Pinceau_Forme=Pinceau_Forme_avant_operation;
Pixel_figure_Preview (Debut_X,Debut_Y,Lit_pixel_dans_ecran_courant(Debut_X,Debut_Y));
Pixel_figure_Preview_auto (Debut_X,Debut_Y);
Effacer_ligne_Preview (Debut_X,Debut_Y,Dernier_X,Dernier_Y);
if ( (Config.Coords_rel) && (Menu_visible) )