Fixes SIGSEGVs and weird coordinates of viewports when resizing the screen (w/ and w/o zoom, with resolution change or window resize)
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@406 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
8862c1994f
commit
a81bc2c1a4
18
graph.c
18
graph.c
@ -336,14 +336,30 @@ void Initialiser_mode_video(int Largeur, int Hauteur, int Fullscreen)
|
||||
Brouillon_Loupe_Mode=0; // | la résolution.
|
||||
}
|
||||
if (Loupe_Mode)
|
||||
{
|
||||
Pixel_Preview=Pixel_Preview_Loupe;
|
||||
}
|
||||
else
|
||||
{
|
||||
Pixel_Preview=Pixel_Preview_Normal;
|
||||
// Recaler la vue (meme clipping que dans Scroller_ecran())
|
||||
if (Principal_Decalage_X+Largeur_ecran>Principal_Largeur_image)
|
||||
Principal_Decalage_X=Principal_Largeur_image-Largeur_ecran;
|
||||
else if (Principal_Decalage_X<0)
|
||||
Principal_Decalage_X=0;
|
||||
if (Principal_Decalage_Y+Menu_Ordonnee>Principal_Hauteur_image)
|
||||
Principal_Decalage_Y=Principal_Hauteur_image-Menu_Ordonnee;
|
||||
else if (Principal_Decalage_Y<0)
|
||||
Principal_Decalage_Y=0;
|
||||
}
|
||||
|
||||
Calculer_donnees_loupe();
|
||||
if (Loupe_Mode)
|
||||
Recadrer_ecran_par_rapport_au_zoom();
|
||||
Calculer_limites();
|
||||
Calculer_coordonnees_pinceau();
|
||||
|
||||
Afficher_ecran();
|
||||
|
||||
Resize_Largeur=0;
|
||||
Resize_Hauteur=0;
|
||||
}
|
||||
|
||||
@ -1233,6 +1233,13 @@ void Calculer_donnees_loupe(void)
|
||||
Loupe_Decalage_X=Principal_Largeur_image-Loupe_Largeur;
|
||||
if (Loupe_Decalage_X<0) Loupe_Decalage_X=0;
|
||||
}
|
||||
if (Loupe_Mode && Loupe_Decalage_Y)
|
||||
{
|
||||
if (Principal_Hauteur_image<Loupe_Decalage_Y+Loupe_Hauteur)
|
||||
Loupe_Decalage_Y=Principal_Hauteur_image-Loupe_Hauteur;
|
||||
if (Loupe_Decalage_Y<0) Loupe_Decalage_Y=0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user