diff options
author | Eli Zaretskii <eliz@gnu.org> | 2019-06-29 14:51:41 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2019-06-29 14:51:41 +0300 |
commit | 74a5a332fee8a346cf65ed6656c1b08dc1df5fde (patch) | |
tree | 9b6488ab0dccc372c643f5b521e731f26886cfb4 /test/manual/image-transforms-tests.el | |
parent | 67b50770c050c55a26cd13b9568b01a80a449885 (diff) | |
download | emacs-74a5a332fee8a346cf65ed6656c1b08dc1df5fde.tar.gz emacs-74a5a332fee8a346cf65ed6656c1b08dc1df5fde.tar.bz2 emacs-74a5a332fee8a346cf65ed6656c1b08dc1df5fde.zip |
Support native image transforms on MS-Windows
This changeset also rearranges native image transform code
for other platforms to make it cleaner, and also removes
the support for native cropping. For the discussions, see
https://lists.gnu.org/archive/html/emacs-devel/2019-06/msg00242.html
* src/w32term.c (w32_image_rotations_p, transform): New functions.
(w32_draw_image_foreground): If image rotation is requested
and supported, call PlgBlt to transform the image.
(w32_initialize): Populate the PlgBlt function pointer if it
is supported.
* src/w32term.h (w32_image_rotations_p): Add prototype.
* src/dispextern.h (struct image) [HAVE_NTGUI]: New member xform.
* src/image.c (compute_image_rotation): Renamed from
image_set_rotation. Only compute and returns the rotation
angle; leave the matrix calculation for later. Log an error
message if the :rotation parameter is not a number.
(image_set_crop): Function deleted. We no longer support
native cropping, as one can display an image slice instead.
(image_set_transform): Compute the transform matrix in its
entirety here, in two variants: one for XRender and Cairo, the
other for NS and MS-Windows. call compute_image_size and
compute_image_rotation internally.
(lookup_image) [HAVE_NATIVE_TRANSFORMS]: Call only
image_set_transform. No need to pass the transform matrix to
image_set_transform.
(Fimage_transforms_p): Return a list of transform capabilities
rather than a simple boolean. Support TTY frames as well.
* src/nsimage.m (setTransform:): Don't invert the matrix, as
it is already inverted in image.c.
* test/manual/image-transforms-tests.el (test-cropping): State
in the text that only ImageMagick supports cropping.
* doc/lispref/display.texi (Image Descriptors): Update the
documentation of native image transforms.
(ImageMagick Images): Move the description of ':crop' here.
* etc/NEWS: Minor copyedits of the feature announcement.
Diffstat (limited to 'test/manual/image-transforms-tests.el')
-rw-r--r-- | test/manual/image-transforms-tests.el | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/test/manual/image-transforms-tests.el b/test/manual/image-transforms-tests.el index d601b9397e3..e8b301e3331 100644 --- a/test/manual/image-transforms-tests.el +++ b/test/manual/image-transforms-tests.el @@ -67,7 +67,7 @@ <rect x='0' y='0' width='10' height='10' style='fill:none;stroke-width:1;stroke:#000'/> </svg>")) - (insert-header "Test Crop: cropping an image") + (insert-header "Test Crop: cropping an image (only works with ImageMagick)") (insert-test "all params" top-left image '(:crop (10 10 0 0))) (insert-test "width/height only" middle image '(:crop (10 10))) (insert-test "negative x y" middle image '(:crop (10 10 -10 -10))) |