From: YAMAMOTO Mitsuharu Date: Sat, 19 Nov 2005 06:35:19 +0000 (+0000) Subject: [USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable. X-Git-Tag: emacs-pretest-22.0.90~5781 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6b9ad469e2e14902f8dc49168df2bebae0293eec;p=emacs.git [USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable. [USE_CG_TEXT_DRAWING] (init_cg_text_anti_aliasing_threshold): New function. (init_font_name_table) [USE_ATSUI && USE_CG_TEXT_DRAWING]: Use it. [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): Don't do antialiasing if font size is smaller than or equal to cg_text_anti_aliasing_threshold. --- diff --git a/src/macterm.c b/src/macterm.c index 5ac3255daca..1153efda18c 100644 --- a/src/macterm.c +++ b/src/macterm.c @@ -867,6 +867,19 @@ mac_draw_image_string_16 (f, gc, x, y, buf, nchars) #if USE_CG_TEXT_DRAWING static XCharStruct *x_per_char_metric P_ ((XFontStruct *, XChar2b *)); +static int cg_text_anti_aliasing_threshold = 8; + +static void +init_cg_text_anti_aliasing_threshold () +{ + Lisp_Object val = + Fmac_get_preference (build_string ("AppleAntiAliasingThreshold"), + Qnil, Qnil, Qnil); + + if (INTEGERP (val)) + cg_text_anti_aliasing_threshold = XINT (val); +} + static int mac_draw_string_cg (f, gc, x, y, buf, nchars) struct frame *f; @@ -915,6 +928,8 @@ mac_draw_string_cg (f, gc, x, y, buf, nchars) 1.0); CGContextSetFont (context, GC_FONT (gc)->cg_font); CGContextSetFontSize (context, GC_FONT (gc)->mac_fontsize); + if (GC_FONT (gc)->mac_fontsize <= cg_text_anti_aliasing_threshold) + CGContextSetShouldAntialias (context, false); #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 CGContextSetTextPosition (context, gx, gy); CGContextShowGlyphsWithAdvances (context, glyphs, advances, nchars); @@ -6784,6 +6799,9 @@ init_font_name_table () text_encoding_info_alist = create_text_encoding_info_alist (); #if USE_ATSUI +#if USE_CG_TEXT_DRAWING + init_cg_text_anti_aliasing_threshold (); +#endif if (!NILP (assq_no_quit (make_number (kTextEncodingMacUnicode), text_encoding_info_alist))) {