Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

553 lines
14 KiB

  1. /*
  2. File: Palettes.h
  3. Contains: Palette Manager Interfaces.
  4. Version: QuickTime 7.3
  5. Copyright: (c) 2007 (c) 1987-2001 by Apple Computer, Inc., all rights reserved
  6. Bugs?: For bug reports, consult the following page on
  7. the World Wide Web:
  8. http://developer.apple.com/bugreporter/
  9. */
  10. #ifndef __PALETTES__
  11. #define __PALETTES__
  12. #ifndef __QUICKDRAW__
  13. #include <Quickdraw.h>
  14. #endif
  15. #if PRAGMA_ONCE
  16. #pragma once
  17. #endif
  18. #ifdef __cplusplus
  19. extern "C" {
  20. #endif
  21. #if PRAGMA_IMPORT
  22. #pragma import on
  23. #endif
  24. #if PRAGMA_STRUCT_ALIGN
  25. #pragma options align=mac68k
  26. #elif PRAGMA_STRUCT_PACKPUSH
  27. #pragma pack(push, 2)
  28. #elif PRAGMA_STRUCT_PACK
  29. #pragma pack(2)
  30. #endif
  31. enum {
  32. pmCourteous = 0, /*Record use of color on each device touched.*/
  33. pmDithered = 0x0001,
  34. pmTolerant = 0x0002, /*render ciRGB if ciTolerance is exceeded by best match.*/
  35. pmAnimated = 0x0004, /*reserve an index on each device touched and render ciRGB.*/
  36. pmExplicit = 0x0008, /*no reserve, no render, no record; stuff index into port.*/
  37. pmWhite = 0x0010,
  38. pmBlack = 0x0020,
  39. pmInhibitG2 = 0x0100,
  40. pmInhibitC2 = 0x0200,
  41. pmInhibitG4 = 0x0400,
  42. pmInhibitC4 = 0x0800,
  43. pmInhibitG8 = 0x1000,
  44. pmInhibitC8 = 0x2000, /* NSetPalette Update Constants */
  45. pmNoUpdates = 0x8000, /*no updates*/
  46. pmBkUpdates = 0xA000, /*background updates only*/
  47. pmFgUpdates = 0xC000, /*foreground updates only*/
  48. pmAllUpdates = 0xE000 /*all updates*/
  49. };
  50. struct ColorInfo {
  51. RGBColor ciRGB; /*true RGB values*/
  52. short ciUsage; /*color usage*/
  53. short ciTolerance; /*tolerance value*/
  54. short ciDataFields[3]; /*private fields*/
  55. };
  56. typedef struct ColorInfo ColorInfo;
  57. typedef ColorInfo * ColorInfoPtr;
  58. typedef ColorInfoPtr * ColorInfoHandle;
  59. struct Palette {
  60. short pmEntries; /*entries in pmTable*/
  61. short pmDataFields[7]; /*private fields*/
  62. ColorInfo pmInfo[1];
  63. };
  64. typedef struct Palette Palette;
  65. typedef Palette * PalettePtr;
  66. typedef PalettePtr * PaletteHandle;
  67. /*
  68. * InitPalettes()
  69. *
  70. * Availability:
  71. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  72. * CarbonLib: in CarbonLib 1.0 and later
  73. * Mac OS X: in version 10.0 and later
  74. */
  75. EXTERN_API( void )
  76. InitPalettes(void) ONEWORDINLINE(0xAA90);
  77. /*
  78. * NewPalette()
  79. *
  80. * Availability:
  81. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  82. * CarbonLib: in CarbonLib 1.0 and later
  83. * Mac OS X: in version 10.0 and later
  84. */
  85. EXTERN_API( PaletteHandle )
  86. NewPalette(
  87. short entries,
  88. CTabHandle srcColors,
  89. short srcUsage,
  90. short srcTolerance) ONEWORDINLINE(0xAA91);
  91. /*
  92. * GetNewPalette()
  93. *
  94. * Availability:
  95. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  96. * CarbonLib: in CarbonLib 1.0 and later
  97. * Mac OS X: in version 10.0 and later
  98. */
  99. EXTERN_API( PaletteHandle )
  100. GetNewPalette(short PaletteID) ONEWORDINLINE(0xAA92);
  101. /*
  102. * DisposePalette()
  103. *
  104. * Availability:
  105. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  106. * CarbonLib: in CarbonLib 1.0 and later
  107. * Mac OS X: in version 10.0 and later
  108. */
  109. EXTERN_API( void )
  110. DisposePalette(PaletteHandle srcPalette) ONEWORDINLINE(0xAA93);
  111. /*
  112. * ActivatePalette()
  113. *
  114. * Availability:
  115. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  116. * CarbonLib: in CarbonLib 1.0 and later
  117. * Mac OS X: in version 10.0 and later
  118. */
  119. EXTERN_API( void )
  120. ActivatePalette(WindowRef srcWindow) ONEWORDINLINE(0xAA94);
  121. /*
  122. * SetPalette()
  123. *
  124. * Availability:
  125. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  126. * CarbonLib: in CarbonLib 1.0 and later
  127. * Mac OS X: in version 10.0 and later
  128. */
  129. EXTERN_API( void )
  130. SetPalette(
  131. WindowRef dstWindow,
  132. PaletteHandle srcPalette,
  133. Boolean cUpdates) ONEWORDINLINE(0xAA95);
  134. /*
  135. * NSetPalette()
  136. *
  137. * Availability:
  138. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  139. * CarbonLib: in CarbonLib 1.0 and later
  140. * Mac OS X: in version 10.0 and later
  141. */
  142. EXTERN_API( void )
  143. NSetPalette(
  144. WindowRef dstWindow,
  145. PaletteHandle srcPalette,
  146. short nCUpdates) ONEWORDINLINE(0xAA95);
  147. /*
  148. * GetPalette()
  149. *
  150. * Availability:
  151. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  152. * CarbonLib: in CarbonLib 1.0 and later
  153. * Mac OS X: in version 10.0 and later
  154. */
  155. EXTERN_API( PaletteHandle )
  156. GetPalette(WindowRef srcWindow) ONEWORDINLINE(0xAA96);
  157. /*
  158. * CopyPalette()
  159. *
  160. * Availability:
  161. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  162. * CarbonLib: in CarbonLib 1.0 and later
  163. * Mac OS X: in version 10.0 and later
  164. */
  165. EXTERN_API( void )
  166. CopyPalette(
  167. PaletteHandle srcPalette,
  168. PaletteHandle dstPalette,
  169. short srcEntry,
  170. short dstEntry,
  171. short dstLength) ONEWORDINLINE(0xAAA1);
  172. /*
  173. * PmForeColor()
  174. *
  175. * Availability:
  176. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  177. * CarbonLib: in CarbonLib 1.0 and later
  178. * Mac OS X: in version 10.0 and later
  179. */
  180. EXTERN_API( void )
  181. PmForeColor(short dstEntry) ONEWORDINLINE(0xAA97);
  182. /*
  183. * PmBackColor()
  184. *
  185. * Availability:
  186. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  187. * CarbonLib: in CarbonLib 1.0 and later
  188. * Mac OS X: in version 10.0 and later
  189. */
  190. EXTERN_API( void )
  191. PmBackColor(short dstEntry) ONEWORDINLINE(0xAA98);
  192. /*
  193. * AnimateEntry()
  194. *
  195. * Availability:
  196. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  197. * CarbonLib: in CarbonLib 1.0 and later
  198. * Mac OS X: in version 10.0 and later
  199. */
  200. EXTERN_API( void )
  201. AnimateEntry(
  202. WindowRef dstWindow,
  203. short dstEntry,
  204. const RGBColor * srcRGB) ONEWORDINLINE(0xAA99);
  205. /*
  206. * [Mac]AnimatePalette()
  207. *
  208. * Availability:
  209. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  210. * CarbonLib: in CarbonLib 1.0 and later
  211. * Mac OS X: in version 10.0 and later
  212. */
  213. #if TARGET_OS_MAC
  214. #define MacAnimatePalette AnimatePalette
  215. #endif
  216. EXTERN_API( void )
  217. MacAnimatePalette(
  218. WindowRef dstWindow,
  219. CTabHandle srcCTab,
  220. short srcIndex,
  221. short dstEntry,
  222. short dstLength) ONEWORDINLINE(0xAA9A);
  223. /*
  224. * GetEntryColor()
  225. *
  226. * Availability:
  227. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  228. * CarbonLib: in CarbonLib 1.0 and later
  229. * Mac OS X: in version 10.0 and later
  230. */
  231. EXTERN_API( void )
  232. GetEntryColor(
  233. PaletteHandle srcPalette,
  234. short srcEntry,
  235. RGBColor * dstRGB) ONEWORDINLINE(0xAA9B);
  236. /*
  237. * SetEntryColor()
  238. *
  239. * Availability:
  240. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  241. * CarbonLib: in CarbonLib 1.0 and later
  242. * Mac OS X: in version 10.0 and later
  243. */
  244. EXTERN_API( void )
  245. SetEntryColor(
  246. PaletteHandle dstPalette,
  247. short dstEntry,
  248. const RGBColor * srcRGB) ONEWORDINLINE(0xAA9C);
  249. /*
  250. * GetEntryUsage()
  251. *
  252. * Availability:
  253. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  254. * CarbonLib: in CarbonLib 1.0 and later
  255. * Mac OS X: in version 10.0 and later
  256. */
  257. EXTERN_API( void )
  258. GetEntryUsage(
  259. PaletteHandle srcPalette,
  260. short srcEntry,
  261. short * dstUsage,
  262. short * dstTolerance) ONEWORDINLINE(0xAA9D);
  263. /*
  264. * SetEntryUsage()
  265. *
  266. * Availability:
  267. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  268. * CarbonLib: in CarbonLib 1.0 and later
  269. * Mac OS X: in version 10.0 and later
  270. */
  271. EXTERN_API( void )
  272. SetEntryUsage(
  273. PaletteHandle dstPalette,
  274. short dstEntry,
  275. short srcUsage,
  276. short srcTolerance) ONEWORDINLINE(0xAA9E);
  277. /*
  278. * CTab2Palette()
  279. *
  280. * Availability:
  281. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  282. * CarbonLib: in CarbonLib 1.0 and later
  283. * Mac OS X: in version 10.0 and later
  284. */
  285. EXTERN_API( void )
  286. CTab2Palette(
  287. CTabHandle srcCTab,
  288. PaletteHandle dstPalette,
  289. short srcUsage,
  290. short srcTolerance) ONEWORDINLINE(0xAA9F);
  291. /*
  292. * Palette2CTab()
  293. *
  294. * Availability:
  295. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  296. * CarbonLib: in CarbonLib 1.0 and later
  297. * Mac OS X: in version 10.0 and later
  298. */
  299. EXTERN_API( void )
  300. Palette2CTab(
  301. PaletteHandle srcPalette,
  302. CTabHandle dstCTab) ONEWORDINLINE(0xAAA0);
  303. /*
  304. * Entry2Index()
  305. *
  306. * Availability:
  307. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  308. * CarbonLib: in CarbonLib 1.0 and later
  309. * Mac OS X: in version 10.0 and later
  310. */
  311. EXTERN_API( long )
  312. Entry2Index(short entry) TWOWORDINLINE(0x7000, 0xAAA2);
  313. /*
  314. * RestoreDeviceClut()
  315. *
  316. * Availability:
  317. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  318. * CarbonLib: in CarbonLib 1.0 and later
  319. * Mac OS X: in version 10.0 and later
  320. */
  321. EXTERN_API( void )
  322. RestoreDeviceClut(GDHandle gd) TWOWORDINLINE(0x7002, 0xAAA2);
  323. /*
  324. * [Mac]ResizePalette()
  325. *
  326. * Availability:
  327. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  328. * CarbonLib: in CarbonLib 1.0 and later
  329. * Mac OS X: in version 10.0 and later
  330. */
  331. #if TARGET_OS_MAC
  332. #define MacResizePalette ResizePalette
  333. #endif
  334. EXTERN_API( void )
  335. MacResizePalette(
  336. PaletteHandle p,
  337. short size) TWOWORDINLINE(0x7003, 0xAAA2);
  338. /*
  339. * SaveFore()
  340. *
  341. * Availability:
  342. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  343. * CarbonLib: in CarbonLib 1.0 and later
  344. * Mac OS X: in version 10.0 and later
  345. */
  346. EXTERN_API( void )
  347. SaveFore(ColorSpec * c) THREEWORDINLINE(0x303C, 0x040D, 0xAAA2);
  348. /*
  349. * SaveBack()
  350. *
  351. * Availability:
  352. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  353. * CarbonLib: in CarbonLib 1.0 and later
  354. * Mac OS X: in version 10.0 and later
  355. */
  356. EXTERN_API( void )
  357. SaveBack(ColorSpec * c) THREEWORDINLINE(0x303C, 0x040E, 0xAAA2);
  358. /*
  359. * RestoreFore()
  360. *
  361. * Availability:
  362. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  363. * CarbonLib: in CarbonLib 1.0 and later
  364. * Mac OS X: in version 10.0 and later
  365. */
  366. EXTERN_API( void )
  367. RestoreFore(const ColorSpec * c) THREEWORDINLINE(0x303C, 0x040F, 0xAAA2);
  368. /*
  369. * RestoreBack()
  370. *
  371. * Availability:
  372. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  373. * CarbonLib: in CarbonLib 1.0 and later
  374. * Mac OS X: in version 10.0 and later
  375. */
  376. EXTERN_API( void )
  377. RestoreBack(const ColorSpec * c) THREEWORDINLINE(0x303C, 0x0410, 0xAAA2);
  378. /*
  379. * SetDepth()
  380. *
  381. * Availability:
  382. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  383. * CarbonLib: in CarbonLib 1.0 and later
  384. * Mac OS X: in version 10.0 and later
  385. */
  386. EXTERN_API( OSErr )
  387. SetDepth(
  388. GDHandle gd,
  389. short depth,
  390. short whichFlags,
  391. short flags) THREEWORDINLINE(0x303C, 0x0A13, 0xAAA2);
  392. /*
  393. * HasDepth()
  394. *
  395. * Availability:
  396. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  397. * CarbonLib: in CarbonLib 1.0 and later
  398. * Mac OS X: in version 10.0 and later
  399. */
  400. EXTERN_API( short )
  401. HasDepth(
  402. GDHandle gd,
  403. short depth,
  404. short whichFlags,
  405. short flags) THREEWORDINLINE(0x303C, 0x0A14, 0xAAA2);
  406. /*
  407. * PMgrVersion()
  408. *
  409. * Availability:
  410. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  411. * CarbonLib: in CarbonLib 1.0 and later
  412. * Mac OS X: in version 10.0 and later
  413. */
  414. EXTERN_API( short )
  415. PMgrVersion(void) TWOWORDINLINE(0x7015, 0xAAA2);
  416. /*
  417. * SetPaletteUpdates()
  418. *
  419. * Availability:
  420. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  421. * CarbonLib: in CarbonLib 1.0 and later
  422. * Mac OS X: in version 10.0 and later
  423. */
  424. EXTERN_API( void )
  425. SetPaletteUpdates(
  426. PaletteHandle p,
  427. short updates) THREEWORDINLINE(0x303C, 0x0616, 0xAAA2);
  428. /*
  429. * GetPaletteUpdates()
  430. *
  431. * Availability:
  432. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  433. * CarbonLib: in CarbonLib 1.0 and later
  434. * Mac OS X: in version 10.0 and later
  435. */
  436. EXTERN_API( short )
  437. GetPaletteUpdates(PaletteHandle p) THREEWORDINLINE(0x303C, 0x0417, 0xAAA2);
  438. /*
  439. * GetGray()
  440. *
  441. * Availability:
  442. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  443. * CarbonLib: in CarbonLib 1.0 and later
  444. * Mac OS X: in version 10.0 and later
  445. */
  446. EXTERN_API( Boolean )
  447. GetGray(
  448. GDHandle device,
  449. const RGBColor * backGround,
  450. RGBColor * foreGround) THREEWORDINLINE(0x303C, 0x0C19, 0xAAA2);
  451. #if PRAGMA_STRUCT_ALIGN
  452. #pragma options align=reset
  453. #elif PRAGMA_STRUCT_PACKPUSH
  454. #pragma pack(pop)
  455. #elif PRAGMA_STRUCT_PACK
  456. #pragma pack()
  457. #endif
  458. #ifdef PRAGMA_IMPORT_OFF
  459. #pragma import off
  460. #elif PRAGMA_IMPORT
  461. #pragma import reset
  462. #endif
  463. #ifdef __cplusplus
  464. }
  465. #endif
  466. #endif /* __PALETTES__ */