System information

(r. 2897297).
In some instances, the directory returned from FMGetFontTableDirectory was an incorrect font table for LWFN
fonts. We now indicate there are no entries in the directory in these cases. (r. 2848718).
Creating or using an OTF(CID) format font which contains more than 32676 glyphs would sometimes crash an
application. We now allow over 32676 glyphs. (r. 2821918).
In rare cases, ATSFontFindFromName() returns no matches, even when using the CFStringRef returned by
ATSFontGetName(). We now correctly return all fonts. (r. 2764305).
Back to top
ATSUI (Apple Type Services for Unicode Imaging)
ATSUI is core technology for Unicode text drawing and editing on OS X. It is fully multilingual and provides basic services as
well as high-end typographical control. It can be used with Quartz or Quickdraw based applications.
kATSLineDisableAllBidirectionalReordering has been removed and kATSLineDisableAllCharacterMorphing has been
renamed to kATSLineDisableAllGlyphMorphing. (r. 2925657).
The original API ATSUMeasureText will still function fine though each process that calls it will get a single syslog
stating that it is deprecated and that they should use ATSUGetUnjustifiedBounds instead. (r. 2918417).
ATSUI will now display the specified glyph when kATSUGlyphInfoTag attribute exists and if the font is not
consistent with the glyph attribute, it will ignore the glyph attribute. (r. 2883308).
Developers now have direct access to the ATSUI glyph rec array and are able to manage the steps of line layout
directly, altering bidi, glyph metamorphosis, and justification as needed. (r. 2853741).
Multi-run ATSUTextLayout objects now transfer styles into the ATSUGlyphInfoArray correctly. (r. 2850959).
A new API ATSUHighlightInactiveText is now available. This API allows callers to have better control over the
appearance of selected text as it is drawn when the window containing the text is inactive. (r. 2842617).
ATSUStyles can now have their ascent and descent values changed using the kATSUAscentTag, kATSUDescentTag, and
additionally the leading can also be set using the kATSULeadingTag. (r. 2804497).
ATSUI now has layout control facilities to override user anti-aliasing preference. To control the anti-aliasing for
an entire layout or line you can use one of the Layout options: kATSLineApplyAntiAliasing or
kATSLineNoAntiAliasing. (r. 2754392).
The style's leading is now retrieved from the ATSUStyle using the ATSUGetAttribute with the kATSULeadingTag. If
the ATSUI client did not set the leading (which can now be specified using this tag), the ATSUGetAttribute will
return kATSUNotSetErr and the font's leading value. (r. 2621797).
Added support for RGB-Alpha using the CGColorSpaceRef in ATSUStyle records. (r. 2951269).
A problem where ATSUClearLayoutControls was not returning the error code kATSUInvalidAttributeTagErr in cases
where it should have has been corrected. (r. 2927064).
The new kATSLineUseDeviceMetrics option has been added to allow layout and line breaking in device space. (r.
2917413).
The kATSUFontMatrixTag style transform matrix is now implemented. (r. 2911269).
Back to top
ColorSync
ColorSync provides system-level color management that enables publishing software to achieve repeatable and consistent
color on-screen, in print, and for electronic delivery.
When update a procedure based profile, the procedure profile proc is called with the cmWriteAccess selector a
number of times to write out the data from the profile. If the function that handles the cmWriteAccess (or
cmWriteSpool) command cannot write out all the bytes requested, then the procedure profile proc is called again
with the cmWriteAccess (or cmWriteSpool) selector to write out the remaining bytes. There was a problem in the
update code where the calls to write additional bytes after the first call would always be passed the address of the
beginning of the buffer rather than the beginning of the bytes needing to be written. This problem has been
corrected.(r. 2892979) (r. 2928633).
The NCMUnflattenProfile call will now unflatten the data into a profile correctly if the number of bytes that are
sent back by the call back proc are less than the number of bytes requested by the call back proc. (r. 2910239).
Fixed bug where calling CMSetProfileElement to set tags that are obtained from an existing profile into a newly
created profile would result in error -50 for certain tags from certain profiles. (r. 2906498).