- Timestamp:
- Aug 29, 2008, 2:03:50 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpipi/trunk/pipi/filter/blur.c
r2801 r2802 29 29 30 30 #if !defined TEMPLATE_FILE /* This file uses the template system */ 31 #define TEMPLATE_FLAGS SET_FLAG_GRAY 31 #define TEMPLATE_FLAGS SET_FLAG_GRAY | SET_FLAG_WRAP 32 32 #define TEMPLATE_FILE "filter/blur.c" 33 33 #include "pipi_template.h" … … 132 132 pipi_image_t *pipi_box_blur_ext(pipi_image_t *src, int m, int n) 133 133 { 134 if(src->last_modified == PIPI_PIXELS_Y_F) 135 return boxblur_gray(src, m, n); 136 137 return boxblur(src, m, n); 134 if(src->wrap) 135 { 136 if(src->last_modified == PIPI_PIXELS_Y_F) 137 return boxblur_gray_wrap(src, m, n); 138 139 return boxblur_wrap(src, m, n); 140 } 141 else 142 { 143 if(src->last_modified == PIPI_PIXELS_Y_F) 144 return boxblur_gray(src, m, n); 145 146 return boxblur(src, m, n); 147 } 138 148 } 139 149 140 150 #else /* XXX: the following functions use the template system */ 141 151 142 /* FIXME: FLAG_WRAP */143 152 static pipi_image_t *SUFFIX(boxblur)(pipi_image_t *src, int m, int n) 144 153 { … … 147 156 float *srcdata, *dstdata; 148 157 double *acc; 149 int x, y, w, h, i, j, size;158 int x, y, w, h, i, j, i2, j2, size; 150 159 151 160 w = src->w; … … 172 181 for(j = -n; j <= n; j++) 173 182 { 174 int j2 = (j < 0) ? h - 1 - ((-j - 1) % h) : j % h; 183 if(FLAG_WRAP) 184 j2 = (j < 0) ? h - 1 - ((-j - 1) % h) : j % h; 185 else 186 j2 = (j < 0) ? 0 : (j >= h) ? h - 1 : j; 187 175 188 if(FLAG_GRAY) 176 189 t += srcdata[j2 * w + x]; … … 204 217 for(i = -m; i <= m; i++) 205 218 { 206 int i2 = (i < 0) ? w - 1 - ((-i - 1) % w) : i % w; 219 if(FLAG_WRAP) 220 i2 = (i < 0) ? w - 1 - ((-i - 1) % w) : i % w; 221 else 222 i2 = (i < 0) ? 0 : (i >= w) ? w - 1 : i; 207 223 208 224 if(FLAG_GRAY) … … 235 251 236 252 u = x - m; 237 u2 = (u < 0) ? w - 1 - ((-u - 1) % w) : u % w; 253 if(FLAG_WRAP) 254 u2 = (u < 0) ? w - 1 - ((-u - 1) % w) : u % w; 255 else 256 u2 = (u < 0) ? 0 : (u >= w) ? w - 1 : u; 238 257 v = x + m + 1; 239 v2 = (v < 0) ? w - 1 - ((-v - 1) % w) : v % w; 258 if(FLAG_WRAP) 259 v2 = (v < 0) ? w - 1 - ((-v - 1) % w) : v % w; 260 else 261 v2 = (v < 0) ? 0 : (v >= w) ? w - 1 : v; 240 262 if(FLAG_GRAY) 241 263 { … … 257 279 258 280 u = y - n; 259 u2 = (u < 0) ? w - 1 - ((-u - 1) % w) : u % w; 281 if(FLAG_WRAP) 282 u2 = (u < 0) ? w - 1 - ((-u - 1) % w) : u % w; 283 else 284 u2 = (u < 0) ? 0 : (u >= w) ? w - 1 : u; 260 285 v = y + n + 1; 261 v2 = (v < 0) ? w - 1 - ((-v - 1) % w) : v % w; 286 if(FLAG_WRAP) 287 v2 = (v < 0) ? w - 1 - ((-v - 1) % w) : v % w; 288 else 289 v2 = (v < 0) ? 0 : (v >= w) ? w - 1 : v; 262 290 if(FLAG_GRAY) 263 291 {
Note: See TracChangeset
for help on using the changeset viewer.