+ source_x = source_y = 0
+ if x < 0:
+ source_x = round(0 - x)
+ x = 0
+ if y < 0:
+ source_y = round(0 - y)
+ y = 0
+
+ x = round(x)
+ y = round(y)
+
+ if (
+ x <= buffer.width
+ and y <= buffer.height
+ and source_x <= image.width
+ and source_y <= image.height
+ ):
+ buffer.alpha_composite(image, (x, y), source=(source_x, source_y))
+
+ # pylint: enable=too-many-locals,too-many-branches