Changeset 00ddb40 in mainline for uspace/lib/softrend/filter.c
- Timestamp:
- 2014-08-31T20:10:20Z (10 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5713e5f
- Parents:
- 8d3512f1
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/softrend/filter.c
r8d3512f1 r00ddb40 38 38 #include <io/pixel.h> 39 39 40 40 41 static long round(double val) 41 42 { … … 59 60 } 60 61 61 static pixel_t get_pixel(pixelmap_t *pixmap, sysarg_t x, sysarg_t y, bool tile)62 {63 if (tile) {64 x %= pixmap->width;65 y %= pixmap->height;66 }67 68 return pixelmap_get_pixel(pixmap, (sysarg_t) x, (sysarg_t) y);69 }70 62 71 63 static inline pixel_t blend_pixels(size_t count, float *weights, … … 84 76 } 85 77 86 pixel_t filter_nearest(pixelmap_t *pixmap, double x, double y, bool tile) 78 pixel_t filter_nearest(pixelmap_t *pixmap, double x, double y, 79 pixelmap_extend_t extend) 87 80 { 88 return get_pixel(pixmap, round(x), round(y), tile);81 return pixelmap_get_extended_pixel(pixmap, round(x), round(y), extend); 89 82 } 90 83 91 pixel_t filter_bilinear(pixelmap_t *pixmap, double x, double y, bool tile) 84 pixel_t filter_bilinear(pixelmap_t *pixmap, double x, double y, 85 pixelmap_extend_t extend) 92 86 { 93 87 long x1 = floor(x); … … 97 91 98 92 if (y1 == y2 && x1 == x2) { 99 return get_pixel(pixmap, (sysarg_t) x1, (sysarg_t) y1,100 tile);93 return pixelmap_get_extended_pixel(pixmap, 94 (sysarg_t) x1, (sysarg_t) y1, extend); 101 95 } 102 96 … … 105 99 106 100 pixel_t pixels[4]; 107 pixels[0] = get_pixel(pixmap, x1, y1, tile);108 pixels[1] = get_pixel(pixmap, x2, y1, tile);109 pixels[2] = get_pixel(pixmap, x1, y2, tile);110 pixels[3] = get_pixel(pixmap, x2, y2, tile);101 pixels[0] = pixelmap_get_extended_pixel(pixmap, x1, y1, extend); 102 pixels[1] = pixelmap_get_extended_pixel(pixmap, x2, y1, extend); 103 pixels[2] = pixelmap_get_extended_pixel(pixmap, x1, y2, extend); 104 pixels[3] = pixelmap_get_extended_pixel(pixmap, x2, y2, extend); 111 105 112 106 float weights[4]; … … 119 113 } 120 114 121 pixel_t filter_bicubic(pixelmap_t *pixmap, double x, double y, bool tile) 115 pixel_t filter_bicubic(pixelmap_t *pixmap, double x, double y, 116 pixelmap_extend_t extend) 122 117 { 123 118 // TODO
Note:
See TracChangeset
for help on using the changeset viewer.