fixed screen update for cursor outside screen
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@252 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
ff1d5d4dd6
commit
70a750e187
@ -3631,6 +3631,8 @@ void Bouton_Loupe(void)
|
|||||||
// On passe en mode loupe
|
// On passe en mode loupe
|
||||||
Loupe_Mode=1;
|
Loupe_Mode=1;
|
||||||
|
|
||||||
|
DEBUG("plop",1);
|
||||||
|
|
||||||
// La fonction d'affichage dans la partie image est désormais un affichage
|
// La fonction d'affichage dans la partie image est désormais un affichage
|
||||||
// spécial loupe.
|
// spécial loupe.
|
||||||
Pixel_Preview=Pixel_Preview_Loupe;
|
Pixel_Preview=Pixel_Preview_Loupe;
|
||||||
|
|||||||
30
graph.c
30
graph.c
@ -2407,7 +2407,7 @@ void Afficher_curseur(void)
|
|||||||
if (Fin_X<4)
|
if (Fin_X<4)
|
||||||
Ligne_horizontale_XOR(Mouse_X+3,Mouse_Y,4-Fin_X);
|
Ligne_horizontale_XOR(Mouse_X+3,Mouse_Y,4-Fin_X);
|
||||||
|
|
||||||
Fin_Y=(Mouse_Y+7>/*Menu_Ordonnee*/Hauteur_ecran)?Mouse_Y+7-/*Menu_Ordonnee*/Hauteur_ecran:0;
|
Fin_Y=(Mouse_Y+7>Hauteur_ecran)?Mouse_Y+7-Hauteur_ecran:0;
|
||||||
if (Fin_Y<4)
|
if (Fin_Y<4)
|
||||||
Ligne_verticale_XOR (Mouse_X,Mouse_Y+3,4-Fin_Y);
|
Ligne_verticale_XOR (Mouse_X,Mouse_Y+3,4-Fin_Y);
|
||||||
|
|
||||||
@ -2420,19 +2420,21 @@ void Afficher_curseur(void)
|
|||||||
Debut_Y=Mouse_Y-Curseur_Decalage_Y[Temp];
|
Debut_Y=Mouse_Y-Curseur_Decalage_Y[Temp];
|
||||||
|
|
||||||
for (Pos_X=Debut_X,Compteur_X=0;Compteur_X<15;Pos_X++,Compteur_X++)
|
for (Pos_X=Debut_X,Compteur_X=0;Compteur_X<15;Pos_X++,Compteur_X++)
|
||||||
|
{
|
||||||
|
if( Pos_X < 0 ) continue;
|
||||||
|
else if (Pos_X > Largeur_ecran) break;
|
||||||
for (Pos_Y=Debut_Y,Compteur_Y=0;Compteur_Y<15;Pos_Y++,Compteur_Y++)
|
for (Pos_Y=Debut_Y,Compteur_Y=0;Compteur_Y<15;Pos_Y++,Compteur_Y++)
|
||||||
{
|
{
|
||||||
|
if( Pos_Y < 0 ) continue;
|
||||||
|
else if (Pos_Y > Hauteur_ecran) break;
|
||||||
Couleur=SPRITE_CURSEUR[Temp][Compteur_Y][Compteur_X];
|
Couleur=SPRITE_CURSEUR[Temp][Compteur_Y][Compteur_X];
|
||||||
if ( (Pos_X>=0) && (Pos_X<Largeur_ecran)
|
FOND_CURSEUR[Compteur_Y][Compteur_X]=Lit_pixel(Pos_X,Pos_Y);
|
||||||
&& (Pos_Y>=0) && (Pos_Y<Hauteur_ecran) )
|
if (Couleur!=CM_Trans)
|
||||||
{
|
|
||||||
FOND_CURSEUR[Compteur_Y][Compteur_X]=Lit_pixel(Pos_X,Pos_Y);
|
|
||||||
if (Couleur!=CM_Trans)
|
|
||||||
Pixel(Pos_X,Pos_Y,Couleur);
|
Pixel(Pos_X,Pos_Y,Couleur);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SDL_UpdateRect(Ecran_SDL,Max(Debut_X,0),Max(Debut_Y,0),16,16);
|
SDL_UpdateRect(Ecran_SDL,Max(Debut_X,0),Max(Debut_Y,0),Compteur_X - 1,Compteur_Y-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -2716,11 +2718,17 @@ void Effacer_curseur(void)
|
|||||||
Debut_Y=Mouse_Y-Curseur_Decalage_Y[Temp];
|
Debut_Y=Mouse_Y-Curseur_Decalage_Y[Temp];
|
||||||
|
|
||||||
for (Pos_Y=Debut_Y,Compteur_Y=0;Compteur_Y<15;Pos_Y++,Compteur_Y++)
|
for (Pos_Y=Debut_Y,Compteur_Y=0;Compteur_Y<15;Pos_Y++,Compteur_Y++)
|
||||||
|
{
|
||||||
|
if(Pos_Y>=Hauteur_ecran) break;
|
||||||
for (Pos_X=Debut_X,Compteur_X=0;Compteur_X<15;Pos_X++,Compteur_X++)
|
for (Pos_X=Debut_X,Compteur_X=0;Compteur_X<15;Pos_X++,Compteur_X++)
|
||||||
if ( (Pos_X>=0) && (Pos_X<Largeur_ecran) && (Pos_Y>=0) && (Pos_Y<Hauteur_ecran) )
|
{
|
||||||
Pixel(Pos_X,Pos_Y,FOND_CURSEUR[Compteur_Y][Compteur_X]);
|
if ( (Pos_X<0) || (Pos_Y < 0)) continue;
|
||||||
|
else if (Pos_X>=Largeur_ecran) break;
|
||||||
|
Pixel(Pos_X,Pos_Y,FOND_CURSEUR[Compteur_Y][Compteur_X]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SDL_UpdateRect(Ecran_SDL,Max(Debut_X,0),Max(Debut_Y,0),16,16);
|
SDL_UpdateRect(Ecran_SDL,Max(Debut_X,0),Max(Debut_Y,0),Pos_X-Debut_X,Pos_Y-Debut_Y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!Cacher_pinceau)
|
if (!Cacher_pinceau)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user