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.
 | 
			
		||||
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.
 | 
			
		||||
 *
 | 
			
		||||
 * 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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
{
 | 
			
		||||
  // 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;
 | 
			
		||||
    edi+=destination_width;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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_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
 | 
			
		||||
void Init_chrono(dword delay);
 | 
			
		||||
void Check_timer(void);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user