X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fdraw%2Fao_copy.c;h=47067bb829a2fc62240cff5e2f32ddc7647fda1b;hb=refs%2Fheads%2Fmaster;hp=0e822932d652ebb7315214b92de829c8ad42ab0a;hpb=f9e2f41feac8ccd4e02020cf672366b194d2d60d;p=fw%2Faltos diff --git a/src/draw/ao_copy.c b/src/draw/ao_copy.c index 0e822932..a506aed7 100644 --- a/src/draw/ao_copy.c +++ b/src/draw/ao_copy.c @@ -12,16 +12,16 @@ * General Public License for more details. */ -#include "ao_draw.h" -#include "ao_draw_int.h" +#include +#include #define bound(val,max,other) do { \ if (val < 0) { \ - other -= val; \ + other += (typeof(other)) (-val); \ val = 0; \ } \ if (val > max) { \ - other -= (val - max); \ + other -= (typeof(other)) (val - max); \ val = max; \ } \ } while (0) @@ -32,7 +32,7 @@ } while (0) void -ao_copy(const struct ao_bitmap *dst, +ao_copy(struct ao_bitmap *dst, int16_t dst_x, int16_t dst_y, int16_t width, @@ -57,6 +57,8 @@ ao_copy(const struct ao_bitmap *dst, upsidedown = (dst_y > src_y); } + ao_damage(dst, dst_x, dst_y, dst_x2, dst_y2); + if (dst_x < dst_x2 && dst_y < dst_y2) { ao_blt(src->base + src_y * src->stride, src->stride,