| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -101,13 +101,13 @@ buffer_create_from_cairo_surface(int fd, cairo_surface_t *surface) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					void | 
					 | 
					 | 
					 | 
					void | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					blur_surface(cairo_surface_t *surface) | 
					 | 
					 | 
					 | 
					blur_surface(cairo_surface_t *surface, int margin) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{ | 
					 | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						cairo_surface_t *tmp; | 
					 | 
					 | 
					 | 
						cairo_surface_t *tmp; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						int32_t width, height, stride, x, y, z, w; | 
					 | 
					 | 
					 | 
						int32_t width, height, stride, x, y, z, w; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						uint8_t *src, *dst; | 
					 | 
					 | 
					 | 
						uint8_t *src, *dst; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						uint32_t *s, *d, a, p; | 
					 | 
					 | 
					 | 
						uint32_t *s, *d, a, p; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						int i, j, k, size = 23, half; | 
					 | 
					 | 
					 | 
						int i, j, k, size = 17, half; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						uint8_t kernel[100]; | 
					 | 
					 | 
					 | 
						uint8_t kernel[100]; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						double f; | 
					 | 
					 | 
					 | 
						double f; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -131,6 +131,9 @@ blur_surface(cairo_surface_t *surface) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							s = (uint32_t *) (src + i * stride); | 
					 | 
					 | 
					 | 
							s = (uint32_t *) (src + i * stride); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							d = (uint32_t *) (dst + i * stride); | 
					 | 
					 | 
					 | 
							d = (uint32_t *) (dst + i * stride); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							for (j = 0; j < width; j++) { | 
					 | 
					 | 
					 | 
							for (j = 0; j < width; j++) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								if (margin < j && j < width - margin && | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								    margin < i && i < height - margin) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									continue; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								x = 0; | 
					 | 
					 | 
					 | 
								x = 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								y = 0; | 
					 | 
					 | 
					 | 
								y = 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								z = 0; | 
					 | 
					 | 
					 | 
								z = 0; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -153,6 +156,9 @@ blur_surface(cairo_surface_t *surface) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							s = (uint32_t *) (dst + i * stride); | 
					 | 
					 | 
					 | 
							s = (uint32_t *) (dst + i * stride); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							d = (uint32_t *) (src + i * stride); | 
					 | 
					 | 
					 | 
							d = (uint32_t *) (src + i * stride); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							for (j = 0; j < width; j++) { | 
					 | 
					 | 
					 | 
							for (j = 0; j < width; j++) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								if (margin <= j && j < width - margin && | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								    margin <= i && i < height - margin) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									continue; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								x = 0; | 
					 | 
					 | 
					 | 
								x = 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								y = 0; | 
					 | 
					 | 
					 | 
								y = 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								z = 0; | 
					 | 
					 | 
					 | 
								z = 0; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |