• Alan Third's avatar
    Add native image scaling (bug#33587) · a1b7a3f2
    Alan Third authored
    * configure.ac: Test for XRender outside of xft checks.
    * src/Makefile.in (XRENDER_LIBS): List XRender libs separately from
    xft libs.
    * lisp/image.el (image--get-imagemagick-and-warn): Allow resizing if
    native scaling is available.
    * src/dispextern.h: Add XRender and image scaling stuff.
    (struct image): Add XRender Pictures.
    * src/image.c (x_create_bitmap_mask):
    (image_create_x_image_and_pixmap): Handle XRender Picture.
    (scale_image_size):
    (compute_image_size): Make available when any form of scaling is
    enabled.
    (x_set_image_size): New function.
    (lookup_image): Set image size.
    (x_create_x_image_and_pixmap): Create XRender Picture when necessary.
    (x_put_x_image): Handle the case where desired size != actual size.
    (free_image): Free XRender Pictures.
    (Fimage_scaling_p): New function.
    (syms_of_image): Add image-scaling-p.
    * src/nsimage.m (ns_load_image): Remove NS specific resizing.
    ([EmacsImage setSizeFromSpec:]): Remove method.
    (ns_image_set_size): New function.
    * src/nsterm.m (ns_draw_fringe_bitmap): Cocoa and GNUstep both have
    the same compositing functions, so remove unnecessary difference.
    * src/xterm.c (x_composite_image): New function.
    (x_draw_image_foreground): Use new x_composite_image function.
    * doc/lispref/display.texi (Image Descriptors): Document
    image-scaling-p and add resizing descriptors.
    (ImageMagick Images): Remove resizing descriptors.
    a1b7a3f2