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.
|
Brouillon_Loupe_Mode=0; // | la résolution.
|
||||||
}
|
}
|
||||||
if (Loupe_Mode)
|
if (Loupe_Mode)
|
||||||
|
{
|
||||||
Pixel_Preview=Pixel_Preview_Loupe;
|
Pixel_Preview=Pixel_Preview_Loupe;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
Pixel_Preview=Pixel_Preview_Normal;
|
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();
|
Calculer_donnees_loupe();
|
||||||
|
if (Loupe_Mode)
|
||||||
|
Recadrer_ecran_par_rapport_au_zoom();
|
||||||
Calculer_limites();
|
Calculer_limites();
|
||||||
Calculer_coordonnees_pinceau();
|
Calculer_coordonnees_pinceau();
|
||||||
|
Afficher_ecran();
|
||||||
|
|
||||||
Resize_Largeur=0;
|
Resize_Largeur=0;
|
||||||
Resize_Hauteur=0;
|
Resize_Hauteur=0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1233,6 +1233,13 @@ void Calculer_donnees_loupe(void)
|
|||||||
Loupe_Decalage_X=Principal_Largeur_image-Loupe_Largeur;
|
Loupe_Decalage_X=Principal_Largeur_image-Loupe_Largeur;
|
||||||
if (Loupe_Decalage_X<0) Loupe_Decalage_X=0;
|
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