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.

1850 lines
44 KiB

  1. /*
  2. File: QD3DIO.h
  3. Contains: QuickDraw 3D IO API
  4. Version: Technology: Quickdraw 3D 1.6
  5. Release: QuickTime 7.3
  6. Copyright: (c) 2007 (c) 1995-1999 by Apple Computer, Inc., all rights reserved.
  7. Bugs?: For bug reports, consult the following page on
  8. the World Wide Web:
  9. http://developer.apple.com/bugreporter/
  10. */
  11. #ifndef __QD3DIO__
  12. #define __QD3DIO__
  13. #ifndef __QD3D__
  14. #include <QD3D.h>
  15. #endif
  16. #ifndef __QD3DDRAWCONTEXT__
  17. #include <QD3DDrawContext.h>
  18. #endif
  19. #ifndef __QD3DVIEW__
  20. #include <QD3DView.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=power
  33. #elif PRAGMA_STRUCT_PACKPUSH
  34. #pragma pack(push, 2)
  35. #elif PRAGMA_STRUCT_PACK
  36. #pragma pack(2)
  37. #endif
  38. #if PRAGMA_ENUM_ALWAYSINT
  39. #if defined(__fourbyteints__) && !__fourbyteints__
  40. #define __QD3DIO__RESTORE_TWOBYTEINTS
  41. #pragma fourbyteints on
  42. #endif
  43. #pragma enumsalwaysint on
  44. #elif PRAGMA_ENUM_OPTIONS
  45. #pragma option enum=int
  46. #elif PRAGMA_ENUM_PACK
  47. #if __option(pack_enums)
  48. #define __QD3DIO__RESTORE_PACKED_ENUMS
  49. #pragma options(!pack_enums)
  50. #endif
  51. #endif
  52. /******************************************************************************
  53. ** **
  54. ** Basic Types **
  55. ** **
  56. *****************************************************************************/
  57. typedef unsigned char TQ3Uns8;
  58. typedef signed char TQ3Int8;
  59. typedef unsigned short TQ3Uns16;
  60. typedef signed short TQ3Int16;
  61. typedef unsigned long TQ3Uns32;
  62. typedef signed long TQ3Int32;
  63. #if TARGET_RT_BIG_ENDIAN
  64. struct TQ3Uns64 {
  65. unsigned long hi;
  66. unsigned long lo;
  67. };
  68. typedef struct TQ3Uns64 TQ3Uns64;
  69. struct TQ3Int64 {
  70. signed long hi;
  71. unsigned long lo;
  72. };
  73. typedef struct TQ3Int64 TQ3Int64;
  74. #else
  75. struct TQ3Uns64 {
  76. unsigned long lo;
  77. unsigned long hi;
  78. };
  79. typedef struct TQ3Uns64 TQ3Uns64;
  80. struct TQ3Int64 {
  81. unsigned long lo;
  82. signed long hi;
  83. };
  84. typedef struct TQ3Int64 TQ3Int64;
  85. #endif /* TARGET_RT_BIG_ENDIAN */
  86. typedef float TQ3Float32;
  87. typedef double TQ3Float64;
  88. typedef TQ3Uns32 TQ3Size;
  89. /******************************************************************************
  90. ** **
  91. ** File Types **
  92. ** **
  93. *****************************************************************************/
  94. enum TQ3FileModeMasks {
  95. kQ3FileModeNormal = 0,
  96. kQ3FileModeStream = 1 << 0,
  97. kQ3FileModeDatabase = 1 << 1,
  98. kQ3FileModeText = 1 << 2
  99. };
  100. typedef enum TQ3FileModeMasks TQ3FileModeMasks;
  101. typedef unsigned long TQ3FileMode;
  102. /******************************************************************************
  103. ** **
  104. ** Method Types **
  105. ** **
  106. *****************************************************************************/
  107. /*
  108. * IO Methods
  109. *
  110. * The IO system treats all objects as groups of typed information.
  111. * When you register your element or attribute, the "elementType" is the
  112. * binary type of your object, the "elementName" the ascii type.
  113. *
  114. * All objects in the metafile are made up of a "root" or parent object which
  115. * defines the instantiated object type. You may define the format of your
  116. * data any way you wish as long as you use the primitives types above and the
  117. * routines below.
  118. *
  119. * Root Objects are often appended with additional child objects, called
  120. * subobjects. You may append your object with other QuickDraw 3D objects.
  121. *
  122. * Writing is straightforward: an object traverses itself any other objects
  123. * that make it up, then writes its own data. Writing uses two methods:
  124. * TQ3XObjectTraverseMethod and TQ3XObjectWriteMethod.
  125. *
  126. * The TQ3XObjectTraverseMethod method should:
  127. * + First, Determine if the data should be written
  128. * - if you don't want to write out your object after examining your
  129. * data, return kQ3Success in your Traverse method without calling
  130. * any other submit calls.
  131. * + Next, calculate the size of your object on disk
  132. * + Gather whatever state from the view you need to preserve
  133. * - you may access the view state NOW, as the state of the
  134. * view duing your TQ3XObjectWriteMethod will not be valid. You may
  135. * pass a temporary buffer to your write method.
  136. * + Submit your view write data using Q3View_SubmitWriteData
  137. * - note that you MUST call this before any other "_Submit" call.
  138. * - you may pass in a "deleteMethod" for your data. This method
  139. * will be called whether or not your write method succeeds or fails.
  140. * + Submit your subobjects to the view
  141. *
  142. * The TQ3XObjectWriteMethod method should:
  143. * + Write your data format to the file using the primitives routines below.
  144. * - If you passed a "deleteMethod" in your Q3View_SubmitWriteData, that
  145. * method will be called upon exit of your write method.
  146. *
  147. * Reading is less straightforward because your root object and
  148. * any subobjects must be read inside of your TQ3XObjectReadDataMethod. There
  149. * is an implicit state contained in the file while reading, which you must
  150. * be aware of. When you first enter the read method, you must physically
  151. * read in your data format using the primitives routines until
  152. *
  153. * Q3File_IsEndOfData(file) == kQ3True
  154. *
  155. * Generally, your data format should be self-descriptive such that you do not
  156. * need to call Q3File_IsEndOfData to determine if you are done reading.
  157. * However, this call is useful for determining zero-sized object or
  158. * determining the end of an object's data.
  159. *
  160. * Once you have read in all the data, you may collect subobjects. A metafile
  161. * object ONLY has subobjects if it is in a container. The call
  162. *
  163. * Q3File_IsEndOfContainer(file)
  164. *
  165. * returns kQ3False if subobjects exist, and kQ3True if subobjects do not
  166. * exist.
  167. *
  168. * At this point, you may use
  169. *
  170. * Q3File_GetNextObjectType
  171. * Q3File_IsNextObjectOfType
  172. * Q3File_ReadObject
  173. * Q3File_SkipObject
  174. *
  175. * to iterate through the subobjects until Q3File_IsEndOfContainer(file)
  176. * is kQ3True.
  177. *
  178. */
  179. /*
  180. * IO Methods
  181. */
  182. enum {
  183. kQ3XMethodTypeObjectFileVersion = FOUR_CHAR_CODE('vers'), /* version */
  184. kQ3XMethodTypeObjectTraverse = FOUR_CHAR_CODE('trvs'), /* byte count */
  185. kQ3XMethodTypeObjectTraverseData = FOUR_CHAR_CODE('trvd'), /* byte count */
  186. kQ3XMethodTypeObjectWrite = FOUR_CHAR_CODE('writ'), /* Dump info to file */
  187. kQ3XMethodTypeObjectReadData = FOUR_CHAR_CODE('rddt'), /* Read info from file into buffer or, attach read data to parent */
  188. kQ3XMethodTypeObjectRead = FOUR_CHAR_CODE('read'),
  189. kQ3XMethodTypeObjectAttach = FOUR_CHAR_CODE('attc')
  190. };
  191. /*
  192. * TQ3XObjectTraverseMethod
  193. *
  194. * For "elements" (meaning "attributes, too), you will be passed NULL for
  195. * object. Sorry, custom objects will be available in the next major revision.
  196. *
  197. * The "data" is a pointer to your internal element data.
  198. *
  199. * The view is the current traversal view.
  200. */
  201. typedef CALLBACK_API_C( TQ3Status , TQ3XObjectTraverseMethod )(TQ3Object object, void *data, TQ3ViewObject view);
  202. /*
  203. * TQ3XObjectTraverseDataMethod
  204. */
  205. typedef CALLBACK_API_C( TQ3Status , TQ3XObjectTraverseDataMethod )(TQ3Object object, void *data, TQ3ViewObject view);
  206. /*
  207. * TQ3XObjectWriteMethod
  208. */
  209. typedef CALLBACK_API_C( TQ3Status , TQ3XObjectWriteMethod )(const void *object, TQ3FileObject theFile);
  210. /*
  211. * Custom object writing
  212. */
  213. typedef CALLBACK_API_C( void , TQ3XDataDeleteMethod )(void * data);
  214. #if CALL_NOT_IN_CARBON
  215. /*
  216. * Q3XView_SubmitWriteData()
  217. *
  218. * Availability:
  219. * Non-Carbon CFM: not available
  220. * CarbonLib: not available
  221. * Mac OS X: not available
  222. */
  223. EXTERN_API_C( TQ3Status )
  224. Q3XView_SubmitWriteData(
  225. TQ3ViewObject view,
  226. TQ3Size size,
  227. void * data,
  228. TQ3XDataDeleteMethod deleteData);
  229. /*
  230. * Q3XView_SubmitSubObjectData()
  231. *
  232. * Availability:
  233. * Non-Carbon CFM: not available
  234. * CarbonLib: not available
  235. * Mac OS X: not available
  236. */
  237. EXTERN_API_C( TQ3Status )
  238. Q3XView_SubmitSubObjectData(
  239. TQ3ViewObject view,
  240. TQ3XObjectClass objectClass,
  241. unsigned long size,
  242. void * data,
  243. TQ3XDataDeleteMethod deleteData);
  244. /*
  245. * TQ3XObjectReadMethod
  246. */
  247. #endif /* CALL_NOT_IN_CARBON */
  248. typedef CALLBACK_API_C( TQ3Object , TQ3XObjectReadMethod )(TQ3FileObject theFile);
  249. /*
  250. * TQ3XObjectReadDataMethod
  251. *
  252. * For "elements" (meaning "attributes", too), you must allocate stack space
  253. * and call Q3Set_Add on "parentObject", which is an TQ3SetObject.
  254. *
  255. * Otherwise, parentObject is whatever object your element is a subobject of...
  256. */
  257. typedef CALLBACK_API_C( TQ3Status , TQ3XObjectReadDataMethod )(TQ3Object parentObject, TQ3FileObject theFile);
  258. /*
  259. * TQ3XObjectAttachMethod
  260. */
  261. typedef CALLBACK_API_C( TQ3Status , TQ3XObjectAttachMethod )(TQ3Object childObject, TQ3Object parentObject);
  262. /******************************************************************************
  263. ** **
  264. ** Versioning **
  265. ** **
  266. *****************************************************************************/
  267. #define Q3FileVersion(majorVersion, minorVersion) (TQ3FileVersion) \
  268. ((((TQ3Uns32) majorVersion & 0xFFFF) << 16) | ((TQ3Uns32) minorVersion & 0xFFFF))
  269. typedef unsigned long TQ3FileVersion;
  270. #define kQ3FileVersionCurrent Q3FileVersion(1,6)
  271. /******************************************************************************
  272. ** **
  273. ** File Routines **
  274. ** **
  275. *****************************************************************************/
  276. /*
  277. * Creation and accessors
  278. */
  279. #if CALL_NOT_IN_CARBON
  280. /*
  281. * Q3File_New()
  282. *
  283. * Availability:
  284. * Non-Carbon CFM: not available
  285. * CarbonLib: not available
  286. * Mac OS X: not available
  287. */
  288. EXTERN_API_C( TQ3FileObject )
  289. Q3File_New(void);
  290. /*
  291. * Q3File_GetStorage()
  292. *
  293. * Availability:
  294. * Non-Carbon CFM: not available
  295. * CarbonLib: not available
  296. * Mac OS X: not available
  297. */
  298. EXTERN_API_C( TQ3Status )
  299. Q3File_GetStorage(
  300. TQ3FileObject theFile,
  301. TQ3StorageObject * storage);
  302. /*
  303. * Q3File_SetStorage()
  304. *
  305. * Availability:
  306. * Non-Carbon CFM: not available
  307. * CarbonLib: not available
  308. * Mac OS X: not available
  309. */
  310. EXTERN_API_C( TQ3Status )
  311. Q3File_SetStorage(
  312. TQ3FileObject theFile,
  313. TQ3StorageObject storage);
  314. /*
  315. * Opening, and accessing "open" state, closing/cancelling
  316. */
  317. /*
  318. * Q3File_OpenRead()
  319. *
  320. * Availability:
  321. * Non-Carbon CFM: not available
  322. * CarbonLib: not available
  323. * Mac OS X: not available
  324. */
  325. EXTERN_API_C( TQ3Status )
  326. Q3File_OpenRead(
  327. TQ3FileObject theFile,
  328. TQ3FileMode * mode);
  329. /*
  330. * Q3File_OpenWrite()
  331. *
  332. * Availability:
  333. * Non-Carbon CFM: not available
  334. * CarbonLib: not available
  335. * Mac OS X: not available
  336. */
  337. EXTERN_API_C( TQ3Status )
  338. Q3File_OpenWrite(
  339. TQ3FileObject theFile,
  340. TQ3FileMode mode);
  341. /*
  342. * Q3File_IsOpen()
  343. *
  344. * Availability:
  345. * Non-Carbon CFM: not available
  346. * CarbonLib: not available
  347. * Mac OS X: not available
  348. */
  349. EXTERN_API_C( TQ3Status )
  350. Q3File_IsOpen(
  351. TQ3FileObject theFile,
  352. TQ3Boolean * isOpen);
  353. /*
  354. * Q3File_GetMode()
  355. *
  356. * Availability:
  357. * Non-Carbon CFM: not available
  358. * CarbonLib: not available
  359. * Mac OS X: not available
  360. */
  361. EXTERN_API_C( TQ3Status )
  362. Q3File_GetMode(
  363. TQ3FileObject theFile,
  364. TQ3FileMode * mode);
  365. /*
  366. * Q3File_GetVersion()
  367. *
  368. * Availability:
  369. * Non-Carbon CFM: not available
  370. * CarbonLib: not available
  371. * Mac OS X: not available
  372. */
  373. EXTERN_API_C( TQ3Status )
  374. Q3File_GetVersion(
  375. TQ3FileObject theFile,
  376. TQ3FileVersion * version);
  377. /*
  378. * Q3File_Close()
  379. *
  380. * Availability:
  381. * Non-Carbon CFM: not available
  382. * CarbonLib: not available
  383. * Mac OS X: not available
  384. */
  385. EXTERN_API_C( TQ3Status )
  386. Q3File_Close(TQ3FileObject theFile);
  387. /*
  388. * Q3File_Cancel()
  389. *
  390. * Availability:
  391. * Non-Carbon CFM: not available
  392. * CarbonLib: not available
  393. * Mac OS X: not available
  394. */
  395. EXTERN_API_C( TQ3Status )
  396. Q3File_Cancel(TQ3FileObject theFile);
  397. /*
  398. * Writing (Application)
  399. */
  400. /*
  401. * Q3View_StartWriting()
  402. *
  403. * Availability:
  404. * Non-Carbon CFM: not available
  405. * CarbonLib: not available
  406. * Mac OS X: not available
  407. */
  408. EXTERN_API_C( TQ3Status )
  409. Q3View_StartWriting(
  410. TQ3ViewObject view,
  411. TQ3FileObject theFile);
  412. /*
  413. * Q3View_EndWriting()
  414. *
  415. * Availability:
  416. * Non-Carbon CFM: not available
  417. * CarbonLib: not available
  418. * Mac OS X: not available
  419. */
  420. EXTERN_API_C( TQ3ViewStatus )
  421. Q3View_EndWriting(TQ3ViewObject view);
  422. /*
  423. * Reading (Application)
  424. */
  425. /*
  426. * Q3File_GetNextObjectType()
  427. *
  428. * Availability:
  429. * Non-Carbon CFM: not available
  430. * CarbonLib: not available
  431. * Mac OS X: not available
  432. */
  433. EXTERN_API_C( TQ3ObjectType )
  434. Q3File_GetNextObjectType(TQ3FileObject theFile);
  435. /*
  436. * Q3File_IsNextObjectOfType()
  437. *
  438. * Availability:
  439. * Non-Carbon CFM: not available
  440. * CarbonLib: not available
  441. * Mac OS X: not available
  442. */
  443. EXTERN_API_C( TQ3Boolean )
  444. Q3File_IsNextObjectOfType(
  445. TQ3FileObject theFile,
  446. TQ3ObjectType ofType);
  447. /*
  448. * Q3File_ReadObject()
  449. *
  450. * Availability:
  451. * Non-Carbon CFM: not available
  452. * CarbonLib: not available
  453. * Mac OS X: not available
  454. */
  455. EXTERN_API_C( TQ3Object )
  456. Q3File_ReadObject(TQ3FileObject theFile);
  457. /*
  458. * Q3File_SkipObject()
  459. *
  460. * Availability:
  461. * Non-Carbon CFM: not available
  462. * CarbonLib: not available
  463. * Mac OS X: not available
  464. */
  465. EXTERN_API_C( TQ3Status )
  466. Q3File_SkipObject(TQ3FileObject theFile);
  467. /*
  468. * Q3File_IsEndOfData()
  469. *
  470. * Availability:
  471. * Non-Carbon CFM: not available
  472. * CarbonLib: not available
  473. * Mac OS X: not available
  474. */
  475. EXTERN_API_C( TQ3Boolean )
  476. Q3File_IsEndOfData(TQ3FileObject theFile);
  477. /*
  478. * Q3File_IsEndOfContainer()
  479. *
  480. * Availability:
  481. * Non-Carbon CFM: not available
  482. * CarbonLib: not available
  483. * Mac OS X: not available
  484. */
  485. EXTERN_API_C( TQ3Boolean )
  486. Q3File_IsEndOfContainer(
  487. TQ3FileObject theFile,
  488. TQ3Object rootObject);
  489. /*
  490. * Q3File_IsEndOfFile()
  491. *
  492. * Availability:
  493. * Non-Carbon CFM: not available
  494. * CarbonLib: not available
  495. * Mac OS X: not available
  496. */
  497. EXTERN_API_C( TQ3Boolean )
  498. Q3File_IsEndOfFile(TQ3FileObject theFile);
  499. /*
  500. * External file references
  501. */
  502. /*
  503. * Q3File_MarkAsExternalReference()
  504. *
  505. * Availability:
  506. * Non-Carbon CFM: not available
  507. * CarbonLib: not available
  508. * Mac OS X: not available
  509. */
  510. EXTERN_API_C( TQ3Status )
  511. Q3File_MarkAsExternalReference(
  512. TQ3FileObject theFile,
  513. TQ3SharedObject sharedObject);
  514. /*
  515. * Q3File_GetExternalReferences()
  516. *
  517. * Availability:
  518. * Non-Carbon CFM: not available
  519. * CarbonLib: not available
  520. * Mac OS X: not available
  521. */
  522. EXTERN_API_C( TQ3GroupObject )
  523. Q3File_GetExternalReferences(TQ3FileObject theFile);
  524. /*
  525. * Tracking editing in read-in objects with custom elements
  526. */
  527. /*
  528. * Q3Shared_ClearEditTracking()
  529. *
  530. * Availability:
  531. * Non-Carbon CFM: not available
  532. * CarbonLib: not available
  533. * Mac OS X: not available
  534. */
  535. EXTERN_API_C( TQ3Status )
  536. Q3Shared_ClearEditTracking(TQ3SharedObject sharedObject);
  537. /*
  538. * Q3Shared_GetEditTrackingState()
  539. *
  540. * Availability:
  541. * Non-Carbon CFM: not available
  542. * CarbonLib: not available
  543. * Mac OS X: not available
  544. */
  545. EXTERN_API_C( TQ3Boolean )
  546. Q3Shared_GetEditTrackingState(TQ3SharedObject sharedObject);
  547. /*
  548. * Reading objects inside a group one-by-one
  549. */
  550. #endif /* CALL_NOT_IN_CARBON */
  551. enum TQ3FileReadGroupStateMasks {
  552. kQ3FileReadWholeGroup = 0,
  553. kQ3FileReadObjectsInGroup = 1 << 0,
  554. kQ3FileCurrentlyInsideGroup = 1 << 1
  555. };
  556. typedef enum TQ3FileReadGroupStateMasks TQ3FileReadGroupStateMasks;
  557. typedef unsigned long TQ3FileReadGroupState;
  558. #if CALL_NOT_IN_CARBON
  559. /*
  560. * Q3File_SetReadInGroup()
  561. *
  562. * Availability:
  563. * Non-Carbon CFM: not available
  564. * CarbonLib: not available
  565. * Mac OS X: not available
  566. */
  567. EXTERN_API_C( TQ3Status )
  568. Q3File_SetReadInGroup(
  569. TQ3FileObject theFile,
  570. TQ3FileReadGroupState readGroupState);
  571. /*
  572. * Q3File_GetReadInGroup()
  573. *
  574. * Availability:
  575. * Non-Carbon CFM: not available
  576. * CarbonLib: not available
  577. * Mac OS X: not available
  578. */
  579. EXTERN_API_C( TQ3Status )
  580. Q3File_GetReadInGroup(
  581. TQ3FileObject theFile,
  582. TQ3FileReadGroupState * readGroupState);
  583. /*
  584. * Idling
  585. */
  586. #endif /* CALL_NOT_IN_CARBON */
  587. typedef CALLBACK_API_C( TQ3Status , TQ3FileIdleMethod )(TQ3FileObject theFile, const void *idlerData);
  588. #if CALL_NOT_IN_CARBON
  589. /*
  590. * Q3File_SetIdleMethod()
  591. *
  592. * Availability:
  593. * Non-Carbon CFM: not available
  594. * CarbonLib: not available
  595. * Mac OS X: not available
  596. */
  597. EXTERN_API_C( TQ3Status )
  598. Q3File_SetIdleMethod(
  599. TQ3FileObject theFile,
  600. TQ3FileIdleMethod idle,
  601. const void * idleData);
  602. /******************************************************************************
  603. ** **
  604. ** Primitives Routines **
  605. ** **
  606. *****************************************************************************/
  607. /*
  608. * Q3NewLine_Write()
  609. *
  610. * Availability:
  611. * Non-Carbon CFM: not available
  612. * CarbonLib: not available
  613. * Mac OS X: not available
  614. */
  615. EXTERN_API_C( TQ3Status )
  616. Q3NewLine_Write(TQ3FileObject theFile);
  617. /*
  618. * Q3Uns8_Read()
  619. *
  620. * Availability:
  621. * Non-Carbon CFM: not available
  622. * CarbonLib: not available
  623. * Mac OS X: not available
  624. */
  625. EXTERN_API_C( TQ3Status )
  626. Q3Uns8_Read(
  627. TQ3Uns8 * data,
  628. TQ3FileObject theFile);
  629. /*
  630. * Q3Uns8_Write()
  631. *
  632. * Availability:
  633. * Non-Carbon CFM: not available
  634. * CarbonLib: not available
  635. * Mac OS X: not available
  636. */
  637. EXTERN_API_C( TQ3Status )
  638. Q3Uns8_Write(
  639. TQ3Uns8 data,
  640. TQ3FileObject theFile);
  641. /*
  642. * Q3Uns16_Read()
  643. *
  644. * Availability:
  645. * Non-Carbon CFM: not available
  646. * CarbonLib: not available
  647. * Mac OS X: not available
  648. */
  649. EXTERN_API_C( TQ3Status )
  650. Q3Uns16_Read(
  651. TQ3Uns16 * data,
  652. TQ3FileObject theFile);
  653. /*
  654. * Q3Uns16_Write()
  655. *
  656. * Availability:
  657. * Non-Carbon CFM: not available
  658. * CarbonLib: not available
  659. * Mac OS X: not available
  660. */
  661. EXTERN_API_C( TQ3Status )
  662. Q3Uns16_Write(
  663. TQ3Uns16 data,
  664. TQ3FileObject theFile);
  665. /*
  666. * Q3Uns32_Read()
  667. *
  668. * Availability:
  669. * Non-Carbon CFM: not available
  670. * CarbonLib: not available
  671. * Mac OS X: not available
  672. */
  673. EXTERN_API_C( TQ3Status )
  674. Q3Uns32_Read(
  675. TQ3Uns32 * data,
  676. TQ3FileObject theFile);
  677. /*
  678. * Q3Uns32_Write()
  679. *
  680. * Availability:
  681. * Non-Carbon CFM: not available
  682. * CarbonLib: not available
  683. * Mac OS X: not available
  684. */
  685. EXTERN_API_C( TQ3Status )
  686. Q3Uns32_Write(
  687. TQ3Uns32 data,
  688. TQ3FileObject theFile);
  689. /*
  690. * Q3Int8_Read()
  691. *
  692. * Availability:
  693. * Non-Carbon CFM: not available
  694. * CarbonLib: not available
  695. * Mac OS X: not available
  696. */
  697. EXTERN_API_C( TQ3Status )
  698. Q3Int8_Read(
  699. TQ3Int8 * data,
  700. TQ3FileObject theFile);
  701. /*
  702. * Q3Int8_Write()
  703. *
  704. * Availability:
  705. * Non-Carbon CFM: not available
  706. * CarbonLib: not available
  707. * Mac OS X: not available
  708. */
  709. EXTERN_API_C( TQ3Status )
  710. Q3Int8_Write(
  711. TQ3Int8 data,
  712. TQ3FileObject theFile);
  713. /*
  714. * Q3Int16_Read()
  715. *
  716. * Availability:
  717. * Non-Carbon CFM: not available
  718. * CarbonLib: not available
  719. * Mac OS X: not available
  720. */
  721. EXTERN_API_C( TQ3Status )
  722. Q3Int16_Read(
  723. TQ3Int16 * data,
  724. TQ3FileObject theFile);
  725. /*
  726. * Q3Int16_Write()
  727. *
  728. * Availability:
  729. * Non-Carbon CFM: not available
  730. * CarbonLib: not available
  731. * Mac OS X: not available
  732. */
  733. EXTERN_API_C( TQ3Status )
  734. Q3Int16_Write(
  735. TQ3Int16 data,
  736. TQ3FileObject theFile);
  737. /*
  738. * Q3Int32_Read()
  739. *
  740. * Availability:
  741. * Non-Carbon CFM: not available
  742. * CarbonLib: not available
  743. * Mac OS X: not available
  744. */
  745. EXTERN_API_C( TQ3Status )
  746. Q3Int32_Read(
  747. TQ3Int32 * data,
  748. TQ3FileObject theFile);
  749. /*
  750. * Q3Int32_Write()
  751. *
  752. * Availability:
  753. * Non-Carbon CFM: not available
  754. * CarbonLib: not available
  755. * Mac OS X: not available
  756. */
  757. EXTERN_API_C( TQ3Status )
  758. Q3Int32_Write(
  759. TQ3Int32 data,
  760. TQ3FileObject theFile);
  761. /*
  762. * Q3Uns64_Read()
  763. *
  764. * Availability:
  765. * Non-Carbon CFM: not available
  766. * CarbonLib: not available
  767. * Mac OS X: not available
  768. */
  769. EXTERN_API_C( TQ3Status )
  770. Q3Uns64_Read(
  771. TQ3Uns64 * data,
  772. TQ3FileObject theFile);
  773. /*
  774. * Q3Uns64_Write()
  775. *
  776. * Availability:
  777. * Non-Carbon CFM: not available
  778. * CarbonLib: not available
  779. * Mac OS X: not available
  780. */
  781. EXTERN_API_C( TQ3Status )
  782. Q3Uns64_Write(
  783. TQ3Uns64 data,
  784. TQ3FileObject theFile);
  785. /*
  786. * Q3Int64_Read()
  787. *
  788. * Availability:
  789. * Non-Carbon CFM: not available
  790. * CarbonLib: not available
  791. * Mac OS X: not available
  792. */
  793. EXTERN_API_C( TQ3Status )
  794. Q3Int64_Read(
  795. TQ3Int64 * data,
  796. TQ3FileObject theFile);
  797. /*
  798. * Q3Int64_Write()
  799. *
  800. * Availability:
  801. * Non-Carbon CFM: not available
  802. * CarbonLib: not available
  803. * Mac OS X: not available
  804. */
  805. EXTERN_API_C( TQ3Status )
  806. Q3Int64_Write(
  807. TQ3Int64 data,
  808. TQ3FileObject theFile);
  809. /*
  810. * Q3Float32_Read()
  811. *
  812. * Availability:
  813. * Non-Carbon CFM: not available
  814. * CarbonLib: not available
  815. * Mac OS X: not available
  816. */
  817. EXTERN_API_C( TQ3Status )
  818. Q3Float32_Read(
  819. TQ3Float32 * data,
  820. TQ3FileObject theFile);
  821. /*
  822. * Q3Float32_Write()
  823. *
  824. * Availability:
  825. * Non-Carbon CFM: not available
  826. * CarbonLib: not available
  827. * Mac OS X: not available
  828. */
  829. EXTERN_API_C( TQ3Status )
  830. Q3Float32_Write(
  831. TQ3Float32 data,
  832. TQ3FileObject theFile);
  833. /*
  834. * Q3Float64_Read()
  835. *
  836. * Availability:
  837. * Non-Carbon CFM: not available
  838. * CarbonLib: not available
  839. * Mac OS X: not available
  840. */
  841. EXTERN_API_C( TQ3Status )
  842. Q3Float64_Read(
  843. TQ3Float64 * data,
  844. TQ3FileObject theFile);
  845. /*
  846. * Q3Float64_Write()
  847. *
  848. * Availability:
  849. * Non-Carbon CFM: not available
  850. * CarbonLib: not available
  851. * Mac OS X: not available
  852. */
  853. EXTERN_API_C( TQ3Status )
  854. Q3Float64_Write(
  855. TQ3Float64 data,
  856. TQ3FileObject theFile);
  857. /*
  858. * Q3Size_Pad()
  859. *
  860. * Availability:
  861. * Non-Carbon CFM: not available
  862. * CarbonLib: not available
  863. * Mac OS X: not available
  864. */
  865. EXTERN_API_C( TQ3Size )
  866. Q3Size_Pad(TQ3Size size);
  867. /*
  868. * Pass a pointer to a buffer of kQ3StringMaximumLength bytes
  869. */
  870. /*
  871. * Q3String_Read()
  872. *
  873. * Availability:
  874. * Non-Carbon CFM: not available
  875. * CarbonLib: not available
  876. * Mac OS X: not available
  877. */
  878. EXTERN_API_C( TQ3Status )
  879. Q3String_Read(
  880. char * data,
  881. unsigned long * length,
  882. TQ3FileObject theFile);
  883. /*
  884. * Q3String_Write()
  885. *
  886. * Availability:
  887. * Non-Carbon CFM: not available
  888. * CarbonLib: not available
  889. * Mac OS X: not available
  890. */
  891. EXTERN_API_C( TQ3Status )
  892. Q3String_Write(
  893. const char * data,
  894. TQ3FileObject theFile);
  895. /*
  896. * This call will read Q3Size_Pad(size) bytes,
  897. * but only place size bytes into data.
  898. */
  899. /*
  900. * Q3RawData_Read()
  901. *
  902. * Availability:
  903. * Non-Carbon CFM: not available
  904. * CarbonLib: not available
  905. * Mac OS X: not available
  906. */
  907. EXTERN_API_C( TQ3Status )
  908. Q3RawData_Read(
  909. unsigned char * data,
  910. unsigned long size,
  911. TQ3FileObject theFile);
  912. /*
  913. * This call will write Q3Size_Pad(size) bytes,
  914. * adding 0's to pad to the nearest 4 byte boundary.
  915. */
  916. /*
  917. * Q3RawData_Write()
  918. *
  919. * Availability:
  920. * Non-Carbon CFM: not available
  921. * CarbonLib: not available
  922. * Mac OS X: not available
  923. */
  924. EXTERN_API_C( TQ3Status )
  925. Q3RawData_Write(
  926. const unsigned char * data,
  927. unsigned long size,
  928. TQ3FileObject theFile);
  929. /******************************************************************************
  930. ** **
  931. ** Convenient Primitives Routines **
  932. ** **
  933. *****************************************************************************/
  934. /*
  935. * Q3Point2D_Read()
  936. *
  937. * Availability:
  938. * Non-Carbon CFM: not available
  939. * CarbonLib: not available
  940. * Mac OS X: not available
  941. */
  942. EXTERN_API_C( TQ3Status )
  943. Q3Point2D_Read(
  944. TQ3Point2D * point2D,
  945. TQ3FileObject theFile);
  946. /*
  947. * Q3Point2D_Write()
  948. *
  949. * Availability:
  950. * Non-Carbon CFM: not available
  951. * CarbonLib: not available
  952. * Mac OS X: not available
  953. */
  954. EXTERN_API_C( TQ3Status )
  955. Q3Point2D_Write(
  956. const TQ3Point2D * point2D,
  957. TQ3FileObject theFile);
  958. /*
  959. * Q3Point3D_Read()
  960. *
  961. * Availability:
  962. * Non-Carbon CFM: not available
  963. * CarbonLib: not available
  964. * Mac OS X: not available
  965. */
  966. EXTERN_API_C( TQ3Status )
  967. Q3Point3D_Read(
  968. TQ3Point3D * point3D,
  969. TQ3FileObject theFile);
  970. /*
  971. * Q3Point3D_Write()
  972. *
  973. * Availability:
  974. * Non-Carbon CFM: not available
  975. * CarbonLib: not available
  976. * Mac OS X: not available
  977. */
  978. EXTERN_API_C( TQ3Status )
  979. Q3Point3D_Write(
  980. const TQ3Point3D * point3D,
  981. TQ3FileObject theFile);
  982. /*
  983. * Q3RationalPoint3D_Read()
  984. *
  985. * Availability:
  986. * Non-Carbon CFM: not available
  987. * CarbonLib: not available
  988. * Mac OS X: not available
  989. */
  990. EXTERN_API_C( TQ3Status )
  991. Q3RationalPoint3D_Read(
  992. TQ3RationalPoint3D * point3D,
  993. TQ3FileObject theFile);
  994. /*
  995. * Q3RationalPoint3D_Write()
  996. *
  997. * Availability:
  998. * Non-Carbon CFM: not available
  999. * CarbonLib: not available
  1000. * Mac OS X: not available
  1001. */
  1002. EXTERN_API_C( TQ3Status )
  1003. Q3RationalPoint3D_Write(
  1004. const TQ3RationalPoint3D * point3D,
  1005. TQ3FileObject theFile);
  1006. /*
  1007. * Q3RationalPoint4D_Read()
  1008. *
  1009. * Availability:
  1010. * Non-Carbon CFM: not available
  1011. * CarbonLib: not available
  1012. * Mac OS X: not available
  1013. */
  1014. EXTERN_API_C( TQ3Status )
  1015. Q3RationalPoint4D_Read(
  1016. TQ3RationalPoint4D * point4D,
  1017. TQ3FileObject theFile);
  1018. /*
  1019. * Q3RationalPoint4D_Write()
  1020. *
  1021. * Availability:
  1022. * Non-Carbon CFM: not available
  1023. * CarbonLib: not available
  1024. * Mac OS X: not available
  1025. */
  1026. EXTERN_API_C( TQ3Status )
  1027. Q3RationalPoint4D_Write(
  1028. const TQ3RationalPoint4D * point4D,
  1029. TQ3FileObject theFile);
  1030. /*
  1031. * Q3Vector2D_Read()
  1032. *
  1033. * Availability:
  1034. * Non-Carbon CFM: not available
  1035. * CarbonLib: not available
  1036. * Mac OS X: not available
  1037. */
  1038. EXTERN_API_C( TQ3Status )
  1039. Q3Vector2D_Read(
  1040. TQ3Vector2D * vector2D,
  1041. TQ3FileObject theFile);
  1042. /*
  1043. * Q3Vector2D_Write()
  1044. *
  1045. * Availability:
  1046. * Non-Carbon CFM: not available
  1047. * CarbonLib: not available
  1048. * Mac OS X: not available
  1049. */
  1050. EXTERN_API_C( TQ3Status )
  1051. Q3Vector2D_Write(
  1052. const TQ3Vector2D * vector2D,
  1053. TQ3FileObject theFile);
  1054. /*
  1055. * Q3Vector3D_Read()
  1056. *
  1057. * Availability:
  1058. * Non-Carbon CFM: not available
  1059. * CarbonLib: not available
  1060. * Mac OS X: not available
  1061. */
  1062. EXTERN_API_C( TQ3Status )
  1063. Q3Vector3D_Read(
  1064. TQ3Vector3D * vector3D,
  1065. TQ3FileObject theFile);
  1066. /*
  1067. * Q3Vector3D_Write()
  1068. *
  1069. * Availability:
  1070. * Non-Carbon CFM: not available
  1071. * CarbonLib: not available
  1072. * Mac OS X: not available
  1073. */
  1074. EXTERN_API_C( TQ3Status )
  1075. Q3Vector3D_Write(
  1076. const TQ3Vector3D * vector3D,
  1077. TQ3FileObject theFile);
  1078. /*
  1079. * Q3Matrix4x4_Read()
  1080. *
  1081. * Availability:
  1082. * Non-Carbon CFM: not available
  1083. * CarbonLib: not available
  1084. * Mac OS X: not available
  1085. */
  1086. EXTERN_API_C( TQ3Status )
  1087. Q3Matrix4x4_Read(
  1088. TQ3Matrix4x4 * matrix4x4,
  1089. TQ3FileObject theFile);
  1090. /*
  1091. * Q3Matrix4x4_Write()
  1092. *
  1093. * Availability:
  1094. * Non-Carbon CFM: not available
  1095. * CarbonLib: not available
  1096. * Mac OS X: not available
  1097. */
  1098. EXTERN_API_C( TQ3Status )
  1099. Q3Matrix4x4_Write(
  1100. const TQ3Matrix4x4 * matrix4x4,
  1101. TQ3FileObject theFile);
  1102. /*
  1103. * Q3Tangent2D_Read()
  1104. *
  1105. * Availability:
  1106. * Non-Carbon CFM: not available
  1107. * CarbonLib: not available
  1108. * Mac OS X: not available
  1109. */
  1110. EXTERN_API_C( TQ3Status )
  1111. Q3Tangent2D_Read(
  1112. TQ3Tangent2D * tangent2D,
  1113. TQ3FileObject theFile);
  1114. /*
  1115. * Q3Tangent2D_Write()
  1116. *
  1117. * Availability:
  1118. * Non-Carbon CFM: not available
  1119. * CarbonLib: not available
  1120. * Mac OS X: not available
  1121. */
  1122. EXTERN_API_C( TQ3Status )
  1123. Q3Tangent2D_Write(
  1124. const TQ3Tangent2D * tangent2D,
  1125. TQ3FileObject theFile);
  1126. /*
  1127. * Q3Tangent3D_Read()
  1128. *
  1129. * Availability:
  1130. * Non-Carbon CFM: not available
  1131. * CarbonLib: not available
  1132. * Mac OS X: not available
  1133. */
  1134. EXTERN_API_C( TQ3Status )
  1135. Q3Tangent3D_Read(
  1136. TQ3Tangent3D * tangent3D,
  1137. TQ3FileObject theFile);
  1138. /*
  1139. * Q3Tangent3D_Write()
  1140. *
  1141. * Availability:
  1142. * Non-Carbon CFM: not available
  1143. * CarbonLib: not available
  1144. * Mac OS X: not available
  1145. */
  1146. EXTERN_API_C( TQ3Status )
  1147. Q3Tangent3D_Write(
  1148. const TQ3Tangent3D * tangent3D,
  1149. TQ3FileObject theFile);
  1150. /* This call affects only text Files - it is a no-op in binary files */
  1151. /*
  1152. * Q3Comment_Write()
  1153. *
  1154. * Availability:
  1155. * Non-Carbon CFM: not available
  1156. * CarbonLib: not available
  1157. * Mac OS X: not available
  1158. */
  1159. EXTERN_API_C( TQ3Status )
  1160. Q3Comment_Write(
  1161. char * comment,
  1162. TQ3FileObject theFile);
  1163. /******************************************************************************
  1164. ** **
  1165. ** Unknown Object **
  1166. ** **
  1167. ** Unknown objects are generated when reading files which contain **
  1168. ** custom data which has not been registered in the current **
  1169. ** instantiation of QuickDraw 3D. **
  1170. ** **
  1171. *****************************************************************************/
  1172. /*
  1173. * Q3Unknown_GetType()
  1174. *
  1175. * Availability:
  1176. * Non-Carbon CFM: not available
  1177. * CarbonLib: not available
  1178. * Mac OS X: not available
  1179. */
  1180. EXTERN_API_C( TQ3ObjectType )
  1181. Q3Unknown_GetType(TQ3UnknownObject unknownObject);
  1182. /*
  1183. * Q3Unknown_GetDirtyState()
  1184. *
  1185. * Availability:
  1186. * Non-Carbon CFM: not available
  1187. * CarbonLib: not available
  1188. * Mac OS X: not available
  1189. */
  1190. EXTERN_API_C( TQ3Status )
  1191. Q3Unknown_GetDirtyState(
  1192. TQ3UnknownObject unknownObject,
  1193. TQ3Boolean * isDirty);
  1194. /*
  1195. * Q3Unknown_SetDirtyState()
  1196. *
  1197. * Availability:
  1198. * Non-Carbon CFM: not available
  1199. * CarbonLib: not available
  1200. * Mac OS X: not available
  1201. */
  1202. EXTERN_API_C( TQ3Status )
  1203. Q3Unknown_SetDirtyState(
  1204. TQ3UnknownObject unknownObject,
  1205. TQ3Boolean isDirty);
  1206. /******************************************************************************
  1207. ** **
  1208. ** Unknown Text Routines **
  1209. ** **
  1210. *****************************************************************************/
  1211. #endif /* CALL_NOT_IN_CARBON */
  1212. struct TQ3UnknownTextData {
  1213. char * objectName; /* '\0' terminated */
  1214. char * contents; /* '\0' terminated */
  1215. };
  1216. typedef struct TQ3UnknownTextData TQ3UnknownTextData;
  1217. #if CALL_NOT_IN_CARBON
  1218. /*
  1219. * Q3UnknownText_GetData()
  1220. *
  1221. * Availability:
  1222. * Non-Carbon CFM: not available
  1223. * CarbonLib: not available
  1224. * Mac OS X: not available
  1225. */
  1226. EXTERN_API_C( TQ3Status )
  1227. Q3UnknownText_GetData(
  1228. TQ3UnknownObject unknownObject,
  1229. TQ3UnknownTextData * unknownTextData);
  1230. /*
  1231. * Q3UnknownText_EmptyData()
  1232. *
  1233. * Availability:
  1234. * Non-Carbon CFM: not available
  1235. * CarbonLib: not available
  1236. * Mac OS X: not available
  1237. */
  1238. EXTERN_API_C( TQ3Status )
  1239. Q3UnknownText_EmptyData(TQ3UnknownTextData * unknownTextData);
  1240. /******************************************************************************
  1241. ** **
  1242. ** Unknown Binary Routines **
  1243. ** **
  1244. *****************************************************************************/
  1245. #endif /* CALL_NOT_IN_CARBON */
  1246. struct TQ3UnknownBinaryData {
  1247. TQ3ObjectType objectType;
  1248. unsigned long size;
  1249. TQ3Endian byteOrder;
  1250. char * contents;
  1251. };
  1252. typedef struct TQ3UnknownBinaryData TQ3UnknownBinaryData;
  1253. #if CALL_NOT_IN_CARBON
  1254. /*
  1255. * Q3UnknownBinary_GetData()
  1256. *
  1257. * Availability:
  1258. * Non-Carbon CFM: not available
  1259. * CarbonLib: not available
  1260. * Mac OS X: not available
  1261. */
  1262. EXTERN_API_C( TQ3Status )
  1263. Q3UnknownBinary_GetData(
  1264. TQ3UnknownObject unknownObject,
  1265. TQ3UnknownBinaryData * unknownBinaryData);
  1266. /*
  1267. * Q3UnknownBinary_EmptyData()
  1268. *
  1269. * Availability:
  1270. * Non-Carbon CFM: not available
  1271. * CarbonLib: not available
  1272. * Mac OS X: not available
  1273. */
  1274. EXTERN_API_C( TQ3Status )
  1275. Q3UnknownBinary_EmptyData(TQ3UnknownBinaryData * unknownBinaryData);
  1276. #endif /* CALL_NOT_IN_CARBON */
  1277. #if CALL_NOT_IN_CARBON
  1278. /*
  1279. * Q3UnknownBinary_GetTypeString()
  1280. *
  1281. * Availability:
  1282. * Non-Carbon CFM: not available
  1283. * CarbonLib: not available
  1284. * Mac OS X: not available
  1285. */
  1286. EXTERN_API_C( TQ3Status )
  1287. Q3UnknownBinary_GetTypeString(
  1288. TQ3UnknownObject unknownObject,
  1289. char ** typeString);
  1290. /*
  1291. * Q3UnknownBinary_EmptyTypeString()
  1292. *
  1293. * Availability:
  1294. * Non-Carbon CFM: not available
  1295. * CarbonLib: not available
  1296. * Mac OS X: not available
  1297. */
  1298. EXTERN_API_C( TQ3Status )
  1299. Q3UnknownBinary_EmptyTypeString(char ** typeString);
  1300. #endif /* CALL_NOT_IN_CARBON */
  1301. /******************************************************************************
  1302. ** **
  1303. ** ViewHints routines **
  1304. ** **
  1305. ** ViewHints are an object in a metafile to give you some hints on how **
  1306. ** to render a scene. You may create a view with any of the objects **
  1307. ** retrieved from it, or you can just throw it away. **
  1308. ** **
  1309. ** To write a view hints to a file, create a view hints object from a **
  1310. ** view and write the view hints. **
  1311. ** **
  1312. *****************************************************************************/
  1313. #if CALL_NOT_IN_CARBON
  1314. /*
  1315. * Q3ViewHints_New()
  1316. *
  1317. * Availability:
  1318. * Non-Carbon CFM: not available
  1319. * CarbonLib: not available
  1320. * Mac OS X: not available
  1321. */
  1322. EXTERN_API_C( TQ3ViewHintsObject )
  1323. Q3ViewHints_New(TQ3ViewObject view);
  1324. /*
  1325. * Q3ViewHints_SetRenderer()
  1326. *
  1327. * Availability:
  1328. * Non-Carbon CFM: not available
  1329. * CarbonLib: not available
  1330. * Mac OS X: not available
  1331. */
  1332. EXTERN_API_C( TQ3Status )
  1333. Q3ViewHints_SetRenderer(
  1334. TQ3ViewHintsObject viewHints,
  1335. TQ3RendererObject renderer);
  1336. /*
  1337. * Q3ViewHints_GetRenderer()
  1338. *
  1339. * Availability:
  1340. * Non-Carbon CFM: not available
  1341. * CarbonLib: not available
  1342. * Mac OS X: not available
  1343. */
  1344. EXTERN_API_C( TQ3Status )
  1345. Q3ViewHints_GetRenderer(
  1346. TQ3ViewHintsObject viewHints,
  1347. TQ3RendererObject * renderer);
  1348. /*
  1349. * Q3ViewHints_SetCamera()
  1350. *
  1351. * Availability:
  1352. * Non-Carbon CFM: not available
  1353. * CarbonLib: not available
  1354. * Mac OS X: not available
  1355. */
  1356. EXTERN_API_C( TQ3Status )
  1357. Q3ViewHints_SetCamera(
  1358. TQ3ViewHintsObject viewHints,
  1359. TQ3CameraObject camera);
  1360. /*
  1361. * Q3ViewHints_GetCamera()
  1362. *
  1363. * Availability:
  1364. * Non-Carbon CFM: not available
  1365. * CarbonLib: not available
  1366. * Mac OS X: not available
  1367. */
  1368. EXTERN_API_C( TQ3Status )
  1369. Q3ViewHints_GetCamera(
  1370. TQ3ViewHintsObject viewHints,
  1371. TQ3CameraObject * camera);
  1372. /*
  1373. * Q3ViewHints_SetLightGroup()
  1374. *
  1375. * Availability:
  1376. * Non-Carbon CFM: not available
  1377. * CarbonLib: not available
  1378. * Mac OS X: not available
  1379. */
  1380. EXTERN_API_C( TQ3Status )
  1381. Q3ViewHints_SetLightGroup(
  1382. TQ3ViewHintsObject viewHints,
  1383. TQ3GroupObject lightGroup);
  1384. /*
  1385. * Q3ViewHints_GetLightGroup()
  1386. *
  1387. * Availability:
  1388. * Non-Carbon CFM: not available
  1389. * CarbonLib: not available
  1390. * Mac OS X: not available
  1391. */
  1392. EXTERN_API_C( TQ3Status )
  1393. Q3ViewHints_GetLightGroup(
  1394. TQ3ViewHintsObject viewHints,
  1395. TQ3GroupObject * lightGroup);
  1396. /*
  1397. * Q3ViewHints_SetAttributeSet()
  1398. *
  1399. * Availability:
  1400. * Non-Carbon CFM: not available
  1401. * CarbonLib: not available
  1402. * Mac OS X: not available
  1403. */
  1404. EXTERN_API_C( TQ3Status )
  1405. Q3ViewHints_SetAttributeSet(
  1406. TQ3ViewHintsObject viewHints,
  1407. TQ3AttributeSet attributeSet);
  1408. /*
  1409. * Q3ViewHints_GetAttributeSet()
  1410. *
  1411. * Availability:
  1412. * Non-Carbon CFM: not available
  1413. * CarbonLib: not available
  1414. * Mac OS X: not available
  1415. */
  1416. EXTERN_API_C( TQ3Status )
  1417. Q3ViewHints_GetAttributeSet(
  1418. TQ3ViewHintsObject viewHints,
  1419. TQ3AttributeSet * attributeSet);
  1420. /*
  1421. * Q3ViewHints_SetDimensionsState()
  1422. *
  1423. * Availability:
  1424. * Non-Carbon CFM: not available
  1425. * CarbonLib: not available
  1426. * Mac OS X: not available
  1427. */
  1428. EXTERN_API_C( TQ3Status )
  1429. Q3ViewHints_SetDimensionsState(
  1430. TQ3ViewHintsObject viewHints,
  1431. TQ3Boolean isValid);
  1432. /*
  1433. * Q3ViewHints_GetDimensionsState()
  1434. *
  1435. * Availability:
  1436. * Non-Carbon CFM: not available
  1437. * CarbonLib: not available
  1438. * Mac OS X: not available
  1439. */
  1440. EXTERN_API_C( TQ3Status )
  1441. Q3ViewHints_GetDimensionsState(
  1442. TQ3ViewHintsObject viewHints,
  1443. TQ3Boolean * isValid);
  1444. /*
  1445. * Q3ViewHints_SetDimensions()
  1446. *
  1447. * Availability:
  1448. * Non-Carbon CFM: not available
  1449. * CarbonLib: not available
  1450. * Mac OS X: not available
  1451. */
  1452. EXTERN_API_C( TQ3Status )
  1453. Q3ViewHints_SetDimensions(
  1454. TQ3ViewHintsObject viewHints,
  1455. unsigned long width,
  1456. unsigned long height);
  1457. /*
  1458. * Q3ViewHints_GetDimensions()
  1459. *
  1460. * Availability:
  1461. * Non-Carbon CFM: not available
  1462. * CarbonLib: not available
  1463. * Mac OS X: not available
  1464. */
  1465. EXTERN_API_C( TQ3Status )
  1466. Q3ViewHints_GetDimensions(
  1467. TQ3ViewHintsObject viewHints,
  1468. unsigned long * width,
  1469. unsigned long * height);
  1470. /*
  1471. * Q3ViewHints_SetMaskState()
  1472. *
  1473. * Availability:
  1474. * Non-Carbon CFM: not available
  1475. * CarbonLib: not available
  1476. * Mac OS X: not available
  1477. */
  1478. EXTERN_API_C( TQ3Status )
  1479. Q3ViewHints_SetMaskState(
  1480. TQ3ViewHintsObject viewHints,
  1481. TQ3Boolean isValid);
  1482. /*
  1483. * Q3ViewHints_GetMaskState()
  1484. *
  1485. * Availability:
  1486. * Non-Carbon CFM: not available
  1487. * CarbonLib: not available
  1488. * Mac OS X: not available
  1489. */
  1490. EXTERN_API_C( TQ3Status )
  1491. Q3ViewHints_GetMaskState(
  1492. TQ3ViewHintsObject viewHints,
  1493. TQ3Boolean * isValid);
  1494. /*
  1495. * Q3ViewHints_SetMask()
  1496. *
  1497. * Availability:
  1498. * Non-Carbon CFM: not available
  1499. * CarbonLib: not available
  1500. * Mac OS X: not available
  1501. */
  1502. EXTERN_API_C( TQ3Status )
  1503. Q3ViewHints_SetMask(
  1504. TQ3ViewHintsObject viewHints,
  1505. const TQ3Bitmap * mask);
  1506. /*
  1507. * Q3ViewHints_GetMask()
  1508. *
  1509. * Availability:
  1510. * Non-Carbon CFM: not available
  1511. * CarbonLib: not available
  1512. * Mac OS X: not available
  1513. */
  1514. EXTERN_API_C( TQ3Status )
  1515. Q3ViewHints_GetMask(
  1516. TQ3ViewHintsObject viewHints,
  1517. TQ3Bitmap * mask);
  1518. /* Call Q3Bitmap_Empty when done with the mask */
  1519. /*
  1520. * Q3ViewHints_SetClearImageMethod()
  1521. *
  1522. * Availability:
  1523. * Non-Carbon CFM: not available
  1524. * CarbonLib: not available
  1525. * Mac OS X: not available
  1526. */
  1527. EXTERN_API_C( TQ3Status )
  1528. Q3ViewHints_SetClearImageMethod(
  1529. TQ3ViewHintsObject viewHints,
  1530. TQ3DrawContextClearImageMethod clearMethod);
  1531. /*
  1532. * Q3ViewHints_GetClearImageMethod()
  1533. *
  1534. * Availability:
  1535. * Non-Carbon CFM: not available
  1536. * CarbonLib: not available
  1537. * Mac OS X: not available
  1538. */
  1539. EXTERN_API_C( TQ3Status )
  1540. Q3ViewHints_GetClearImageMethod(
  1541. TQ3ViewHintsObject viewHints,
  1542. TQ3DrawContextClearImageMethod * clearMethod);
  1543. /*
  1544. * Q3ViewHints_SetClearImageColor()
  1545. *
  1546. * Availability:
  1547. * Non-Carbon CFM: not available
  1548. * CarbonLib: not available
  1549. * Mac OS X: not available
  1550. */
  1551. EXTERN_API_C( TQ3Status )
  1552. Q3ViewHints_SetClearImageColor(
  1553. TQ3ViewHintsObject viewHints,
  1554. const TQ3ColorARGB * color);
  1555. /*
  1556. * Q3ViewHints_GetClearImageColor()
  1557. *
  1558. * Availability:
  1559. * Non-Carbon CFM: not available
  1560. * CarbonLib: not available
  1561. * Mac OS X: not available
  1562. */
  1563. EXTERN_API_C( TQ3Status )
  1564. Q3ViewHints_GetClearImageColor(
  1565. TQ3ViewHintsObject viewHints,
  1566. TQ3ColorARGB * color);
  1567. #endif /* CALL_NOT_IN_CARBON */
  1568. #if PRAGMA_ENUM_ALWAYSINT
  1569. #pragma enumsalwaysint reset
  1570. #ifdef __QD3DIO__RESTORE_TWOBYTEINTS
  1571. #pragma fourbyteints off
  1572. #endif
  1573. #elif PRAGMA_ENUM_OPTIONS
  1574. #pragma option enum=reset
  1575. #elif defined(__QD3DIO__RESTORE_PACKED_ENUMS)
  1576. #pragma options(pack_enums)
  1577. #endif
  1578. #if PRAGMA_STRUCT_ALIGN
  1579. #pragma options align=reset
  1580. #elif PRAGMA_STRUCT_PACKPUSH
  1581. #pragma pack(pop)
  1582. #elif PRAGMA_STRUCT_PACK
  1583. #pragma pack()
  1584. #endif
  1585. #ifdef PRAGMA_IMPORT_OFF
  1586. #pragma import off
  1587. #elif PRAGMA_IMPORT
  1588. #pragma import reset
  1589. #endif
  1590. #ifdef __cplusplus
  1591. }
  1592. #endif
  1593. #endif /* __QD3DIO__ */