move circle/ellipse functions from misc.c to graph.c
void Ellipse_compute_limites(short horizontal_radius,short vertical_radius); byte Pixel_in_ellipse(void); byte Pixel_in_circle(void);
This commit is contained in:
parent
c03984fccb
commit
6be7cb1e9f
42
src/graph.c
42
src/graph.c
@ -59,6 +59,48 @@
|
|||||||
// Generic pixel-drawing function.
|
// Generic pixel-drawing function.
|
||||||
Func_pixel Pixel_figure;
|
Func_pixel Pixel_figure;
|
||||||
|
|
||||||
|
// Calcule les valeurs suivantes en fonction des deux paramètres:
|
||||||
|
//
|
||||||
|
// Ellipse_vertical_radius_squared
|
||||||
|
// Ellipse_horizontal_radius_squared
|
||||||
|
// Ellipse_Limit_High
|
||||||
|
// Ellipse_Limit_Low
|
||||||
|
static void Ellipse_compute_limites(short horizontal_radius,short vertical_radius)
|
||||||
|
{
|
||||||
|
Ellipse_horizontal_radius_squared =
|
||||||
|
(long)horizontal_radius * horizontal_radius;
|
||||||
|
Ellipse_vertical_radius_squared =
|
||||||
|
(long)vertical_radius * vertical_radius;
|
||||||
|
Ellipse_limit = (qword)Ellipse_horizontal_radius_squared * Ellipse_vertical_radius_squared;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Indique si le pixel se trouvant à Ellipse_cursor_X pixels
|
||||||
|
// (Ellipse_cursor_X>0 = à droite, Ellipse_cursor_X<0 = à gauche) et à
|
||||||
|
// Ellipse_cursor_Y pixels (Ellipse_cursor_Y>0 = en bas,
|
||||||
|
// Ellipse_cursor_Y<0 = en haut) du centre se trouve dans l'ellipse en
|
||||||
|
// cours.
|
||||||
|
static byte Pixel_in_ellipse(void)
|
||||||
|
{
|
||||||
|
qword ediesi = (qword)Ellipse_cursor_X * Ellipse_cursor_X * Ellipse_vertical_radius_squared +
|
||||||
|
(qword)Ellipse_cursor_Y * Ellipse_cursor_Y * Ellipse_horizontal_radius_squared;
|
||||||
|
if((ediesi) <= Ellipse_limit) return 255;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Indique si le pixel se trouvant à Circle_cursor_X pixels
|
||||||
|
// (Circle_cursor_X>0 = à droite, Circle_cursor_X<0 = à gauche) et à
|
||||||
|
// Circle_cursor_Y pixels (Circle_cursor_Y>0 = en bas,
|
||||||
|
// Circle_cursor_Y<0 = en haut) du centre se trouve dans le cercle en
|
||||||
|
// cours.
|
||||||
|
static byte Pixel_in_circle(void)
|
||||||
|
{
|
||||||
|
if(Circle_cursor_X * Circle_cursor_X +
|
||||||
|
Circle_cursor_Y * Circle_cursor_Y <= Circle_limit)
|
||||||
|
return 255;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/** Update the picture on screen, for the area passed in parameters.
|
/** Update the picture on screen, for the area passed in parameters.
|
||||||
*
|
*
|
||||||
* Takes into account the X/Y scrolling and zoom, and performs all safety checks so no updates will
|
* Takes into account the X/Y scrolling and zoom, and performs all safety checks so no updates will
|
||||||
|
|||||||
30
src/misc.c
30
src/misc.c
@ -247,34 +247,6 @@ byte Read_pixel_from_brush (word x, word y)
|
|||||||
return *(Brush + y * Brush_width + x);
|
return *(Brush + y * Brush_width + x);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ellipse_compute_limites(short horizontal_radius,short vertical_radius)
|
|
||||||
{
|
|
||||||
Ellipse_horizontal_radius_squared =
|
|
||||||
(long)horizontal_radius * horizontal_radius;
|
|
||||||
Ellipse_vertical_radius_squared =
|
|
||||||
(long)vertical_radius * vertical_radius;
|
|
||||||
Ellipse_limit = (qword)Ellipse_horizontal_radius_squared * Ellipse_vertical_radius_squared;
|
|
||||||
}
|
|
||||||
|
|
||||||
// FIXME: move to graph.c, it's the only caller
|
|
||||||
byte Pixel_in_ellipse(void)
|
|
||||||
{
|
|
||||||
qword ediesi = (qword)Ellipse_cursor_X * Ellipse_cursor_X * Ellipse_vertical_radius_squared +
|
|
||||||
(qword)Ellipse_cursor_Y * Ellipse_cursor_Y * Ellipse_horizontal_radius_squared;
|
|
||||||
if((ediesi) <= Ellipse_limit) return 255;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// FIXME: move to graph.c, it's the only caller
|
|
||||||
byte Pixel_in_circle(void)
|
|
||||||
{
|
|
||||||
if(Circle_cursor_X * Circle_cursor_X +
|
|
||||||
Circle_cursor_Y * Circle_cursor_Y <= Circle_limit)
|
|
||||||
return 255;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Copy_part_of_image_to_another(byte * source,word source_x,word source_y,word width,word height,word source_width,byte * dest,word dest_x,word dest_y,word destination_width)
|
void Copy_part_of_image_to_another(byte * source,word source_x,word source_y,word width,word height,word source_width,byte * dest,word dest_x,word dest_y,word destination_width)
|
||||||
{
|
{
|
||||||
// ESI = adresse de la source en (S_Pox_X,source_y)
|
// ESI = adresse de la source en (S_Pox_X,source_y)
|
||||||
@ -294,8 +266,6 @@ void Copy_part_of_image_to_another(byte * source,word source_x,word source_y,wor
|
|||||||
esi+=source_width;
|
esi+=source_width;
|
||||||
edi+=destination_width;
|
edi+=destination_width;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
byte Read_pixel_from_spare_screen(word x,word y)
|
byte Read_pixel_from_spare_screen(word x,word y)
|
||||||
|
|||||||
23
src/misc.h
23
src/misc.h
@ -54,29 +54,6 @@ byte Read_pixel_from_backup_screen (word x,word y);
|
|||||||
byte Read_pixel_from_feedback_screen (word x,word y);
|
byte Read_pixel_from_feedback_screen (word x,word y);
|
||||||
byte Read_pixel_from_brush (word x,word y);
|
byte Read_pixel_from_brush (word x,word y);
|
||||||
|
|
||||||
void Ellipse_compute_limites(short horizontal_radius,short vertical_radius);
|
|
||||||
// Calcule les valeurs suivantes en fonction des deux paramètres:
|
|
||||||
//
|
|
||||||
// Ellipse_vertical_radius_squared
|
|
||||||
// Ellipse_horizontal_radius_squared
|
|
||||||
// Ellipse_Limit_High
|
|
||||||
// Ellipse_Limit_Low
|
|
||||||
|
|
||||||
|
|
||||||
byte Pixel_in_ellipse(void);
|
|
||||||
// Indique si le pixel se trouvant à Ellipse_cursor_X pixels
|
|
||||||
// (Ellipse_cursor_X>0 = à droite, Ellipse_cursor_X<0 = à gauche) et à
|
|
||||||
// Ellipse_cursor_Y pixels (Ellipse_cursor_Y>0 = en bas,
|
|
||||||
// Ellipse_cursor_Y<0 = en haut) du centre se trouve dans l'ellipse en
|
|
||||||
// cours.
|
|
||||||
|
|
||||||
byte Pixel_in_circle(void);
|
|
||||||
// Indique si le pixel se trouvant à Circle_cursor_X pixels
|
|
||||||
// (Circle_cursor_X>0 = à droite, Circle_cursor_X<0 = à gauche) et à
|
|
||||||
// Circle_cursor_Y pixels (Circle_cursor_Y>0 = en bas,
|
|
||||||
// Circle_cursor_Y<0 = en haut) du centre se trouve dans le cercle en
|
|
||||||
// cours.
|
|
||||||
|
|
||||||
// Gestion du chrono dans les fileselects
|
// Gestion du chrono dans les fileselects
|
||||||
void Init_chrono(dword delay);
|
void Init_chrono(dword delay);
|
||||||
void Check_timer(void);
|
void Check_timer(void);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user