Index: uspace/lib/softrend/filter.c
===================================================================
--- uspace/lib/softrend/filter.c	(revision 8d3512f119e2a44f134b45bad386692c49984b5b)
+++ uspace/lib/softrend/filter.c	(revision fb41d4498defd19c7349af2f58df51a13bfaddfd)
@@ -38,4 +38,5 @@
 #include <io/pixel.h>
 
+
 static long round(double val)
 {
@@ -59,13 +60,4 @@
 }
 
-static pixel_t get_pixel(pixelmap_t *pixmap, sysarg_t x, sysarg_t y, bool tile)
-{
-	if (tile) {
-		x %= pixmap->width;
-		y %= pixmap->height;
-	}
-
-	return pixelmap_get_pixel(pixmap, (sysarg_t) x, (sysarg_t) y);
-}
 
 static inline pixel_t blend_pixels(size_t count, float *weights,
@@ -84,10 +76,12 @@
 }
 
-pixel_t filter_nearest(pixelmap_t *pixmap, double x, double y, bool tile)
+pixel_t filter_nearest(pixelmap_t *pixmap, double x, double y,
+    pixelmap_extend_t extend)
 {
-	return get_pixel(pixmap, round(x), round(y), tile);
+	return pixelmap_get_extended_pixel(pixmap, round(x), round(y), extend);
 }
 
-pixel_t filter_bilinear(pixelmap_t *pixmap, double x, double y, bool tile)
+pixel_t filter_bilinear(pixelmap_t *pixmap, double x, double y,
+    pixelmap_extend_t extend)
 {
 	long x1 = floor(x);
@@ -97,6 +91,6 @@
 	
 	if (y1 == y2 && x1 == x2) {
-		return get_pixel(pixmap, (sysarg_t) x1, (sysarg_t) y1,
-		    tile);
+		return pixelmap_get_extended_pixel(pixmap,
+		    (sysarg_t) x1, (sysarg_t) y1, extend);
 	}
 	
@@ -105,8 +99,8 @@
 	
 	pixel_t pixels[4];
-	pixels[0] = get_pixel(pixmap, x1, y1, tile);
-	pixels[1] = get_pixel(pixmap, x2, y1, tile);
-	pixels[2] = get_pixel(pixmap, x1, y2, tile);
-	pixels[3] = get_pixel(pixmap, x2, y2, tile);
+	pixels[0] = pixelmap_get_extended_pixel(pixmap, x1, y1, extend);
+	pixels[1] = pixelmap_get_extended_pixel(pixmap, x2, y1, extend);
+	pixels[2] = pixelmap_get_extended_pixel(pixmap, x1, y2, extend);
+	pixels[3] = pixelmap_get_extended_pixel(pixmap, x2, y2, extend);
 	
 	float weights[4];
@@ -119,5 +113,6 @@
 }
 
-pixel_t filter_bicubic(pixelmap_t *pixmap, double x, double y, bool tile)
+pixel_t filter_bicubic(pixelmap_t *pixmap, double x, double y,
+    pixelmap_extend_t extend)
 {
 	// TODO
Index: uspace/lib/softrend/filter.h
===================================================================
--- uspace/lib/softrend/filter.h	(revision 8d3512f119e2a44f134b45bad386692c49984b5b)
+++ uspace/lib/softrend/filter.h	(revision fb41d4498defd19c7349af2f58df51a13bfaddfd)
@@ -40,9 +40,9 @@
 #include <io/pixelmap.h>
 
-typedef pixel_t (*filter_t)(pixelmap_t *, double, double, bool);
+typedef pixel_t (*filter_t)(pixelmap_t *, double, double, pixelmap_extend_t);
 
-extern pixel_t filter_nearest(pixelmap_t *, double, double, bool);
-extern pixel_t filter_bilinear(pixelmap_t *, double, double, bool);
-extern pixel_t filter_bicubic(pixelmap_t *, double, double, bool);
+extern pixel_t filter_nearest(pixelmap_t *, double, double, pixelmap_extend_t);
+extern pixel_t filter_bilinear(pixelmap_t *, double, double, pixelmap_extend_t);
+extern pixel_t filter_bicubic(pixelmap_t *, double, double, pixelmap_extend_t);
 
 #endif
