ATSTypes.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:3k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /*
  2.      File:       ATSTypes.h
  3.  
  4.      Contains:   Public interfaces for Apple Type Services components.
  5.  
  6.      Version:    Technology: Post-Sonata, Post-Carbon 1.01
  7.                  Release:    QuickTime 6.0.2
  8.  
  9.      Copyright:  (c) 1997-2001 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:      For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __ATSTYPES__
  18. #define __ATSTYPES__
  19. #ifndef __MACTYPES__
  20. #include "MacTypes.h"
  21. #endif
  22. #if PRAGMA_ONCE
  23. #pragma once
  24. #endif
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif
  28. #if PRAGMA_IMPORT
  29. #pragma import on
  30. #endif
  31. #if PRAGMA_STRUCT_ALIGN
  32.     #pragma options align=mac68k
  33. #elif PRAGMA_STRUCT_PACKPUSH
  34.     #pragma pack(push, 2)
  35. #elif PRAGMA_STRUCT_PACK
  36.     #pragma pack(2)
  37. #endif
  38. /* ----------------------------------------------------------------------------------------- */
  39. /* CONSTANTS */
  40. /* Miscellaneous constants */
  41. enum {
  42.     kATSItalicQDSkew            = (1 << 16) / 4,                /* fixed value of 0.25 */
  43.     kATSRadiansFactor           = 1144                          /* fixed value of approx. pi/180 (0.0174560546875) */
  44. };
  45. /* Glyph outline path constants used in ATSGetGlyphPaths */
  46. enum {
  47.     kATSCubicCurveType          = 0x0001,
  48.     kATSQuadCurveType           = 0x0002
  49. };
  50. /* --------------------------------------------------------------------------- */
  51. /* TYPES */
  52. /* --------------------------------------------------------------------------- */
  53. typedef UInt16                          GlyphID;
  54. typedef UInt16                          ATSCurveType;
  55. /*
  56.     The StyleGroupPtr contains all of the style attributes associated with a run
  57.     of glyphs.
  58. */
  59. typedef struct AttributeGroup *ATSStyleGroupPtr;
  60. struct ATSStyleSetting {
  61.     ATSStyleGroupPtr                style;                      /* The style attribute group */
  62.     UInt32                          styleFlags;                 /* Flag bits for this style */
  63. };
  64. typedef struct ATSStyleSetting          ATSStyleSetting;
  65. /* Mapping3x3 is the basic matrix type. The third column actually contains Fract numbers */
  66. struct Mapping3x3 {
  67.     Fixed                           map[3][3];
  68. };
  69. typedef struct Mapping3x3               Mapping3x3;
  70. /* Rendering metrics type */
  71. struct ATSGlyphRenderingMetrics {
  72.     FixedPoint                      deviceAdvance;
  73.     FixedPoint                      topLeft;
  74.     UInt16                          height;
  75.     UInt16                          width;
  76.     FixedPoint                      sideBearing;
  77.     FixedPoint                      otherSideBearing;
  78. };
  79. typedef struct ATSGlyphRenderingMetrics ATSGlyphRenderingMetrics;
  80. /* Fractional metrics types */
  81. struct ATSGlyphFractionalMetrics {
  82.     FixedPoint                      advance;
  83.     FixedPoint                      sideBearing;
  84.     FixedPoint                      otherSideBearing;
  85. };
  86. typedef struct ATSGlyphFractionalMetrics ATSGlyphFractionalMetrics;
  87. #if PRAGMA_STRUCT_ALIGN
  88.     #pragma options align=reset
  89. #elif PRAGMA_STRUCT_PACKPUSH
  90.     #pragma pack(pop)
  91. #elif PRAGMA_STRUCT_PACK
  92.     #pragma pack()
  93. #endif
  94. #ifdef PRAGMA_IMPORT_OFF
  95. #pragma import off
  96. #elif PRAGMA_IMPORT
  97. #pragma import reset
  98. #endif
  99. #ifdef __cplusplus
  100. }
  101. #endif
  102. #endif /* __ATSTYPES__ */