Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 462 of file bsops.c.
Referenced by ui_screenblt().
{ int p; int i; int j; char * src; char * dst; if (bs_warp_coords(&x, &y, &cx, &cy, &srcx, &srcy)) { if (rop == 12) /* copy */ { if (srcy < y) /* copy down - bottom to top */ { for (i = cy - 1; i >= 0; i--) { src = get_bs_ptr(srcx, srcy + i); dst = get_bs_ptr(x, y + i); if (src != 0 && dst != 0) { bs_copy_mem(dst, src, cx * g_Bpp); } } } else if (srcy > y || srcx > x) /* copy up or left - top to bottom */ { for (i = 0; i < cy; i++) { src = get_bs_ptr(srcx, srcy + i); dst = get_bs_ptr(x, y + i); if (src != 0 && dst != 0) { bs_copy_mem(dst, src, cx * g_Bpp); } } } else /* copy straight right */ { for (i = 0; i < cy; i++) { src = get_bs_ptr(srcx, srcy + i); dst = get_bs_ptr(x, y + i); if (src != 0 && dst != 0) { bs_copy_memb(dst, src, cx * g_Bpp); } } } } else /* slow */ { if (srcy < y) /* copy down - bottom to top */ { for (i = cy - 1; i >= 0; i--) { for (j = 0; j < cx; j++) { p = bs_get_pixel(srcx + j, srcy + i); bs_set_pixel(x + j, y + i, p, rop, 0); } } } else if (srcy > y || srcx > x) /* copy up or left - top to bottom */ { for (i = 0; i < cy; i++) { for (j = 0; j < cx; j++) { p = bs_get_pixel(srcx + j, srcy + i); bs_set_pixel(x + j, y + i, p, rop, 0); } } } else /* copy straight right */ { for (i = 0; i < cy; i++) { for (j = cx - 1; j >= 0; j--) { p = bs_get_pixel(srcx + j, srcy + i); bs_set_pixel(x + j, y + i, p, rop, 0); } } } } } }