- /*
- File: ATSTypes.h
- Contains: Public interfaces for Apple Type Services components.
- Version: Technology: Post-Sonata, Post-Carbon 1.01
- Release: QuickTime 6.0.2
- Copyright: (c) 1997-2001 by Apple Computer, Inc., all rights reserved.
- Bugs?: For bug reports, consult the following page on
- the World Wide Web:
- http://developer.apple.com/bugreporter/
- */
- #ifndef __ATSTYPES__
- #define __ATSTYPES__
- #ifndef __MACTYPES__
- #include "MacTypes.h"
- #endif
- #if PRAGMA_ONCE
- #pragma once
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if PRAGMA_IMPORT
- #pragma import on
- #endif
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=mac68k
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(push, 2)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack(2)
- #endif
- /* ----------------------------------------------------------------------------------------- */
- /* CONSTANTS */
- /* Miscellaneous constants */
- enum {
- kATSItalicQDSkew = (1 << 16) / 4, /* fixed value of 0.25 */
- kATSRadiansFactor = 1144 /* fixed value of approx. pi/180 (0.0174560546875) */
- };
- /* Glyph outline path constants used in ATSGetGlyphPaths */
- enum {
- kATSCubicCurveType = 0x0001,
- kATSQuadCurveType = 0x0002
- };
- /* --------------------------------------------------------------------------- */
- /* TYPES */
- /* --------------------------------------------------------------------------- */
- typedef UInt16 GlyphID;
- typedef UInt16 ATSCurveType;
- /*
- The StyleGroupPtr contains all of the style attributes associated with a run
- of glyphs.
- */
- typedef struct AttributeGroup *ATSStyleGroupPtr;
- struct ATSStyleSetting {
- ATSStyleGroupPtr style; /* The style attribute group */
- UInt32 styleFlags; /* Flag bits for this style */
- };
- typedef struct ATSStyleSetting ATSStyleSetting;
- /* Mapping3x3 is the basic matrix type. The third column actually contains Fract numbers */
- struct Mapping3x3 {
- Fixed map[3][3];
- };
- typedef struct Mapping3x3 Mapping3x3;
- /* Rendering metrics type */
- struct ATSGlyphRenderingMetrics {
- FixedPoint deviceAdvance;
- FixedPoint topLeft;
- UInt16 height;
- UInt16 width;
- FixedPoint sideBearing;
- FixedPoint otherSideBearing;
- };
- typedef struct ATSGlyphRenderingMetrics ATSGlyphRenderingMetrics;
- /* Fractional metrics types */
- struct ATSGlyphFractionalMetrics {
- FixedPoint advance;
- FixedPoint sideBearing;
- FixedPoint otherSideBearing;
- };
- typedef struct ATSGlyphFractionalMetrics ATSGlyphFractionalMetrics;
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=reset
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(pop)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack()
- #endif
- #ifdef PRAGMA_IMPORT_OFF
- #pragma import off
- #elif PRAGMA_IMPORT
- #pragma import reset
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif /* __ATSTYPES__ */