Fixed bad display and possible crash, when the zoomed area showed more than 512 pixels (requires resolution >1600)
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@824 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
0826798943
commit
33bb5622c0
7
global.h
7
global.h
@ -726,13 +726,6 @@ GFX2_GLOBAL byte Mask_table[256];
|
||||
|
||||
// -- Magnifier data
|
||||
|
||||
/// Pointer to ::Magnify_table[n] : table of multipliers used by the Magnifier.
|
||||
// FIXME: This only caches a multiplication. Maybe we should scrap it
|
||||
GFX2_GLOBAL word * Zoom_factor_table;
|
||||
/// Precomputed tables of multipliers used by the Magnifier.
|
||||
// FIXME: This only caches a multiplication. Maybe we should scrap it
|
||||
GFX2_GLOBAL word Magnify_table[NB_ZOOM_FACTORS][512];
|
||||
|
||||
#ifdef GLOBAL_VARIABLES
|
||||
word ZOOM_FACTOR[NB_ZOOM_FACTORS]={2,3,4,5,6,8,10,12,14,16,18,20};
|
||||
#else
|
||||
|
||||
18
init.c
18
init.c
@ -2168,24 +2168,6 @@ Erreur_sauvegarde_config:
|
||||
return ERROR_SAVING_CFG;
|
||||
}
|
||||
|
||||
|
||||
void Init_multiplication_tables(void)
|
||||
{
|
||||
word factor_index;
|
||||
word zoom_factor;
|
||||
word mult_index;
|
||||
|
||||
for (factor_index=0;factor_index<NB_ZOOM_FACTORS;factor_index++)
|
||||
{
|
||||
zoom_factor=ZOOM_FACTOR[factor_index];
|
||||
|
||||
for (mult_index=0;mult_index<512;mult_index++)
|
||||
{
|
||||
Magnify_table[factor_index][mult_index]=zoom_factor*mult_index;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// (Ré)assigne toutes les valeurs de configuration par défaut
|
||||
void Set_config_defaults(void)
|
||||
{
|
||||
|
||||
1
init.h
1
init.h
@ -27,7 +27,6 @@ void Init_buttons(void);
|
||||
void Init_operations(void);
|
||||
int Load_CFG(int reload_all);
|
||||
int Save_CFG(void);
|
||||
void Init_multiplication_tables(void);
|
||||
void Set_all_video_modes(void);
|
||||
void Set_config_defaults(void);
|
||||
void Init_sighandler(void);
|
||||
|
||||
2
main.c
2
main.c
@ -464,8 +464,6 @@ int Init_program(int argc,char * argv[])
|
||||
// On initialise les infos de la loupe:
|
||||
Main_magnifier_mode=0;
|
||||
Main_magnifier_factor=DEFAULT_ZOOM_FACTOR;
|
||||
Init_multiplication_tables();
|
||||
Zoom_factor_table=Magnify_table[2];
|
||||
Main_separator_proportion=INITIAL_SEPARATOR_PROPORTION;
|
||||
Spare_separator_proportion=INITIAL_SEPARATOR_PROPORTION;
|
||||
// On initialise les infos du mode smear:
|
||||
|
||||
@ -106,7 +106,7 @@ void Pixel_preview_magnifier_double (word x,word y,byte color)
|
||||
{
|
||||
// On est dedans
|
||||
int height;
|
||||
int y_zoom = Zoom_factor_table[y-Main_magnifier_offset_Y];
|
||||
int y_zoom = Main_magnifier_factor * (y-Main_magnifier_offset_Y);
|
||||
|
||||
if (Menu_Y - y_zoom < Main_magnifier_factor)
|
||||
// On ne doit dessiner qu'un morceau du pixel
|
||||
@ -116,7 +116,7 @@ void Pixel_preview_magnifier_double (word x,word y,byte color)
|
||||
height = Main_magnifier_factor;
|
||||
|
||||
Block_double(
|
||||
Zoom_factor_table[x-Main_magnifier_offset_X]+Main_X_zoom,
|
||||
Main_magnifier_factor * (x-Main_magnifier_offset_X) + Main_X_zoom,
|
||||
y_zoom, Main_magnifier_factor, height, color
|
||||
);
|
||||
}
|
||||
|
||||
4
pxquad.c
4
pxquad.c
@ -121,7 +121,7 @@ void Pixel_preview_magnifier_quad (word x,word y,byte color)
|
||||
{
|
||||
// On est dedans
|
||||
int height;
|
||||
int y_zoom = Zoom_factor_table[y-Main_magnifier_offset_Y];
|
||||
int y_zoom = Main_magnifier_factor * (y-Main_magnifier_offset_Y);
|
||||
|
||||
if (Menu_Y - y_zoom < Main_magnifier_factor)
|
||||
// On ne doit dessiner qu'un morceau du pixel
|
||||
@ -131,7 +131,7 @@ void Pixel_preview_magnifier_quad (word x,word y,byte color)
|
||||
height = Main_magnifier_factor;
|
||||
|
||||
Block_quad(
|
||||
Zoom_factor_table[x-Main_magnifier_offset_X]+Main_X_zoom,
|
||||
Main_magnifier_factor * (x-Main_magnifier_offset_X) + Main_X_zoom,
|
||||
y_zoom, Main_magnifier_factor, height, color
|
||||
);
|
||||
}
|
||||
|
||||
@ -91,7 +91,7 @@ void Pixel_preview_magnifier_simple (word x,word y,byte color)
|
||||
{
|
||||
// On est dedans
|
||||
int height;
|
||||
int y_zoom = Zoom_factor_table[y-Main_magnifier_offset_Y];
|
||||
int y_zoom = Main_magnifier_factor * (y-Main_magnifier_offset_Y);
|
||||
|
||||
if (Menu_Y - y_zoom < Main_magnifier_factor)
|
||||
// On ne doit dessiner qu'un morceau du pixel
|
||||
@ -101,7 +101,7 @@ void Pixel_preview_magnifier_simple (word x,word y,byte color)
|
||||
height = Main_magnifier_factor;
|
||||
|
||||
Block_simple(
|
||||
Zoom_factor_table[x-Main_magnifier_offset_X]+Main_X_zoom,
|
||||
Main_magnifier_factor * (x-Main_magnifier_offset_X) + Main_X_zoom,
|
||||
y_zoom, Main_magnifier_factor, height, color
|
||||
);
|
||||
}
|
||||
|
||||
4
pxtall.c
4
pxtall.c
@ -98,7 +98,7 @@ void Pixel_preview_magnifier_tall (word x,word y,byte color)
|
||||
{
|
||||
// On est dedans
|
||||
int height;
|
||||
int y_zoom = Zoom_factor_table[y-Main_magnifier_offset_Y];
|
||||
int y_zoom = Main_magnifier_factor * (y-Main_magnifier_offset_Y);
|
||||
|
||||
if (Menu_Y - y_zoom < Main_magnifier_factor)
|
||||
// On ne doit dessiner qu'un morceau du pixel
|
||||
@ -108,7 +108,7 @@ void Pixel_preview_magnifier_tall (word x,word y,byte color)
|
||||
height = Main_magnifier_factor;
|
||||
|
||||
Block_tall(
|
||||
Zoom_factor_table[x-Main_magnifier_offset_X]+Main_X_zoom,
|
||||
Main_magnifier_factor * (x-Main_magnifier_offset_X) + Main_X_zoom,
|
||||
y_zoom, Main_magnifier_factor, height, color
|
||||
);
|
||||
}
|
||||
|
||||
@ -113,7 +113,7 @@ void Pixel_preview_magnifier_tall2 (word x,word y,byte color)
|
||||
{
|
||||
// On est dedans
|
||||
int height;
|
||||
int y_zoom = Zoom_factor_table[y-Main_magnifier_offset_Y];
|
||||
int y_zoom = Main_magnifier_factor * (y-Main_magnifier_offset_Y);
|
||||
|
||||
if (Menu_Y - y_zoom < Main_magnifier_factor)
|
||||
// On ne doit dessiner qu'un morceau du pixel
|
||||
@ -123,7 +123,7 @@ void Pixel_preview_magnifier_tall2 (word x,word y,byte color)
|
||||
height = Main_magnifier_factor;
|
||||
|
||||
Block_tall2(
|
||||
Zoom_factor_table[x-Main_magnifier_offset_X]+Main_X_zoom,
|
||||
Main_magnifier_factor * (x-Main_magnifier_offset_X) + Main_X_zoom,
|
||||
y_zoom, Main_magnifier_factor, height, color
|
||||
);
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ void Pixel_preview_magnifier_triple (word x,word y,byte color)
|
||||
{
|
||||
// On est dedans
|
||||
int height;
|
||||
int y_zoom = Zoom_factor_table[y-Main_magnifier_offset_Y];
|
||||
int y_zoom = Main_magnifier_factor * (y-Main_magnifier_offset_Y);
|
||||
|
||||
if (Menu_Y - y_zoom < Main_magnifier_factor)
|
||||
// On ne doit dessiner qu'un morceau du pixel
|
||||
@ -122,7 +122,7 @@ void Pixel_preview_magnifier_triple (word x,word y,byte color)
|
||||
height = Main_magnifier_factor;
|
||||
|
||||
Block_triple(
|
||||
Zoom_factor_table[x-Main_magnifier_offset_X]+Main_X_zoom,
|
||||
Main_magnifier_factor * (x-Main_magnifier_offset_X) + Main_X_zoom,
|
||||
y_zoom, Main_magnifier_factor, height, color
|
||||
);
|
||||
}
|
||||
|
||||
4
pxwide.c
4
pxwide.c
@ -101,7 +101,7 @@ void Pixel_preview_magnifier_wide (word x,word y,byte color)
|
||||
{
|
||||
// On est dedans
|
||||
int height;
|
||||
int y_zoom = Zoom_factor_table[y-Main_magnifier_offset_Y];
|
||||
int y_zoom = Main_magnifier_factor * (y-Main_magnifier_offset_Y);
|
||||
|
||||
if (Menu_Y - y_zoom < Main_magnifier_factor)
|
||||
// On ne doit dessiner qu'un morceau du pixel
|
||||
@ -111,7 +111,7 @@ void Pixel_preview_magnifier_wide (word x,word y,byte color)
|
||||
height = Main_magnifier_factor;
|
||||
|
||||
Block_wide(
|
||||
Zoom_factor_table[x-Main_magnifier_offset_X]+Main_X_zoom,
|
||||
Main_magnifier_factor * (x-Main_magnifier_offset_X) + Main_X_zoom,
|
||||
y_zoom, Main_magnifier_factor, height, color
|
||||
);
|
||||
}
|
||||
|
||||
@ -109,7 +109,7 @@ void Pixel_preview_magnifier_wide2 (word x,word y,byte color)
|
||||
{
|
||||
// On est dedans
|
||||
int height;
|
||||
int y_zoom = Zoom_factor_table[y-Main_magnifier_offset_Y];
|
||||
int y_zoom = Main_magnifier_factor * (y-Main_magnifier_offset_Y);
|
||||
|
||||
if (Menu_Y - y_zoom < Main_magnifier_factor)
|
||||
// On ne doit dessiner qu'un morceau du pixel
|
||||
@ -119,7 +119,7 @@ void Pixel_preview_magnifier_wide2 (word x,word y,byte color)
|
||||
height = Main_magnifier_factor;
|
||||
|
||||
Block_wide2(
|
||||
Zoom_factor_table[x-Main_magnifier_offset_X]+Main_X_zoom,
|
||||
Main_magnifier_factor * (x-Main_magnifier_offset_X) + Main_X_zoom,
|
||||
y_zoom, Main_magnifier_factor, height, color
|
||||
);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user