void executePaint(
      @NotNull Graphics2D g,
      @NotNull Component component,
      @NotNull Image image,
      @NotNull IdeBackgroundUtil.Fill fillType,
      @NotNull IdeBackgroundUtil.Anchor anchor,
      float alpha,
      @NotNull Insets insets
    ) {
      var scaleContext = ScaleContext.create(g);
      // round up because we'd rather have the image clipped by 1 pixel than leave one pixel without a background
      int componentWidth = PaintUtil.alignIntToInt(component.getWidth(), scaleContext, PaintUtil.RoundingMode.CEIL, null);
      int componentHeight = PaintUtil.alignIntToInt(component.getHeight(), scaleContext, PaintUtil.RoundingMode.CEIL, null);
      executePaint(g, componentWidth, componentHeight, image, fillType, anchor, alpha, insets);
    }
void executePaint(
      @NotNull Graphics2D g,
      @NotNull Component component,
      @NotNull Image image,
      @NotNull IdeBackgroundUtil.Fill fillType,
      @NotNull IdeBackgroundUtil.Anchor anchor,
      float alpha,
      @NotNull Insets insets
    )