]> git.eshelyaron.com Git - emacs.git/commit
Add native image scaling (bug#33587)
authorAlan Third <alan@idiocy.org>
Wed, 2 Jan 2019 21:00:09 +0000 (21:00 +0000)
committerAlan Third <alan@idiocy.org>
Thu, 10 Jan 2019 19:24:20 +0000 (19:24 +0000)
commita1b7a3f2a3957a399d6c3c7bcffa07ac67da82fc
tree478594bd679f2db099fcb6320750f24fcedf5fc6
parentc342b26371480316024e1e5d63cd8b3f035dda69
Add native image scaling (bug#33587)

* 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.
configure.ac
doc/lispref/display.texi
etc/NEWS
lisp/image.el
src/Makefile.in
src/dispextern.h
src/image.c
src/nsimage.m
src/nsterm.h
src/nsterm.m
src/xterm.c