ATSUnicodeGlyphs.pas 40 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046
  1. {
  2. File: QD/ATSUnicodeGlyphs.h
  3. Contains: ATSUI glyph handling functions.
  4. Version: Quickdraw-150~1
  5. Copyright: © 2003 by Apple Computer, Inc., all rights reserved.
  6. Bugs?: For bug reports, consult the following page on
  7. the World Wide Web:
  8. http://www.freepascal.org/bugs.html
  9. }
  10. { Pascal Translation: Peter N Lewis, <[email protected]>, 2004 }
  11. {
  12. Modified for use with Free Pascal
  13. Version 200
  14. Please report any bugs to <[email protected]>
  15. }
  16. {$mode macpas}
  17. {$packenum 1}
  18. {$macro on}
  19. {$inline on}
  20. {$CALLING MWPASCAL}
  21. unit ATSUnicodeGlyphs;
  22. interface
  23. {$setc UNIVERSAL_INTERFACES_VERSION := $0342}
  24. {$setc GAP_INTERFACES_VERSION := $0200}
  25. {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
  26. {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
  27. {$endc}
  28. {$ifc defined CPUPOWERPC and defined CPUI386}
  29. {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
  30. {$endc}
  31. {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
  32. {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
  33. {$endc}
  34. {$ifc not defined __ppc__ and defined CPUPOWERPC}
  35. {$setc __ppc__ := 1}
  36. {$elsec}
  37. {$setc __ppc__ := 0}
  38. {$endc}
  39. {$ifc not defined __i386__ and defined CPUI386}
  40. {$setc __i386__ := 1}
  41. {$elsec}
  42. {$setc __i386__ := 0}
  43. {$endc}
  44. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  45. {$error Conflicting definitions for __ppc__ and __i386__}
  46. {$endc}
  47. {$ifc defined __ppc__ and __ppc__}
  48. {$setc TARGET_CPU_PPC := TRUE}
  49. {$setc TARGET_CPU_X86 := FALSE}
  50. {$elifc defined __i386__ and __i386__}
  51. {$setc TARGET_CPU_PPC := FALSE}
  52. {$setc TARGET_CPU_X86 := TRUE}
  53. {$elsec}
  54. {$error Neither __ppc__ nor __i386__ is defined.}
  55. {$endc}
  56. {$setc TARGET_CPU_PPC_64 := FALSE}
  57. {$ifc defined FPC_BIG_ENDIAN}
  58. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  59. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  60. {$elifc defined FPC_LITTLE_ENDIAN}
  61. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  62. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  63. {$elsec}
  64. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  65. {$endc}
  66. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  67. {$setc CALL_NOT_IN_CARBON := FALSE}
  68. {$setc OLDROUTINENAMES := FALSE}
  69. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  70. {$setc OPAQUE_UPP_TYPES := TRUE}
  71. {$setc OTCARBONAPPLICATION := TRUE}
  72. {$setc OTKERNEL := FALSE}
  73. {$setc PM_USE_SESSION_APIS := TRUE}
  74. {$setc TARGET_API_MAC_CARBON := TRUE}
  75. {$setc TARGET_API_MAC_OS8 := FALSE}
  76. {$setc TARGET_API_MAC_OSX := TRUE}
  77. {$setc TARGET_CARBON := TRUE}
  78. {$setc TARGET_CPU_68K := FALSE}
  79. {$setc TARGET_CPU_MIPS := FALSE}
  80. {$setc TARGET_CPU_SPARC := FALSE}
  81. {$setc TARGET_OS_MAC := TRUE}
  82. {$setc TARGET_OS_UNIX := FALSE}
  83. {$setc TARGET_OS_WIN32 := FALSE}
  84. {$setc TARGET_RT_MAC_68881 := FALSE}
  85. {$setc TARGET_RT_MAC_CFM := FALSE}
  86. {$setc TARGET_RT_MAC_MACHO := TRUE}
  87. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  88. {$setc TYPE_BOOL := FALSE}
  89. {$setc TYPE_EXTENDED := FALSE}
  90. {$setc TYPE_LONGLONG := TRUE}
  91. uses MacTypes,ATSUnicodeTypes,TextCommon,ATSTypes;
  92. {$ALIGN MAC68K}
  93. { ---------------------------------------------------------------------------- }
  94. { ATSUI glyph metrics }
  95. { ---------------------------------------------------------------------------- }
  96. {
  97. * ATSUGlyphGetIdealMetrics()
  98. *
  99. * Summary:
  100. * Obtains resolution-independent font metric information for glyphs
  101. * associated with a given style object.
  102. *
  103. * Discussion:
  104. * The advance width is the full horizontal width of the glyph as
  105. * measured from its origin to the origin of the next glyph on the
  106. * line, including the left-side and right-side bearings. For
  107. * vertical text, the advance height is the sum of the top-side
  108. * bearing, the bounding-box height, and the bottom-side bearing.
  109. * You can call the ATSUGlyphGetIdealMetrics function to obtain an
  110. * array of ATSGlyphIdealMetrics structures containing values for
  111. * the specified glyphs' advance and side bearings.
  112. * ATSUGlyphGetIdealMetrics can analyze both horizontal and vertical
  113. * text, automatically producing the appropriate bearing values
  114. * (oriented for width or height, respectively) for each. You should
  115. * call ATSUGlyphGetIdealMetrics to obtain resolution-independent
  116. * glyph metrics. To obtain device-adjusted (that is,
  117. * resolution-dependent) glyph metrics, call the function
  118. * ATSUGlyphGetScreenMetrics.
  119. *
  120. * Parameters:
  121. *
  122. * iATSUStyle:
  123. * A style referring to a font you wish to obtain glyph metrics
  124. * from.
  125. *
  126. * iNumOfGlyphs:
  127. * The number of glyph IDs you are passing in to be examined. This
  128. * value should be equal to the size of the array you are passing
  129. * in for the iGlyphIDs parameter.
  130. *
  131. * iGlyphIDs:
  132. * An array of glyph IDs referring to glyphs for which you wish to
  133. * obtain metrics.
  134. *
  135. * iInputOffset:
  136. * A ByteOffset value specifying the offset in bytes between glyph
  137. * IDs in the iGlyphIDs array.
  138. *
  139. * oIdealMetrics:
  140. * A pointer to memory you have allocated for an array of
  141. * ATSGlyphIdealMetrics structures. On return, each structure
  142. * contains advance and side-bearing values for a glyph. See
  143. * ATSTypes.h for more information regarding the
  144. * ATSGlyphIdealMetrics structure.
  145. *
  146. * Result:
  147. * On success, noErr is returned. See MacErrors.h for possible error
  148. * codes.
  149. *
  150. * Availability:
  151. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  152. * CarbonLib: in CarbonLib 1.1 and later
  153. * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
  154. }
  155. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  156. function ATSUGlyphGetIdealMetrics( iATSUStyle: ATSUStyle; iNumOfGlyphs: ItemCount; iGlyphIDs: GlyphIDPtr; iInputOffset: ByteOffset; oIdealMetrics: ATSGlyphIdealMetricsPtr ): OSStatus; external name '_ATSUGlyphGetIdealMetrics';
  157. {
  158. * ATSUGlyphGetScreenMetrics()
  159. *
  160. * Summary:
  161. * Obtains device-adjusted font metric information for glyphs
  162. * associated with a given style object.
  163. *
  164. * Discussion:
  165. * You can call the ATSUGlyphGetScreenMetrics function to obtain an
  166. * array of ATSGlyphScreenMetrics structures containing values for
  167. * the specified glyphs' advance and side bearings, top left,
  168. * height, and width. You should call ATSUGlyphGetScreenMetrics to
  169. * obtain device-adjusted (that is, resolution-dependent) glyph
  170. * metrics. To obtain resolution-independent glyph metrics, call the
  171. * function ATSUGlyphGetIdealMetrics.
  172. *
  173. * Parameters:
  174. *
  175. * iATSUStyle:
  176. * A style referring to a font you wish to obtain glyph metrics
  177. * from.
  178. *
  179. * iNumOfGlyphs:
  180. * The number of glyph IDs you are passing in to be examined. This
  181. * value should be equal to the size of the array you are passing
  182. * in for the iGlyphIDs parameter.
  183. *
  184. * iGlyphIDs:
  185. * An array of glyph IDs referring to glyphs for which you wish to
  186. * obtain metrics.
  187. *
  188. * iInputOffset:
  189. * A ByteOffset value specifying the offset in bytes between glyph
  190. * IDs in the iGlyphIDs array.
  191. *
  192. * iForcingAntiAlias:
  193. * A Boolean value indicating whether anti-aliasing is forced for
  194. * the style object.
  195. *
  196. * iAntiAliasSwitch:
  197. * A Boolean value indicating whether anti-aliasing is currently
  198. * on or off.
  199. *
  200. * oScreenMetrics:
  201. * A pointer to memory you have allocated for an array of
  202. * ATSGlyphScreenMetrics structures. On return, each structure
  203. * contains advance and side-bearing values for a glyph. See
  204. * ATSTypes.h for more information regarding the
  205. * ATSGlyphScreenMetrics structure.
  206. *
  207. * Result:
  208. * On success, noErr is returned. See MacErrors.h for possible error
  209. * codes.
  210. *
  211. * Availability:
  212. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  213. * CarbonLib: in CarbonLib 1.1 and later
  214. * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
  215. }
  216. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  217. function ATSUGlyphGetScreenMetrics( iATSUStyle: ATSUStyle; iNumOfGlyphs: ItemCount; iGlyphIDs: GlyphIDPtr; iInputOffset: ByteOffset; iForcingAntiAlias: Boolean; iAntiAliasSwitch: Boolean; oScreenMetrics: ATSGlyphScreenMetricsPtr ): OSStatus; external name '_ATSUGlyphGetScreenMetrics';
  218. { ---------------------------------------------------------------------------- }
  219. { ATSUI glyph curve access functions and callbacks }
  220. { ---------------------------------------------------------------------------- }
  221. {
  222. * ATSUGetNativeCurveType()
  223. *
  224. * Summary:
  225. * Returns the native curve format for a specific font.
  226. *
  227. * Discussion:
  228. * Use this function to decide whether to call
  229. * ATSUGlyphGetQuadraticPaths or ATSUGlyphGetCubicPaths. Both
  230. * functions will return curves for all valid ATSUI fonts, but if
  231. * the curve type you request is not the native curve type of the
  232. * font, the curves you get back will be mathematically converted,
  233. * rather than native font data. See the definition of ATSCurveType
  234. * in ATSTypes.h for possible return values from this function.
  235. *
  236. * Parameters:
  237. *
  238. * iATSUStyle:
  239. * A style referencing a font for which you wish to obtain the
  240. * native curve type.
  241. *
  242. * oCurveType:
  243. * On return, a value indicating the native curve type of the font
  244. * referenced by iATSUStyle. See the definition of ATSCurveType in
  245. * ATSTypes.h for a list of possible return values for this
  246. * parameter.
  247. *
  248. * Result:
  249. * On success, noErr is returned. See MacErrors.h for possible error
  250. * codes.
  251. *
  252. * Availability:
  253. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  254. * CarbonLib: in CarbonLib 1.1 and later
  255. * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
  256. }
  257. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  258. function ATSUGetNativeCurveType( iATSUStyle: ATSUStyle; var oCurveType: ATSCurveType ): OSStatus; external name '_ATSUGetNativeCurveType';
  259. {
  260. * ATSQuadraticNewPathProcPtr
  261. *
  262. * Discussion:
  263. * A pointer to a client supplied callback function for handling
  264. * glyph curve drawing operations. This callback handles operations
  265. * to start a new drawing path.
  266. *
  267. * Parameters:
  268. *
  269. * callBackDataPtr:
  270. * A pointer to any application specific data that may have been
  271. * passed to the callbacks through the iCallbackDataPtr parameter
  272. * of the ATSUGlyphGetQuadraticPaths function.
  273. *
  274. * Result:
  275. * Return status. Pass any errors you wish to propagate back to the
  276. * original caller of ATSUGlyphGetQuadraticPaths through this return
  277. * value. Note that any nonzero result from this callback will halt
  278. * the curve drawing process.
  279. }
  280. type ATSQuadraticNewPathProcPtr = function( callBackDataPtr: UnivPtr ): OSStatus;
  281. // Beats me what this translates to. If someone finds out they can tell me and we'll update it
  282. // typedef STACK_UPP_TYPE(ATSQuadraticNewPathProcPtr) ATSQuadraticNewPathUPP;
  283. type ATSQuadraticNewPathUPP = Ptr;
  284. {
  285. * NewATSQuadraticNewPathUPP()
  286. *
  287. * Availability:
  288. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  289. * CarbonLib: in CarbonLib 1.1 and later
  290. * Non-Carbon CFM: available as macro/inline
  291. }
  292. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  293. function NewATSQuadraticNewPathUPP( userRoutine: ATSQuadraticNewPathProcPtr ): ATSQuadraticNewPathUPP; external name '_NewATSQuadraticNewPathUPP';
  294. {
  295. * DisposeATSQuadraticNewPathUPP()
  296. *
  297. * Availability:
  298. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  299. * CarbonLib: in CarbonLib 1.1 and later
  300. * Non-Carbon CFM: available as macro/inline
  301. }
  302. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  303. procedure DisposeATSQuadraticNewPathUPP( userUPP: ATSQuadraticNewPathUPP ); external name '_DisposeATSQuadraticNewPathUPP';
  304. {
  305. * InvokeATSQuadraticNewPathUPP()
  306. *
  307. * Availability:
  308. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  309. * CarbonLib: in CarbonLib 1.1 and later
  310. * Non-Carbon CFM: available as macro/inline
  311. }
  312. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  313. function InvokeATSQuadraticNewPathUPP( callBackDataPtr: UnivPtr; userUPP: ATSQuadraticNewPathUPP ): OSStatus; external name '_InvokeATSQuadraticNewPathUPP';
  314. {
  315. * ATSQuadraticLineProcPtr
  316. *
  317. * Discussion:
  318. * A pointer to a client supplied callback function for handling
  319. * glyph curve drawing operations. This callback handles operations
  320. * to draw straight lines.
  321. *
  322. * Parameters:
  323. *
  324. * pt1:
  325. * The starting point of the line.
  326. *
  327. * pt2:
  328. * The end point of the line.
  329. *
  330. * callBackDataPtr:
  331. * A pointer to any application specific data that may have been
  332. * passed to the callbacks through the iCallbackDataPtr parameter
  333. * of the ATSUGlyphGetQuadraticPaths function.
  334. *
  335. * Result:
  336. * Return status. Pass any errors you wish to propagate back to the
  337. * original caller of ATSUGlyphGetQuadraticPaths through this return
  338. * value. Note that any nonzero result from this callback will halt
  339. * the curve drawing process.
  340. }
  341. type ATSQuadraticLineProcPtr = function( const (*var*) pt1, pt2: Float32Point; callBackDataPtr: UnivPtr ): OSStatus;
  342. // Beats me what this translates to. If someone finds out they can tell me and we'll update it
  343. // typedef STACK_UPP_TYPE(ATSQuadraticLineProcPtr) ATSQuadraticLineUPP;
  344. type ATSQuadraticLineUPP = Ptr;
  345. {
  346. * NewATSQuadraticLineUPP()
  347. *
  348. * Availability:
  349. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  350. * CarbonLib: in CarbonLib 1.1 and later
  351. * Non-Carbon CFM: available as macro/inline
  352. }
  353. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  354. function NewATSQuadraticLineUPP( userRoutine: ATSQuadraticLineProcPtr ): ATSQuadraticLineUPP; external name '_NewATSQuadraticLineUPP';
  355. {
  356. * DisposeATSQuadraticLineUPP()
  357. *
  358. * Availability:
  359. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  360. * CarbonLib: in CarbonLib 1.1 and later
  361. * Non-Carbon CFM: available as macro/inline
  362. }
  363. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  364. procedure DisposeATSQuadraticLineUPP( userUPP: ATSQuadraticLineUPP ); external name '_DisposeATSQuadraticLineUPP';
  365. {
  366. * InvokeATSQuadraticLineUPP()
  367. *
  368. * Availability:
  369. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  370. * CarbonLib: in CarbonLib 1.1 and later
  371. * Non-Carbon CFM: available as macro/inline
  372. }
  373. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  374. function InvokeATSQuadraticLineUPP( const (*var*) pt1, pt2: Float32Point; callBackDataPtr: UnivPtr; userUPP: ATSQuadraticLineUPP ): OSStatus; external name '_InvokeATSQuadraticLineUPP';
  375. {
  376. * ATSQuadraticCurveProcPtr
  377. *
  378. * Discussion:
  379. * A pointer to a client supplied callback function for handling
  380. * glyph curve drawing operations. This callback handles operations
  381. * to draw curves. The curve is a quadratic patch specified by a
  382. * start point (pt1), and end point (pt2), and a single control
  383. * point (controlPt).
  384. *
  385. * Parameters:
  386. *
  387. * pt1:
  388. * The starting point of the curve.
  389. *
  390. * controlPt:
  391. * The off-curve control point.
  392. *
  393. * pt2:
  394. * The end point of the curve.
  395. *
  396. * callBackDataPtr:
  397. * A pointer to any application specific data that may have been
  398. * passed to the callbacks through the iCallbackDataPtr parameter
  399. * of the ATSUGlyphGetQuadraticPaths function.
  400. *
  401. * Result:
  402. * Return status. Pass any errors you wish to propagate back to the
  403. * original caller of ATSUGlyphGetQuadraticPaths through this return
  404. * value. Note that any nonzero result from this callback will halt
  405. * the curve drawing process.
  406. }
  407. type ATSQuadraticCurveProcPtr = function( const (*var*) pt1, controlPt, pt2: Float32Point; callBackDataPtr: UnivPtr ): OSStatus;
  408. // Beats me what this translates to. If someone finds out they can tell me and we'll update it
  409. // typedef STACK_UPP_TYPE(ATSQuadraticCurveProcPtr) ATSQuadraticCurveUPP;
  410. type ATSQuadraticCurveUPP = Ptr;
  411. {
  412. * NewATSQuadraticCurveUPP()
  413. *
  414. * Availability:
  415. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  416. * CarbonLib: in CarbonLib 1.1 and later
  417. * Non-Carbon CFM: available as macro/inline
  418. }
  419. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  420. function NewATSQuadraticCurveUPP( userRoutine: ATSQuadraticCurveProcPtr ): ATSQuadraticCurveUPP; external name '_NewATSQuadraticCurveUPP';
  421. {
  422. * DisposeATSQuadraticCurveUPP()
  423. *
  424. * Availability:
  425. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  426. * CarbonLib: in CarbonLib 1.1 and later
  427. * Non-Carbon CFM: available as macro/inline
  428. }
  429. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  430. procedure DisposeATSQuadraticCurveUPP( userUPP: ATSQuadraticCurveUPP ); external name '_DisposeATSQuadraticCurveUPP';
  431. {
  432. * InvokeATSQuadraticCurveUPP()
  433. *
  434. * Availability:
  435. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  436. * CarbonLib: in CarbonLib 1.1 and later
  437. * Non-Carbon CFM: available as macro/inline
  438. }
  439. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  440. function InvokeATSQuadraticCurveUPP( const (*var*) pt1, controlPt, pt2: Float32Point; callBackDataPtr: UnivPtr; userUPP: ATSQuadraticCurveUPP ): OSStatus; external name '_InvokeATSQuadraticCurveUPP';
  441. {
  442. * ATSQuadraticClosePathProcPtr
  443. *
  444. * Discussion:
  445. * A pointer to a client supplied callback function for handling
  446. * glyph curve drawing operations. This callback handles operations
  447. * to close the current drawing path.
  448. *
  449. * Parameters:
  450. *
  451. * callBackDataPtr:
  452. * A pointer to any application specific data that may have been
  453. * passed to the callbacks through the iCallbackDataPtr parameter
  454. * of the ATSUGlyphGetQuadraticPaths function.
  455. *
  456. * Result:
  457. * Return status. Pass any errors you wish to propagate back to the
  458. * original caller of ATSUGlyphGetQuadraticPaths through this return
  459. * value. Note that any nonzero result from this callback will halt
  460. * the curve drawing process.
  461. }
  462. type ATSQuadraticClosePathProcPtr = function( callBackDataPtr: UnivPtr ): OSStatus;
  463. // Beats me what this translates to. If someone finds out they can tell me and we'll update it
  464. // typedef STACK_UPP_TYPE(ATSQuadraticClosePathProcPtr) ATSQuadraticClosePathUPP;
  465. type ATSQuadraticClosePathUPP = Ptr;
  466. {
  467. * NewATSQuadraticClosePathUPP()
  468. *
  469. * Availability:
  470. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  471. * CarbonLib: in CarbonLib 1.1 and later
  472. * Non-Carbon CFM: available as macro/inline
  473. }
  474. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  475. function NewATSQuadraticClosePathUPP( userRoutine: ATSQuadraticClosePathProcPtr ): ATSQuadraticClosePathUPP; external name '_NewATSQuadraticClosePathUPP';
  476. {
  477. * DisposeATSQuadraticClosePathUPP()
  478. *
  479. * Availability:
  480. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  481. * CarbonLib: in CarbonLib 1.1 and later
  482. * Non-Carbon CFM: available as macro/inline
  483. }
  484. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  485. procedure DisposeATSQuadraticClosePathUPP( userUPP: ATSQuadraticClosePathUPP ); external name '_DisposeATSQuadraticClosePathUPP';
  486. {
  487. * InvokeATSQuadraticClosePathUPP()
  488. *
  489. * Availability:
  490. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  491. * CarbonLib: in CarbonLib 1.1 and later
  492. * Non-Carbon CFM: available as macro/inline
  493. }
  494. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  495. function InvokeATSQuadraticClosePathUPP( callBackDataPtr: UnivPtr; userUPP: ATSQuadraticClosePathUPP ): OSStatus; external name '_InvokeATSQuadraticClosePathUPP';
  496. {
  497. * ATSUGlyphGetQuadraticPaths()
  498. *
  499. * Summary:
  500. * Uses a callback mechanism to obtain a set of Quadratic outlines
  501. * for a specified glyph in a specified font.
  502. *
  503. * Discussion:
  504. * This function will allow you to use callbacks to obtain the exact
  505. * outline of a specified glyph, in quadratic form. Although this
  506. * function will always return results for any valid ATSUI font, you
  507. * should first use the function ATSUGetNativeCurveType to determine
  508. * the native format of the glyph you are interested in. Then,
  509. * either call ATSUGlyphGetQuadraticPaths or ATSUGlyphGetCubicPaths
  510. * based on the result. Otherwise, you may end up with curves that
  511. * are mathematically converted from cubic to quadratic (or vice
  512. * versa), instead of getting native font data. See the definitions
  513. * of ATSQuadraticNewPathProcPtr, ATSQuadraticLineProcPtr,
  514. * ATSQuadraticCurveProcPtr, and ATSQuadraticClosePathProcPtr for
  515. * more information about setting up the callbacks.
  516. *
  517. * Parameters:
  518. *
  519. * iATSUStyle:
  520. * A style referring to a font you wish to obtain a set of glyph
  521. * outlines from.
  522. *
  523. * iGlyphID:
  524. * A ID number referring to the glyph for which you wish to obtain
  525. * outline data. Use the ATSUI direct access functions in
  526. * ATSUnicodeDirectAccess.h to obtain values to pass for this
  527. * parameter.
  528. *
  529. * iNewPathProc:
  530. * A pointer to a callback function for quadratic new path
  531. * operations. See the definition of ATSQuadraticNewPathProcPtr
  532. * for more information about creating, disposing, and invoking
  533. * this type of Universal Procedure Pointer.
  534. *
  535. * iLineProc:
  536. * A pointer to a callback function for quadratic LineTo
  537. * operations. See the definition of ATSQuadraticLineProcPtr for
  538. * more information about creating, disposing, and invoking this
  539. * type of Universal Procedure Pointer.
  540. *
  541. * iCurveProc:
  542. * A pointer to a callback function for quadratic curve
  543. * operations. See the definition of ATSQuadraticCurveProcPtr for
  544. * more information about creating, disposing, and invoking this
  545. * type of Universal Procedure Pointer.
  546. *
  547. * iClosePathProc:
  548. * A pointer to a callback function for quadratic close path
  549. * operations. See the definition of ATSQuadraticClosePathProcPtr
  550. * for more information about creating, disposing, and invoking
  551. * this type of Universal Procedure Pointer.
  552. *
  553. * iCallbackDataPtr:
  554. * Any valid pointer. Any application specific data you wish to
  555. * pass to your callbacks may be sent through this parameter.
  556. *
  557. * oCallbackResult:
  558. * On return, status returned by callback functions. If an error
  559. * occurs, callbacks may communicate it through this parameter.
  560. *
  561. * Result:
  562. * On success, noErr is returned. See MacErrors.h for possible error
  563. * codes.
  564. *
  565. * Availability:
  566. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  567. * CarbonLib: in CarbonLib 1.1 and later
  568. * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
  569. }
  570. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  571. function ATSUGlyphGetQuadraticPaths( iATSUStyle: ATSUStyle; iGlyphID: GlyphID; iNewPathProc: ATSQuadraticNewPathUPP; iLineProc: ATSQuadraticLineUPP; iCurveProc: ATSQuadraticCurveUPP; iClosePathProc: ATSQuadraticClosePathUPP; iCallbackDataPtr: UnivPtr; var oCallbackResult: OSStatus ): OSStatus; external name '_ATSUGlyphGetQuadraticPaths';
  572. {
  573. * ATSCubicMoveToProcPtr
  574. *
  575. * Discussion:
  576. * A pointer to a client supplied callback function for handling
  577. * glyph curve drawing operations. This callback handles operations
  578. * to move the current pen location.
  579. *
  580. * Parameters:
  581. *
  582. * pt:
  583. * The point to which to move the current pen location.
  584. *
  585. * callBackDataPtr:
  586. * A pointer to any application specific data that may have been
  587. * passed to the callbacks through the iCallbackDataPtr parameter
  588. * of the ATSUGlyphGetCubicPaths function.
  589. *
  590. * Result:
  591. * Return status. Pass any errors you wish to propagate back to the
  592. * original caller of ATSUGlyphGetCubicPaths through this return
  593. * value. Note that any nonzero result from this callback will halt
  594. * the curve drawing process.
  595. }
  596. type ATSCubicMoveToProcPtr = function( const (*var*) pt: Float32Point; callBackDataPtr: UnivPtr ): OSStatus;
  597. // Beats me what this translates to. If someone finds out they can tell me and we'll update it
  598. // typedef STACK_UPP_TYPE(ATSCubicMoveToProcPtr) ATSCubicMoveToUPP;
  599. type ATSCubicMoveToUPP = Ptr;
  600. {
  601. * NewATSCubicMoveToUPP()
  602. *
  603. * Availability:
  604. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  605. * CarbonLib: in CarbonLib 1.1 and later
  606. * Non-Carbon CFM: available as macro/inline
  607. }
  608. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  609. function NewATSCubicMoveToUPP( userRoutine: ATSCubicMoveToProcPtr ): ATSCubicMoveToUPP; external name '_NewATSCubicMoveToUPP';
  610. {
  611. * DisposeATSCubicMoveToUPP()
  612. *
  613. * Availability:
  614. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  615. * CarbonLib: in CarbonLib 1.1 and later
  616. * Non-Carbon CFM: available as macro/inline
  617. }
  618. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  619. procedure DisposeATSCubicMoveToUPP( userUPP: ATSCubicMoveToUPP ); external name '_DisposeATSCubicMoveToUPP';
  620. {
  621. * InvokeATSCubicMoveToUPP()
  622. *
  623. * Availability:
  624. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  625. * CarbonLib: in CarbonLib 1.1 and later
  626. * Non-Carbon CFM: available as macro/inline
  627. }
  628. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  629. function InvokeATSCubicMoveToUPP( const (*var*) pt: Float32Point; callBackDataPtr: UnivPtr; userUPP: ATSCubicMoveToUPP ): OSStatus; external name '_InvokeATSCubicMoveToUPP';
  630. {
  631. * ATSCubicLineToProcPtr
  632. *
  633. * Discussion:
  634. * A pointer to a client supplied callback function for handling
  635. * glyph curve drawing operations. This callback handles operations
  636. * to draw straight lines.
  637. *
  638. * Parameters:
  639. *
  640. * pt:
  641. * The end point of the line to be drawn. The starting point is
  642. * whatever the current pen position is.
  643. *
  644. * callBackDataPtr:
  645. * A pointer to any application specific data that may have been
  646. * passed to the callbacks through the iCallbackDataPtr parameter
  647. * of the ATSUGlyphGetCubicPaths function.
  648. *
  649. * Result:
  650. * Return status. Pass any errors you wish to propagate back to the
  651. * original caller of ATSUGlyphGetCubicPaths through this return
  652. * value. Note that any nonzero result from this callback will halt
  653. * the curve drawing process.
  654. }
  655. type ATSCubicLineToProcPtr = function( const (*var*) pt: Float32Point; callBackDataPtr: UnivPtr ): OSStatus;
  656. // Beats me what this translates to. If someone finds out they can tell me and we'll update it
  657. // typedef STACK_UPP_TYPE(ATSCubicLineToProcPtr) ATSCubicLineToUPP;
  658. type ATSCubicLineToUPP = Ptr;
  659. {
  660. * NewATSCubicLineToUPP()
  661. *
  662. * Availability:
  663. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  664. * CarbonLib: in CarbonLib 1.1 and later
  665. * Non-Carbon CFM: available as macro/inline
  666. }
  667. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  668. function NewATSCubicLineToUPP( userRoutine: ATSCubicLineToProcPtr ): ATSCubicLineToUPP; external name '_NewATSCubicLineToUPP';
  669. {
  670. * DisposeATSCubicLineToUPP()
  671. *
  672. * Availability:
  673. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  674. * CarbonLib: in CarbonLib 1.1 and later
  675. * Non-Carbon CFM: available as macro/inline
  676. }
  677. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  678. procedure DisposeATSCubicLineToUPP( userUPP: ATSCubicLineToUPP ); external name '_DisposeATSCubicLineToUPP';
  679. {
  680. * InvokeATSCubicLineToUPP()
  681. *
  682. * Availability:
  683. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  684. * CarbonLib: in CarbonLib 1.1 and later
  685. * Non-Carbon CFM: available as macro/inline
  686. }
  687. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  688. function InvokeATSCubicLineToUPP( const (*var*) pt: Float32Point; callBackDataPtr: UnivPtr; userUPP: ATSCubicLineToUPP ): OSStatus; external name '_InvokeATSCubicLineToUPP';
  689. {
  690. * ATSCubicCurveToProcPtr
  691. *
  692. * Discussion:
  693. * A pointer to a client supplied callback function for handling
  694. * glyph curve drawing operations. This callback handles operations
  695. * to draw a curve. The curve is a Bezier patch defined by two
  696. * off-curve control points (pt1 and pt2), and an endpoint (pt3).
  697. * The starting point is whatever the current pen position is.
  698. *
  699. * Parameters:
  700. *
  701. * pt1:
  702. * The first off-curve control point.
  703. *
  704. * pt2:
  705. * The second off-curve control point.
  706. *
  707. * pt3:
  708. * The end point of the curve.
  709. *
  710. * callBackDataPtr:
  711. * A pointer to any application specific data that may have been
  712. * passed to the callbacks through the iCallbackDataPtr parameter
  713. * of the ATSUGlyphGetCubicPaths function.
  714. *
  715. * Result:
  716. * Return status. Pass any errors you wish to propagate back to the
  717. * original caller of ATSUGlyphGetCubicPaths through this return
  718. * value. Note that any nonzero result from this callback will halt
  719. * the curve drawing process.
  720. }
  721. type ATSCubicCurveToProcPtr = function( const (*var*) pt, pt2, pt3: Float32Point; callBackDataPtr: UnivPtr ): OSStatus;
  722. // Beats me what this translates to. If someone finds out they can tell me and we'll update it
  723. // typedef STACK_UPP_TYPE(ATSCubicCurveToProcPtr) ATSCubicCurveToUPP;
  724. type ATSCubicCurveToUPP = Ptr;
  725. {
  726. * NewATSCubicCurveToUPP()
  727. *
  728. * Availability:
  729. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  730. * CarbonLib: in CarbonLib 1.1 and later
  731. * Non-Carbon CFM: available as macro/inline
  732. }
  733. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  734. function NewATSCubicCurveToUPP( userRoutine: ATSCubicCurveToProcPtr ): ATSCubicCurveToUPP; external name '_NewATSCubicCurveToUPP';
  735. {
  736. * DisposeATSCubicCurveToUPP()
  737. *
  738. * Availability:
  739. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  740. * CarbonLib: in CarbonLib 1.1 and later
  741. * Non-Carbon CFM: available as macro/inline
  742. }
  743. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  744. procedure DisposeATSCubicCurveToUPP( userUPP: ATSCubicCurveToUPP ); external name '_DisposeATSCubicCurveToUPP';
  745. {
  746. * InvokeATSCubicCurveToUPP()
  747. *
  748. * Availability:
  749. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  750. * CarbonLib: in CarbonLib 1.1 and later
  751. * Non-Carbon CFM: available as macro/inline
  752. }
  753. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  754. function InvokeATSCubicCurveToUPP( const (*var*) pt, pt2, pt3: Float32Point; callBackDataPtr: UnivPtr; userUPP: ATSCubicCurveToUPP ): OSStatus; external name '_InvokeATSCubicCurveToUPP';
  755. {
  756. * ATSCubicClosePathProcPtr
  757. *
  758. * Discussion:
  759. * A pointer to a client supplied callback function for handling
  760. * glyph curve drawing operations. This callback handles operations
  761. * to close the current drawing path.
  762. *
  763. * Parameters:
  764. *
  765. * callBackDataPtr:
  766. * A pointer to any application specific data that may have been
  767. * passed to the callbacks through the iCallbackDataPtr parameter
  768. * of the ATSUGlyphGetCubicPaths function.
  769. *
  770. * Result:
  771. * Return status. Pass any errors you wish to propagate back to the
  772. * original caller of ATSUGlyphGetCubicPaths through this return
  773. * value. Note that any nonzero result from this callback will halt
  774. * the curve drawing process.
  775. }
  776. type ATSCubicClosePathProcPtr = function( callBackDataPtr: UnivPtr ): OSStatus;
  777. // Beats me what this translates to. If someone finds out they can tell me and we'll update it
  778. // typedef STACK_UPP_TYPE(ATSCubicClosePathProcPtr) ATSCubicClosePathUPP;
  779. type ATSCubicClosePathUPP = Ptr;
  780. {
  781. * NewATSCubicClosePathUPP()
  782. *
  783. * Availability:
  784. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  785. * CarbonLib: in CarbonLib 1.1 and later
  786. * Non-Carbon CFM: available as macro/inline
  787. }
  788. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  789. function NewATSCubicClosePathUPP( userRoutine: ATSCubicClosePathProcPtr ): ATSCubicClosePathUPP; external name '_NewATSCubicClosePathUPP';
  790. {
  791. * DisposeATSCubicClosePathUPP()
  792. *
  793. * Availability:
  794. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  795. * CarbonLib: in CarbonLib 1.1 and later
  796. * Non-Carbon CFM: available as macro/inline
  797. }
  798. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  799. procedure DisposeATSCubicClosePathUPP( userUPP: ATSCubicClosePathUPP ); external name '_DisposeATSCubicClosePathUPP';
  800. {
  801. * InvokeATSCubicClosePathUPP()
  802. *
  803. * Availability:
  804. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  805. * CarbonLib: in CarbonLib 1.1 and later
  806. * Non-Carbon CFM: available as macro/inline
  807. }
  808. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  809. function InvokeATSCubicClosePathUPP( callBackDataPtr: UnivPtr; userUPP: ATSCubicClosePathUPP ): OSStatus; external name '_InvokeATSCubicClosePathUPP';
  810. {
  811. * ATSUGlyphGetCubicPaths()
  812. *
  813. * Summary:
  814. * Uses a callback mechanism to obtain a set of Cubic outlines for a
  815. * specified glyph in a specified font.
  816. *
  817. * Discussion:
  818. * This function will allow you to use callbacks to obtain the exact
  819. * outline of a specified glyph, in cubic form. Although this
  820. * function will always return results for any valid ATSUI font, you
  821. * should first use the function ATSUGetNativeCurveType to determine
  822. * the native format of the glyph you are interested in. Then,
  823. * either call ATSUGlyphGetQuadraticPaths or ATSUGlyphGetCubicPaths
  824. * based on the result. Otherwise, you may end up with curves that
  825. * are mathematically converted from quadratic to cubic (or vice
  826. * versa), instead of getting native font data. See the definitions
  827. * of ATSCubicMoveToProcPtr, ATSCubicLineToProcPtr,
  828. * ATSCubicCurveToProcPtr, and ATSCubicClosePathProcPtr for more
  829. * information about setting up the callbacks.
  830. *
  831. * Parameters:
  832. *
  833. * iATSUStyle:
  834. * A style referring to a font you wish to obtain a set of glyph
  835. * outlines from.
  836. *
  837. * iGlyphID:
  838. * A ID number referring to the glyph for which you wish to obtain
  839. * outline data. Use the ATSUI direct access functions in
  840. * ATSUnicodeDirectAccess.h to obtain values to pass for this
  841. * parameter.
  842. *
  843. * iMoveToProc:
  844. * A pointer to a callback function for cubic MoveTo operations.
  845. * See the definition of ATSCubicMoveToProcPtr for more
  846. * information about creating, disposing, and invoking this type
  847. * of Universal Procedure Pointer.
  848. *
  849. * iLineToProc:
  850. * A pointer to a callback function for cubic LineTo operations.
  851. * See the definition of ATSCubicLineToProcPtr for more
  852. * information about creating, disposing, and invoking this type
  853. * of Universal Procedure Pointer.
  854. *
  855. * iCurveToProc:
  856. * A pointer to a callback function for cubic CurveTo operations.
  857. * See the definition of ATSCubicCurveToProcPtr for more
  858. * information about creating, disposing, and invoking this type
  859. * of Universal Procedure Pointer.
  860. *
  861. * iClosePathProc:
  862. * A pointer to a callback function for cubic MoveTo operations.
  863. * See the definition of ATSCubicClosePathProcPtr for more
  864. * information about creating, disposing, and invoking this type
  865. * of Universal Procedure Pointer.
  866. *
  867. * iCallbackDataPtr:
  868. * Any valid pointer. Any application specific data you wish to
  869. * pass to your callbacks may be sent through this parameter. can be NULL
  870. *
  871. * oCallbackResult:
  872. * On return, status returned by callback functions. If an error
  873. * occurs, callbacks may communicate it through this parameter.
  874. *
  875. * Result:
  876. * On success, noErr is returned. See MacErrors.h for possible error
  877. * codes.
  878. *
  879. * Availability:
  880. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  881. * CarbonLib: in CarbonLib 1.1 and later
  882. * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
  883. }
  884. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  885. function ATSUGlyphGetCubicPaths( iATSUStyle: ATSUStyle; iGlyphID: GlyphID; iMoveToProc: ATSCubicMoveToUPP; iLineToProc: ATSCubicLineToUPP; iCurveToProc: ATSCubicCurveToUPP; iClosePathProc: ATSCubicClosePathUPP; iCallbackDataPtr: UnivPtr; var oCallbackResult: OSStatus ): OSStatus; external name '_ATSUGlyphGetCubicPaths';
  886. {
  887. * ATSUGlyphGetCurvePaths()
  888. *
  889. * Summary:
  890. * Obtains glyph curve data without the use of callbacks.
  891. *
  892. * Discussion:
  893. * This function will return glyph curve data in a single data
  894. * structure rather than through the use of callbacks, but you must
  895. * parse the data structure yourself. ATSUGlyphGetCubicPaths and
  896. * ATSUGlyphGetQuadraticPaths will parse the glyph data for you and
  897. * use the callbacks you provide them to give you access to the
  898. * individual points on the curves. Typically you use the function
  899. * ATSUGlyphGetCurvePaths by calling it twice, as follows: (1) Pass
  900. * a valid style and glyphID into the iATSUStyle and iGlyphID
  901. * parameters, respectively, 0 for the ioBufferSize parameter, and
  902. * NULL for the oPaths parameter. ATSUGlyphGetCurvePaths returns the
  903. * size to use for the oPaths array in the ioBufferSize parameter.
  904. * (2) Allocate enough space an array of the returned size, then
  905. * call the ATSUGlyphGetCurvePaths again, passing a pointer to the
  906. * array in the oPaths parameter. On return, the array contains the
  907. * glyph outline data.
  908. *
  909. * Parameters:
  910. *
  911. * iATSUStyle:
  912. * A style referring to a font you wish to obtain a set of glyph
  913. * outlines from.
  914. *
  915. * iGlyphID:
  916. * A ID number referring to the glyph for which you wish to obtain
  917. * outline data. Use the ATSUI direct access functions in
  918. * ATSUnicodeDirectAccess.h to obtain values to pass for this
  919. * parameter.
  920. *
  921. * ioBufferSize:
  922. * On input, the size of the buffer you have allocated for the
  923. * oPaths parameter. On return, the actual size of the data
  924. * structure that has been copied into the oPaths parameter.
  925. *
  926. * oPaths:
  927. * On return, a data structure containing glyph outline
  928. * information. See ATSTypes.h for a definition of this data
  929. * structure. can be NULL
  930. *
  931. * Result:
  932. * On success, noErr is returned. See MacErrors.h for possible error
  933. * codes.
  934. *
  935. * Availability:
  936. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  937. * CarbonLib: in CarbonLib 1.1 and later
  938. * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
  939. }
  940. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  941. function ATSUGlyphGetCurvePaths( iATSUStyle: ATSUStyle; iGlyphID: GlyphID; ioBufferSize: ByteCountPtr; oPaths: ATSUCurvePathsPtr ): OSStatus; external name '_ATSUGlyphGetCurvePaths';
  942. { Functions listed beyond this point are either deprecated or not recommended }
  943. { ---------------------------------------------------------------------------- }
  944. { ATSUI glyphInfo access (deprecated) }
  945. { ---------------------------------------------------------------------------- }
  946. {
  947. * ATSUGetGlyphInfo()
  948. *
  949. * Summary:
  950. * Obtains a copy of the style and layout information for each glyph
  951. * in a line.
  952. *
  953. * Discussion:
  954. * Please see ATSUnicodeDirectAccess.h for replacement functions.
  955. *
  956. * Availability:
  957. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  958. * CarbonLib: in CarbonLib 1.1 and later
  959. * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
  960. }
  961. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  962. function ATSUGetGlyphInfo( iTextLayout: ATSUTextLayout; iLineStart: UniCharArrayOffset; iLineLength: UniCharCount; ioBufferSize: ByteCountPtr; oGlyphInfoPtr: ATSUGlyphInfoArrayPtr ): OSStatus; external name '_ATSUGetGlyphInfo';
  963. {
  964. * ATSUDrawGlyphInfo()
  965. *
  966. * Summary:
  967. * Draws glyphs at the specified location, based on style and layout
  968. * information specified for each glyph.
  969. *
  970. * Discussion:
  971. * Please see ATSUnicodeDirectAccess.h for replacement functions.
  972. *
  973. * Availability:
  974. * Mac OS X: in version 10.0 and later in ApplicationServices.framework
  975. * CarbonLib: in CarbonLib 1.1 and later
  976. * Non-Carbon CFM: in ATSUnicodeLib 9.1 and later
  977. }
  978. // AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER
  979. function ATSUDrawGlyphInfo( iGlyphInfoArray: ATSUGlyphInfoArrayPtr; iLocation: Float32Point ): OSStatus; external name '_ATSUDrawGlyphInfo';
  980. end.