]> git.eshelyaron.com Git - emacs.git/commitdiff
[USE_CG_DRAWING] (mac_draw_cg_image): Fix coordinate flipping.
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Sat, 30 Aug 2008 04:55:17 +0000 (04:55 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Sat, 30 Aug 2008 04:55:17 +0000 (04:55 +0000)
src/ChangeLog
src/macterm.c

index 9bab3609af6e5d827599b917a16feb00d7b4c4f3..3ff360b1c2c0b92490a00177e5fc49f1786ac0eb 100644 (file)
@@ -1,3 +1,8 @@
+2008-08-30  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macterm.c [USE_CG_DRAWING] (mac_draw_cg_image):
+       Fix coordinate flipping.
+
 2008-08-29  Eli Zaretskii  <eliz@gnu.org>
 
        * fileio.c (Fexpand_file_name): Copy argument `name' into local
index dee084065a1c87f482a8f3fe1a88b93fc28266b7..0ec3c75e6388b8cf78d6bcc01090cc4e622c7ec8 100644 (file)
@@ -559,27 +559,25 @@ mac_draw_cg_image (image, f, gc, src_x, src_y, width, height,
      int dest_x, dest_y, overlay_p;
 {
   CGContextRef context;
-  CGFloat port_height = FRAME_PIXEL_HEIGHT (f);
-  CGRect dest_rect = mac_rect_make (f, dest_x, dest_y, width, height);
+  CGRect dest_rect, bounds;
 
   context = mac_begin_cg_clip (f, gc);
+  dest_rect = mac_rect_make (f, dest_x, dest_y, width, height);
+  bounds = mac_rect_make (f, dest_x - src_x, dest_y - src_y,
+                         CGImageGetWidth (image), CGImageGetHeight (image));
   if (!overlay_p)
     {
       CG_SET_FILL_COLOR_WITH_GC_BACKGROUND (context, gc);
       CGContextFillRect (context, dest_rect);
     }
   CGContextClipToRect (context, dest_rect);
+  CGContextTranslateCTM (context,
+                        CGRectGetMinX (bounds), CGRectGetMaxY (bounds));
   CGContextScaleCTM (context, 1, -1);
-  CGContextTranslateCTM (context, 0, -port_height);
   if (CGImageIsMask (image))
     CG_SET_FILL_COLOR_WITH_GC_FOREGROUND (context, gc);
-  CGContextDrawImage (context,
-                     mac_rect_make (f, dest_x - src_x,
-                                    port_height - (dest_y - src_y
-                                                   + CGImageGetHeight (image)),
-                                    CGImageGetWidth (image),
-                                    CGImageGetHeight (image)),
-                     image);
+  bounds.origin = CGPointZero;
+  CGContextDrawImage (context, bounds, image);
   mac_end_cg_clip (f);
 }