Fix part of issue 459: In anim mode, Color-replacer didn't refresh the screen
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1943 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
		
							parent
							
								
									020e57846b
								
							
						
					
					
						commit
						064bbebc5b
					
				
							
								
								
									
										14
									
								
								src/graph.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								src/graph.c
									
									
									
									
									
								
							@ -2693,7 +2693,7 @@ void Polyfill(int vertices, short * points, int color)
 | 
			
		||||
 | 
			
		||||
//------------ Remplacement de la couleur pointée par une autre --------------
 | 
			
		||||
 | 
			
		||||
void Replace(byte New_color)
 | 
			
		||||
void Replace(byte new_color)
 | 
			
		||||
{
 | 
			
		||||
  byte old_color;
 | 
			
		||||
 | 
			
		||||
@ -2701,11 +2701,17 @@ void Replace(byte New_color)
 | 
			
		||||
   && (Paintbrush_Y<Main_image_height))
 | 
			
		||||
  {
 | 
			
		||||
    old_color=Read_pixel_from_current_layer(Paintbrush_X,Paintbrush_Y);
 | 
			
		||||
    if ( (old_color!=New_color)
 | 
			
		||||
    if ( (old_color!=new_color)
 | 
			
		||||
      && ((!Stencil_mode) || (!Stencil[old_color])) )
 | 
			
		||||
    {
 | 
			
		||||
      Replace_a_color(old_color,New_color);
 | 
			
		||||
      Display_all_screen();
 | 
			
		||||
      word x;
 | 
			
		||||
      word y;
 | 
			
		||||
      
 | 
			
		||||
      // Update all pixels
 | 
			
		||||
      for (y=0; y<Main_image_height; y++)
 | 
			
		||||
        for (x=0; x<Main_image_width; x++)
 | 
			
		||||
          if (Read_pixel_from_current_layer(x,y) == old_color)
 | 
			
		||||
            Pixel_in_current_screen(x,y,new_color);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								src/misc.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								src/misc.c
									
									
									
									
									
								
							@ -229,21 +229,6 @@ byte Read_pixel_from_brush (word x, word y)
 | 
			
		||||
  return *(Brush + y * Brush_width + x);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Replace_a_color(byte old_color, byte new_color)
 | 
			
		||||
{
 | 
			
		||||
  word x;
 | 
			
		||||
  word y;
 | 
			
		||||
  
 | 
			
		||||
  // Update all pixels
 | 
			
		||||
  for (y=0; y<Main_image_height; y++)
 | 
			
		||||
    for (x=0; x<Main_image_width; x++)
 | 
			
		||||
      if (Read_pixel_from_current_layer(x,y) == old_color)
 | 
			
		||||
        Pixel_in_current_screen(x,y,new_color);
 | 
			
		||||
  Update_rect(0,0,0,0); // On peut TOUT a jour
 | 
			
		||||
  // C'est pas un problème car il n'y a pas de preview
 | 
			
		||||
}
 | 
			
		||||
// FIXME: move to graph.c, it's the only caller
 | 
			
		||||
 | 
			
		||||
void Ellipse_compute_limites(short horizontal_radius,short vertical_radius)
 | 
			
		||||
{
 | 
			
		||||
  Ellipse_horizontal_radius_squared =
 | 
			
		||||
 | 
			
		||||
@ -79,7 +79,6 @@ byte Pixel_in_circle(void);
 | 
			
		||||
void Init_chrono(dword delay);
 | 
			
		||||
void Check_timer(void);
 | 
			
		||||
 | 
			
		||||
void Replace_a_color(byte old_color, byte New_color);
 | 
			
		||||
void Replace_colors_within_limits(byte * replace_table);
 | 
			
		||||
 | 
			
		||||
byte Effect_interpolated_colorize  (word x,word y,byte color);
 | 
			
		||||
 | 
			
		||||
@ -1365,14 +1365,13 @@ void Replace_1_0(void)
 | 
			
		||||
//
 | 
			
		||||
{
 | 
			
		||||
  Hide_cursor();
 | 
			
		||||
  // Pas besoin d'initialiser le début d'opération car le Smear n'affecte pas
 | 
			
		||||
  // le Replace, et on se fout de savoir si on est dans la partie gauche ou
 | 
			
		||||
  // droite de la loupe.
 | 
			
		||||
  Init_start_operation();
 | 
			
		||||
  Backup();
 | 
			
		||||
//  Shade_table=Shade_table_left;
 | 
			
		||||
  Replace(Fore_color);
 | 
			
		||||
  Display_cursor();
 | 
			
		||||
  End_of_modification();
 | 
			
		||||
  Display_all_screen();
 | 
			
		||||
  Display_cursor();
 | 
			
		||||
  Wait_end_of_click();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1390,14 +1389,13 @@ void Replace_2_0(void)
 | 
			
		||||
    return;
 | 
			
		||||
  
 | 
			
		||||
  Hide_cursor();
 | 
			
		||||
  // Pas besoin d'initialiser le début d'opération car le Smear n'affecte pas
 | 
			
		||||
  // le Replace, et on se fout de savoir si on est dans la partie gauche ou
 | 
			
		||||
  // droite de la loupe.
 | 
			
		||||
  Init_start_operation();
 | 
			
		||||
  Backup();
 | 
			
		||||
//  Shade_table=Shade_table_right;
 | 
			
		||||
  Replace(Back_color);
 | 
			
		||||
  Display_cursor();
 | 
			
		||||
  End_of_modification();
 | 
			
		||||
  Display_all_screen();
 | 
			
		||||
  Display_cursor();
 | 
			
		||||
  Wait_end_of_click();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user