Fixed pixel-wise panning by chaning x, y vars to float
This commit is contained in:
		
							parent
							
								
									4f5ce2e828
								
							
						
					
					
						commit
						8dcb54705a
					
				
							
								
								
									
										16
									
								
								image.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								image.c
									
									
									
									
									
								
							| @ -554,8 +554,8 @@ bool img_zoom_out(img_t *img) { | |||||||
| 	return false; | 	return false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool img_move(img_t *img, int dx, int dy) { | bool img_move(img_t *img, float dx, float dy) { | ||||||
| 	int ox, oy; | 	float ox, oy; | ||||||
| 
 | 
 | ||||||
| 	if (img == NULL || img->im == NULL) | 	if (img == NULL || img->im == NULL) | ||||||
| 		return false; | 		return false; | ||||||
| @ -581,13 +581,13 @@ bool img_pan(img_t *img, direction_t dir, int d) { | |||||||
| 	 * d = 0: 1/5 of screen | 	 * d = 0: 1/5 of screen | ||||||
| 	 * d > 0: num of pixels | 	 * d > 0: num of pixels | ||||||
| 	 */ | 	 */ | ||||||
| 	int x, y; | 	float x, y; | ||||||
| 
 | 
 | ||||||
| 	if (img == NULL || img->im == NULL || img->win == NULL) | 	if (img == NULL || img->im == NULL || img->win == NULL) | ||||||
| 		return false; | 		return false; | ||||||
| 
 | 
 | ||||||
| 	if (d > 0) { | 	if (d > 0) { | ||||||
| 		x = y = MAX(1, d * img->zoom); | 		x = y = MAX(1, (float) d * img->zoom); | ||||||
| 	} else { | 	} else { | ||||||
| 		x = img->win->w / (d < 0 ? 1 : 5); | 		x = img->win->w / (d < 0 ? 1 : 5); | ||||||
| 		y = img->win->h / (d < 0 ? 1 : 5); | 		y = img->win->h / (d < 0 ? 1 : 5); | ||||||
| @ -595,13 +595,13 @@ bool img_pan(img_t *img, direction_t dir, int d) { | |||||||
| 
 | 
 | ||||||
| 	switch (dir) { | 	switch (dir) { | ||||||
| 		case DIR_LEFT: | 		case DIR_LEFT: | ||||||
| 			return img_move(img, x, 0); | 			return img_move(img, x, 0.0); | ||||||
| 		case DIR_RIGHT: | 		case DIR_RIGHT: | ||||||
| 			return img_move(img, -x, 0); | 			return img_move(img, -x, 0.0); | ||||||
| 		case DIR_UP: | 		case DIR_UP: | ||||||
| 			return img_move(img, 0, y); | 			return img_move(img, 0.0, y); | ||||||
| 		case DIR_DOWN: | 		case DIR_DOWN: | ||||||
| 			return img_move(img, 0, -y); | 			return img_move(img, 0.0, -y); | ||||||
| 	} | 	} | ||||||
| 	return false; | 	return false; | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								image.h
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								image.h
									
									
									
									
									
								
							| @ -43,8 +43,8 @@ typedef struct { | |||||||
| 	int h; | 	int h; | ||||||
| 
 | 
 | ||||||
| 	win_t *win; | 	win_t *win; | ||||||
| 	int x; | 	float x; | ||||||
| 	int y; | 	float y; | ||||||
| 
 | 
 | ||||||
| 	scalemode_t scalemode; | 	scalemode_t scalemode; | ||||||
| 	float zoom; | 	float zoom; | ||||||
| @ -75,7 +75,7 @@ bool img_zoom(img_t*, float); | |||||||
| bool img_zoom_in(img_t*); | bool img_zoom_in(img_t*); | ||||||
| bool img_zoom_out(img_t*); | bool img_zoom_out(img_t*); | ||||||
| 
 | 
 | ||||||
| bool img_move(img_t*, int, int); | bool img_move(img_t*, float, float); | ||||||
| bool img_pan(img_t*, direction_t, int); | bool img_pan(img_t*, direction_t, int); | ||||||
| bool img_pan_edge(img_t*, direction_t); | bool img_pan_edge(img_t*, direction_t); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bert Münnich
						Bert Münnich