emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 9609db9: Minor tweaks to HAVE_NATIVE_SCALING code


From: Paul Eggert
Subject: [Emacs-diffs] master 9609db9: Minor tweaks to HAVE_NATIVE_SCALING code
Date: Thu, 10 Jan 2019 18:30:18 -0500 (EST)

branch: master
commit 9609db9d98babfe8782a03aebe46176e57905c63
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Minor tweaks to HAVE_NATIVE_SCALING code
    
    This mostly just reindents.
    * src/image.c (x_set_image_size): Always define, but to a no-op
    if !HAVE_NATIVE_SCALING, to avoid an #ifdef elsewhere.
    (x_create_x_image_and_pixmap): Move decl to avoid an #ifdef.
    (image_create_x_image_and_pixmap): Move #ifdef outside of call.
    * src/xterm.c (x_composite_image): Avoid ‘else #endif’.
---
 src/dispextern.h | 13 +++++-----
 src/image.c      | 78 +++++++++++++++++++++++++++-----------------------------
 src/xterm.c      | 14 +++++-----
 3 files changed, 51 insertions(+), 54 deletions(-)

diff --git a/src/dispextern.h b/src/dispextern.h
index b064875..9cea321 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -32,7 +32,7 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
 #endif /* USE_X_TOOLKIT */
 
 #ifdef HAVE_XRENDER
-#include <X11/extensions/Xrender.h>
+# include <X11/extensions/Xrender.h>
 #endif
 #else /* !HAVE_X_WINDOWS */
 
@@ -2938,10 +2938,9 @@ struct redisplay_interface
 
 #ifdef HAVE_WINDOW_SYSTEM
 
-#if defined (HAVE_X_WINDOWS) && defined (HAVE_XRENDER) \
-  || defined (HAVE_NS)
-#define HAVE_NATIVE_SCALING
-#endif
+# if defined HAVE_XRENDER || defined HAVE_NS
+#  define HAVE_NATIVE_SCALING
+# endif
 
 /* Structure describing an image.  Specific image formats like XBM are
    converted into this form, so that display only has to deal with
@@ -2967,10 +2966,10 @@ struct image
      synchronized to Pixmap.  */
   XImagePtr ximg, mask_img;
 
-#ifdef HAVE_NATIVE_SCALING
+# ifdef HAVE_NATIVE_SCALING
   /* Picture versions of pixmap and mask for compositing.  */
   Picture picture, mask_picture;
-#endif
+# endif
 #endif
 
   /* Colors allocated for this image, if any.  Allocated via xmalloc.  */
diff --git a/src/image.c b/src/image.c
index 84c31dc..2fae105 100644
--- a/src/image.c
+++ b/src/image.c
@@ -1859,47 +1859,48 @@ compute_image_size (size_t width, size_t height,
   *d_width = desired_width;
   *d_height = desired_height;
 }
+#endif /* HAVE_IMAGEMAGICK || HAVE_NATIVE_SCALING */
 
-#ifdef HAVE_NATIVE_SCALING
 static void
 x_set_image_size (struct frame *f, struct image *img)
 {
-#ifdef HAVE_IMAGEMAGICK
+#ifdef HAVE_NATIVE_SCALING
+# ifdef HAVE_IMAGEMAGICK
   /* ImageMagick images are already the correct size.  */
-  if (!EQ (image_spec_value (img->spec, QCtype, NULL), Qimagemagick))
-#endif
-    {
-      int width, height;
+  if (EQ (image_spec_value (img->spec, QCtype, NULL), Qimagemagick))
+    return;
+# endif
 
-      compute_image_size (img->width, img->height, img->spec, &width, &height);
+  int width, height;
+  compute_image_size (img->width, img->height, img->spec, &width, &height);
 
-#ifdef HAVE_NS
-      ns_image_set_size (img->pixmap, width, height);
-      img->width = width;
-      img->height = height;
-#endif
+# ifdef HAVE_NS
+  ns_image_set_size (img->pixmap, width, height);
+  img->width = width;
+  img->height = height;
+# endif
 
-#ifdef HAVE_XRENDER
-      if (img->picture)
-      {
-        double xscale = (double) img->width/width;
-        double yscale = (double) img->height/height;
+# ifdef HAVE_XRENDER
+  if (img->picture)
+    {
+      double xscale = img->width / (double) width;
+      double yscale = img->height / (double) height;
 
-        XTransform tmat = {{{XDoubleToFixed (xscale), XDoubleToFixed (0), 
XDoubleToFixed (0)},
-                            {XDoubleToFixed (0), XDoubleToFixed (yscale), 
XDoubleToFixed (0)},
-                            {XDoubleToFixed (0), XDoubleToFixed (0), 
XDoubleToFixed (1)}}};
+      XTransform tmat
+       = {{{XDoubleToFixed (xscale), XDoubleToFixed (0), XDoubleToFixed (0)},
+           {XDoubleToFixed (0), XDoubleToFixed (yscale), XDoubleToFixed (0)},
+           {XDoubleToFixed (0), XDoubleToFixed (0), XDoubleToFixed (1)}}};
 
-        XRenderSetPictureFilter (FRAME_X_DISPLAY (f), img->picture, 
FilterBest, 0, 0);
-        XRenderSetPictureTransform (FRAME_X_DISPLAY (f), img->picture, &tmat);
+      XRenderSetPictureFilter (FRAME_X_DISPLAY (f), img->picture, FilterBest,
+                              0, 0);
+      XRenderSetPictureTransform (FRAME_X_DISPLAY (f), img->picture, &tmat);
 
-        img->width = width;
-        img->height = height;
-      }
-#endif
+      img->width = width;
+      img->height = height;
     }
-}
+# endif
 #endif
-#endif /* HAVE_IMAGEMAGICK || HAVE_XRENDER || HAVE_NS  */
+}
 
 
 /* Return the id of image with Lisp specification SPEC on frame F.
@@ -1956,9 +1957,7 @@ lookup_image (struct frame *f, Lisp_Object spec)
             `:background COLOR'.  */
          Lisp_Object ascent, margin, relief, bg;
          int relief_bound;
-#ifdef HAVE_NATIVE_SCALING
           x_set_image_size (f, img);
-#endif
 
          ascent = image_spec_value (spec, QCascent, NULL);
          if (FIXNUMP (ascent))
@@ -2139,9 +2138,6 @@ x_create_x_image_and_pixmap (struct frame *f, int width, 
int height, int depth,
   Display *display = FRAME_X_DISPLAY (f);
   Drawable drawable = FRAME_X_DRAWABLE (f);
   Screen *screen = FRAME_X_SCREEN (f);
-#ifdef HAVE_XRENDER
-  int event_basep, error_basep;
-#endif
 
   eassert (input_blocked_p ());
 
@@ -2178,7 +2174,8 @@ x_create_x_image_and_pixmap (struct frame *f, int width, 
int height, int depth,
       return 0;
     }
 
-#ifdef HAVE_XRENDER
+# ifdef HAVE_XRENDER
+  int event_basep, error_basep;
   if (picture && XRenderQueryExtension (display, &event_basep, &error_basep))
     {
       XRenderPictFormat *format;
@@ -2191,7 +2188,7 @@ x_create_x_image_and_pixmap (struct frame *f, int width, 
int height, int depth,
                                           : PictStandardA8);
       *picture = XRenderCreatePicture (display, *pixmap, format, 0, &attr);
     }
-#endif
+# endif
 
   return 1;
 #endif /* HAVE_X_WINDOWS */
@@ -2367,14 +2364,13 @@ image_create_x_image_and_pixmap (struct frame *f, 
struct image *img,
 {
   eassert ((!mask_p ? img->pixmap : img->mask) == NO_PIXMAP);
 
-  return x_create_x_image_and_pixmap (f, width, height, depth, ximg,
-                                     !mask_p ? &img->pixmap : &img->mask,
+  Picture *picture = NULL;
 #ifdef HAVE_XRENDER
-                                      !mask_p ? &img->picture : 
&img->mask_picture
-#else
-                                      NULL
+  picture = !mask_p ? &img->picture : &img->mask_picture;
 #endif
-                                      );
+  return x_create_x_image_and_pixmap (f, width, height, depth, ximg,
+                                     !mask_p ? &img->pixmap : &img->mask,
+                                     picture);
 }
 
 /* Put X image XIMG into image IMG on frame F, as a mask if and only
diff --git a/src/xterm.c b/src/xterm.c
index fbbf61d..6327038 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -3001,13 +3001,14 @@ x_composite_image (struct glyph_string *s, Pixmap dest,
                         width, height);
 
       XRenderFreePicture (s->display, destination);
+      return;
     }
-  else
 #endif
-    XCopyArea (s->display, s->img->pixmap,
-               dest, s->gc,
-               srcX, srcY,
-               width, height, dstX, dstY);
+
+  XCopyArea (s->display, s->img->pixmap,
+            dest, s->gc,
+            srcX, srcY,
+            width, height, dstX, dstY);
 }
 
 
@@ -3060,7 +3061,8 @@ x_draw_image_foreground (struct glyph_string *s)
          image_rect.width = s->slice.width;
          image_rect.height = s->slice.height;
          if (x_intersect_rectangles (&clip_rect, &image_rect, &r))
-            x_composite_image (s, FRAME_X_DRAWABLE (s->f), s->slice.x + r.x - 
x, s->slice.y + r.y - y,
+            x_composite_image (s, FRAME_X_DRAWABLE (s->f),
+                              s->slice.x + r.x - x, s->slice.y + r.y - y,
                                r.x, r.y, r.width, r.height);
        }
       else



reply via email to

[Prev in Thread] Current Thread [Next in Thread]