changeset 80777:166332494a32

[USE_CG_DRAWING] (mac_draw_cg_image): Fix coordinate flipping.
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Sat, 30 Aug 2008 04:54:55 +0000
parents 12ac78dc674e
children da845bd3dced
files src/macterm.c
diffstat 1 files changed, 8 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/macterm.c	Sat Aug 30 02:24:00 2008 +0000
+++ b/src/macterm.c	Sat Aug 30 04:54:55 2008 +0000
@@ -559,27 +559,25 @@
      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);
 }