Mercurial > emacs
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); }