static void supertwoxsai_generic_rgb565(unsigned width, unsigned height, int first, int last, uint16_t *src, unsigned src_stride, uint16_t *dst, unsigned dst_stride) { unsigned nextline, finish; nextline = (last) ? 0 : src_stride; for (; height; height--) { uint16_t *in = (uint16_t*)src; uint16_t *out = (uint16_t*)dst; for (finish = width; finish; finish -= 1) { supertwoxsai_declare_variables(uint16_t, in, nextline); //--------------------------- B1 B2 // 4 5 6 S2 // 1 2 3 S1 // A1 A2 //-------------------------------------- supertwoxsai_function(supertwoxsai_result, supertwoxsai_interpolate_rgb565, supertwoxsai_interpolate2_rgb565); } src += src_stride; dst += 2 * dst_stride; } }
void supertwoxsai_generic_xrgb8888(unsigned width, unsigned height, uint32_t *src, unsigned src_stride, uint32_t *dst, unsigned dst_stride) { unsigned finish; int y = 0; int x = 0; for(; height; height--) { uint32_t *in = (uint32_t*)src; uint32_t *out = (uint32_t*)dst; int prevline = (y > 0 ? src_stride : 0); int nextline = (height > 1 ? src_stride : 0); int nextline2 = (height > 2 ? src_stride * 2 : nextline); for(finish = width; finish; finish -= 1) { int prevcolumn = (x > 0 ? 1 : 0); int nextcolumn = (finish > 1 ? 1 : 0); int nextcolumn2 = (finish > 2 ? 2 : nextcolumn); supertwoxsai_declare_variables(uint32_t, in); //--------------------------- B1 B2 // 4 5 6 S2 // 1 2 3 S1 // A1 A2 //-------------------------------------- supertwoxsai_function(supertwoxsai_result, supertwoxsai_interpolate_xrgb8888, supertwoxsai_interpolate2_xrgb8888); x++; } src += src_stride; dst += 2 * dst_stride; y++; x = 0; } }