emacs-devel
[Top][All Lists]
Advanced

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

Re: ATSUI support on Carbon Emacs


From: YAMAMOTO Mitsuharu
Subject: Re: ATSUI support on Carbon Emacs
Date: Wed, 26 Apr 2006 18:13:13 +0900
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/22.0.50 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI)

Because there's no objection about the patch in
http://lists.gnu.org/archive/html/emacs-devel/2006-04/msg00901.html so
far, I'm going to enable ATSUI support at last.  Here's my plan:

  * Enable ATSUI support in Mac OS X 10.2+ by default.
    It is really slow on Mac OS X 10.1.  We don't have to worry about
    binary compatibility because Emacs built on 10.1 does not run on
    10.2+ and vice versa due to the difference about termcap/ncurses.

  * Set the default value of `mac-allow-anti-aliasing' to t for
    ATSUI-enabled environments.
    Then it can benefit from bypassing ATSUI drawing in favor of
    low-level Quartz 2D text drawing on 10.3+ for ASCII and Latin-1.

  * Update macos.texi (as below).

  * Maybe reconsider the name `mac-allow-anti-aliasing'.
    As the updated manual below says, its name is a bit different from
    what it does.  I think this is the last chance before pretesting
    if we are going to change the name.  Emacs.app for GNUstep/Cocoa
    uses `ns-use-qd-smoothing' for similar functionality.  Any ideas?

As I said in my previous post, enabling ATSUI support also activates
Quartz 2D drawing for most of drawing operations (now including
images, but this is not what I mentioned as `full alpha channel' in
http://lists.gnu.org/archive/html/emacs-devel/2006-02/msg00881.html),
though that does not change anything in appearance.

                                     YAMAMOTO Mitsuharu
                                address@hidden

Index: man/macos.texi
===================================================================
RCS file: /cvsroot/emacs/emacs/man/macos.texi,v
retrieving revision 1.28
diff -c -r1.28 macos.texi
*** man/macos.texi      9 Apr 2006 22:40:34 -0000       1.28
--- man/macos.texi      26 Apr 2006 08:26:21 -0000
***************
*** 104,116 ****
  @code{mac-roman}, @code{mac-centraleurroman}, and @code{mac-cyrillic}
  are used to represent these Mac encodings.
  
-   The fontset @code{fontset-standard} is created automatically when
- Emacs is run on Mac, and used by default.  It displays as many kinds
- of characters as possible using 12-point Monaco as a base font.  If
- you see some character as a hollow box with this fontset, then it's
- almost impossible to display it only by customizing font settings
- (@pxref{Mac Font Specs}).
- 
    You can use input methods provided either by LEIM (@pxref{Input
  Methods}) or Mac OS to enter international characters.  To use the
  former, see the International Character Set Support section of the
--- 104,109 ----
***************
*** 195,201 ****
    Command line arguments are specified like
  
  @example
! /Applications/Emacs.app/Contents/MacOS/Emacs -geometry 80x25 &
  @end example
  
  @noindent
--- 188,194 ----
    Command line arguments are specified like
  
  @example
! /Applications/Emacs.app/Contents/MacOS/Emacs -g 80x25 &
  @end example
  
  @noindent
***************
*** 295,301 ****
  Courier by customizing the default face attributes for all frames:
  
  @lisp
! (set-face-attribute 'default nil :family "courier" :height 140)
  @end lisp
  
  @noindent
--- 288,295 ----
  Courier by customizing the default face attributes for all frames:
  
  @lisp
! (set-face-attribute 'default nil
!                     :family "courier" :height 140)
  @end lisp
  
  @noindent
***************
*** 313,333 ****
  @noindent
  @xref{Font X}.  Wildcards are supported as they are on X.
  
!   Native Apple fonts in Mac Roman encoding has maker name @code{apple}
! and charset @code{mac-roman}.  For example 12-point Monaco can be
! specified by the name @samp{-apple-monaco-*-12-*-mac-roman}.  When
! using a particular size of scalable fonts, it must be specified in a
! format containing 14 @samp{-}s like
! @samp{-apple-monaco-medium-r-normal--13-*-*-*-*-*-mac-roman}.
! 
!   You can specify a @code{mac-roman} font for @acronym{ASCII}
! characters like
  
! @lisp
  (add-to-list
   'default-frame-alist
   '(font . "-apple-monaco-medium-r-normal--13-*-*-*-*-*-mac-roman"))
! @end lisp
  
  @noindent
  but that does not extend to ISO-8859-1: specifying a @code{mac-roman}
--- 307,336 ----
  @noindent
  @xref{Font X}.  Wildcards are supported as they are on X.
  
!   Emacs on Mac OS X 10.1 or former uses QuickDraw Text routines for
! drawing texts.  Emacs on Mac OS X 10.2 or later additionally uses
! @acronym{ATSUI, Apple Type Services for Unicode Imaging}, and most of
! the characters other than Chinese, Japanese, or Korean ones are drawn
! using the latter by default.
! 
!   @acronym{ATSUI}-compatible fonts have maker name @code{apple} and
! charset @code{iso10646-1}.  For example 12-point Monaco can be specified
! by the name
! @samp{-apple-monaco-medium-r-normal--12-*-*-*-*-*-iso10646-1}.  Note
! that it must be specified in a format containing 14 @samp{-}s (i.e., not
! by @samp{-apple-monaco-medium-r-normal-12-*-iso10646-1}) because every
! @acronym{ATSUI}-compatible font is a scalable one.
! 
!   QuickDraw Text fonts have maker name @code{apple} and various charset
! names other than @code{iso10646-1}.  Native Apple fonts in Mac Roman
! encoding has charset @code{mac-roman}.  You can specify a
! @code{mac-roman} font for @acronym{ASCII} characters like
  
! @smalllisp
  (add-to-list
   'default-frame-alist
   '(font . "-apple-monaco-medium-r-normal--13-*-*-*-*-*-mac-roman"))
! @end smalllisp
  
  @noindent
  but that does not extend to ISO-8859-1: specifying a @code{mac-roman}
***************
*** 341,356 ****
  @samp{mac-cyrillic}, @samp{mac-symbol}, and @samp{mac-dingbats},
  respectively.
  
-   Since Emacs as of the current version uses QuickDraw Text routines
- for drawing texts, only characters in the charsets listed above can be
- displayed with the OS-bundled fonts, even if other applications that
- use @acronym{ATSUI} or Cocoa can display variety of characters with
- them.
- 
    The use of @code{create-fontset-from-fontset-spec} (@pxref{Defining
! Fontsets}) for defining fontsets often results in wrong ones
! especially when using only OS-bundled fonts.  The recommended way is
! to create a fontset using @code{create-fontset-from-mac-roman-font}:
  
  @lisp
  (create-fontset-from-mac-roman-font
--- 344,354 ----
  @samp{mac-cyrillic}, @samp{mac-symbol}, and @samp{mac-dingbats},
  respectively.
  
    The use of @code{create-fontset-from-fontset-spec} (@pxref{Defining
! Fontsets}) for defining fontsets often results in wrong ones especially
! when using only OS-bundled QuickDraw Text fonts.  The recommended way to
! use them is to create a fontset using
! @code{create-fontset-from-mac-roman-font}:
  
  @lisp
  (create-fontset-from-mac-roman-font
***************
*** 374,384 ****
  the name @samp{-ETL-fixed-*-iso8859-1}.
  
  @vindex mac-allow-anti-aliasing
!   Emacs uses the QuickDraw text rendering by default.  On Mac OS X
! 10.2 and later, it can be changed so that it uses the Quartz 2D text
! rendering (aka CG text rendering) by setting
! @code{mac-allow-anti-aliasing} to @code{t}.  However, it is reported
! to sometimes leave some garbages.
  
  @node Mac Functions
  @section Mac-Specific Lisp Functions
--- 372,384 ----
  the name @samp{-ETL-fixed-*-iso8859-1}.
  
  @vindex mac-allow-anti-aliasing
!   Mac OS X 10.2 or later can use two types of text renderings: Quartz 2D
! (aka Core Graphics) and QuickDraw.  By default, Emacs uses the former if
! @acronym{ATSUI} is available and the latter otherwise.  It can be
! changed by setting @code{mac-allow-anti-aliasing} to @code{t} (Quartz
! 2D) or @code{nil} (QuickDraw).  Both @acronym{ATSUI} and QuickDraw Text
! drawings are affected by the value of this variable.
! 
  
  @node Mac Functions
  @section Mac-Specific Lisp Functions




reply via email to

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