aboutsummaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorAlan Third2019-06-05 21:51:33 +0100
committerAlan Third2019-06-05 22:28:46 +0100
commit610fb73ab6d7a22b722f523d6ebc4aa8fa1db7c9 (patch)
tree8a3ee992ccc310071ac5a97ced8907652974c88e /etc
parent9201cf62ce9f17793bb6103050c9ba27eb942e57 (diff)
downloademacs-610fb73ab6d7a22b722f523d6ebc4aa8fa1db7c9.tar.gz
emacs-610fb73ab6d7a22b722f523d6ebc4aa8fa1db7c9.zip
Add native image rotation and cropping
* lisp/image.el (image--get-imagemagick-and-warn): Only fallback to ImageMagick if native transforms aren't available. * src/dispextern.h (INIT_MATRIX, COPY_MATRIX, MULT_MATRICES): New macros for matrix manipulation. (HAVE_NATIVE_SCALING, HAVE_NATIVE_TRANSFORMS): Rename and change all relevant locations. * src/image.c (x_set_image_rotation): (x_set_transform): New functions. (x_set_image_size): Use transform matrix for resizing under X and NS. (x_set_image_crop): New function. (lookup_image): Use the new transform functions. (Fimage_scaling_p, Fimage_transforms_p): Rename and update all callers. * src/nsimage.m (ns_load_image): Remove rotation code. (ns_image_set_transform): New function. ([EmacsImage dealloc]): Release the saved transform. ([EmacsImage rotate:]): Remove unneeded method. ([EmacsImage setTransform:]): New method. * src/nsterm.h (EmacsImage): Add transform property and update method definitions. * src/nsterm.m (ns_dumpglyphs_image): Use the transform to draw the image correctly. * src/xterm.c (x_composite_image): Use PictOpSrc as we don't care about alpha values here. * doc/lispref/display.texi (Image Descriptors): Add :rotation. (ImageMagick Images): Remove :rotation.
Diffstat (limited to 'etc')
-rw-r--r--etc/NEWS6
1 files changed, 3 insertions, 3 deletions
diff --git a/etc/NEWS b/etc/NEWS
index d1239523abd..e47c30565f8 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2051,14 +2051,14 @@ buffer's 'default-directory' and invoke that file name handler to make
2051the process. That way 'make-process' can start remote processes. 2051the process. That way 'make-process' can start remote processes.
2052 2052
2053+++ 2053+++
2054** Emacs now supports resizing (scaling) of images without ImageMagick. 2054** Emacs now supports resizing and rotating images without ImageMagick.
2055All modern systems are supported by this feature. (On GNU and Unix 2055All modern systems are supported by this feature. (On GNU and Unix
2056systems, Cairo drawing or the XRender extension to X11 is required for 2056systems, Cairo drawing or the XRender extension to X11 is required for
2057this to be available; the configure script will test for it and, if 2057this to be available; the configure script will test for it and, if
2058found, enable scaling.) 2058found, enable scaling.)
2059 2059
2060The new function 'image-scaling-p' can be used to test whether any 2060The new function 'image-transforms-p' can be used to test whether any
2061given frame supports resizing. 2061given frame supports this capability.
2062 2062
2063+++ 2063+++
2064** '(locale-info 'paper)' now returns the paper size on systems that support it. 2064** '(locale-info 'paper)' now returns the paper size on systems that support it.