summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/QD3DIO.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/QD3DIO.h')
-rw-r--r--common/quicktime_win32/QD3DIO.h1850
1 files changed, 1850 insertions, 0 deletions
diff --git a/common/quicktime_win32/QD3DIO.h b/common/quicktime_win32/QD3DIO.h
new file mode 100644
index 0000000..fffbbdd
--- /dev/null
+++ b/common/quicktime_win32/QD3DIO.h
@@ -0,0 +1,1850 @@
+/*
+ File: QD3DIO.h
+
+ Contains: QuickDraw 3D IO API
+
+ Version: Technology: Quickdraw 3D 1.6
+ Release: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1995-1999 by Apple Computer, Inc., all rights reserved.
+
+ Bugs?: For bug reports, consult the following page on
+ the World Wide Web:
+
+ http://developer.apple.com/bugreporter/
+
+*/
+#ifndef __QD3DIO__
+#define __QD3DIO__
+
+#ifndef __QD3D__
+#include <QD3D.h>
+#endif
+
+
+#ifndef __QD3DDRAWCONTEXT__
+#include <QD3DDrawContext.h>
+#endif
+
+#ifndef __QD3DVIEW__
+#include <QD3DView.h>
+#endif
+
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=power
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(push, 2)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack(2)
+#endif
+
+#if PRAGMA_ENUM_ALWAYSINT
+ #if defined(__fourbyteints__) && !__fourbyteints__
+ #define __QD3DIO__RESTORE_TWOBYTEINTS
+ #pragma fourbyteints on
+ #endif
+ #pragma enumsalwaysint on
+#elif PRAGMA_ENUM_OPTIONS
+ #pragma option enum=int
+#elif PRAGMA_ENUM_PACK
+ #if __option(pack_enums)
+ #define __QD3DIO__RESTORE_PACKED_ENUMS
+ #pragma options(!pack_enums)
+ #endif
+#endif
+
+/******************************************************************************
+ ** **
+ ** Basic Types **
+ ** **
+ *****************************************************************************/
+typedef unsigned char TQ3Uns8;
+typedef signed char TQ3Int8;
+typedef unsigned short TQ3Uns16;
+typedef signed short TQ3Int16;
+typedef unsigned long TQ3Uns32;
+typedef signed long TQ3Int32;
+#if TARGET_RT_BIG_ENDIAN
+struct TQ3Uns64 {
+ unsigned long hi;
+ unsigned long lo;
+};
+typedef struct TQ3Uns64 TQ3Uns64;
+struct TQ3Int64 {
+ signed long hi;
+ unsigned long lo;
+};
+typedef struct TQ3Int64 TQ3Int64;
+#else
+struct TQ3Uns64 {
+ unsigned long lo;
+ unsigned long hi;
+};
+typedef struct TQ3Uns64 TQ3Uns64;
+struct TQ3Int64 {
+ unsigned long lo;
+ signed long hi;
+};
+typedef struct TQ3Int64 TQ3Int64;
+#endif /* TARGET_RT_BIG_ENDIAN */
+
+
+typedef float TQ3Float32;
+typedef double TQ3Float64;
+typedef TQ3Uns32 TQ3Size;
+/******************************************************************************
+ ** **
+ ** File Types **
+ ** **
+ *****************************************************************************/
+enum TQ3FileModeMasks {
+ kQ3FileModeNormal = 0,
+ kQ3FileModeStream = 1 << 0,
+ kQ3FileModeDatabase = 1 << 1,
+ kQ3FileModeText = 1 << 2
+};
+typedef enum TQ3FileModeMasks TQ3FileModeMasks;
+
+typedef unsigned long TQ3FileMode;
+/******************************************************************************
+ ** **
+ ** Method Types **
+ ** **
+ *****************************************************************************/
+/*
+ * IO Methods
+ *
+ * The IO system treats all objects as groups of typed information.
+ * When you register your element or attribute, the "elementType" is the
+ * binary type of your object, the "elementName" the ascii type.
+ *
+ * All objects in the metafile are made up of a "root" or parent object which
+ * defines the instantiated object type. You may define the format of your
+ * data any way you wish as long as you use the primitives types above and the
+ * routines below.
+ *
+ * Root Objects are often appended with additional child objects, called
+ * subobjects. You may append your object with other QuickDraw 3D objects.
+ *
+ * Writing is straightforward: an object traverses itself any other objects
+ * that make it up, then writes its own data. Writing uses two methods:
+ * TQ3XObjectTraverseMethod and TQ3XObjectWriteMethod.
+ *
+ * The TQ3XObjectTraverseMethod method should:
+ * + First, Determine if the data should be written
+ * - if you don't want to write out your object after examining your
+ * data, return kQ3Success in your Traverse method without calling
+ * any other submit calls.
+ * + Next, calculate the size of your object on disk
+ * + Gather whatever state from the view you need to preserve
+ * - you may access the view state NOW, as the state of the
+ * view duing your TQ3XObjectWriteMethod will not be valid. You may
+ * pass a temporary buffer to your write method.
+ * + Submit your view write data using Q3View_SubmitWriteData
+ * - note that you MUST call this before any other "_Submit" call.
+ * - you may pass in a "deleteMethod" for your data. This method
+ * will be called whether or not your write method succeeds or fails.
+ * + Submit your subobjects to the view
+ *
+ * The TQ3XObjectWriteMethod method should:
+ * + Write your data format to the file using the primitives routines below.
+ * - If you passed a "deleteMethod" in your Q3View_SubmitWriteData, that
+ * method will be called upon exit of your write method.
+ *
+ * Reading is less straightforward because your root object and
+ * any subobjects must be read inside of your TQ3XObjectReadDataMethod. There
+ * is an implicit state contained in the file while reading, which you must
+ * be aware of. When you first enter the read method, you must physically
+ * read in your data format using the primitives routines until
+ *
+ * Q3File_IsEndOfData(file) == kQ3True
+ *
+ * Generally, your data format should be self-descriptive such that you do not
+ * need to call Q3File_IsEndOfData to determine if you are done reading.
+ * However, this call is useful for determining zero-sized object or
+ * determining the end of an object's data.
+ *
+ * Once you have read in all the data, you may collect subobjects. A metafile
+ * object ONLY has subobjects if it is in a container. The call
+ *
+ * Q3File_IsEndOfContainer(file)
+ *
+ * returns kQ3False if subobjects exist, and kQ3True if subobjects do not
+ * exist.
+ *
+ * At this point, you may use
+ *
+ * Q3File_GetNextObjectType
+ * Q3File_IsNextObjectOfType
+ * Q3File_ReadObject
+ * Q3File_SkipObject
+ *
+ * to iterate through the subobjects until Q3File_IsEndOfContainer(file)
+ * is kQ3True.
+ *
+ */
+
+/*
+ * IO Methods
+ */
+enum {
+ kQ3XMethodTypeObjectFileVersion = FOUR_CHAR_CODE('vers'), /* version */
+ kQ3XMethodTypeObjectTraverse = FOUR_CHAR_CODE('trvs'), /* byte count */
+ kQ3XMethodTypeObjectTraverseData = FOUR_CHAR_CODE('trvd'), /* byte count */
+ kQ3XMethodTypeObjectWrite = FOUR_CHAR_CODE('writ'), /* Dump info to file */
+ kQ3XMethodTypeObjectReadData = FOUR_CHAR_CODE('rddt'), /* Read info from file into buffer or, attach read data to parent */
+ kQ3XMethodTypeObjectRead = FOUR_CHAR_CODE('read'),
+ kQ3XMethodTypeObjectAttach = FOUR_CHAR_CODE('attc')
+};
+
+/*
+ * TQ3XObjectTraverseMethod
+ *
+ * For "elements" (meaning "attributes, too), you will be passed NULL for
+ * object. Sorry, custom objects will be available in the next major revision.
+ *
+ * The "data" is a pointer to your internal element data.
+ *
+ * The view is the current traversal view.
+ */
+typedef CALLBACK_API_C( TQ3Status , TQ3XObjectTraverseMethod )(TQ3Object object, void *data, TQ3ViewObject view);
+/*
+ * TQ3XObjectTraverseDataMethod
+ */
+typedef CALLBACK_API_C( TQ3Status , TQ3XObjectTraverseDataMethod )(TQ3Object object, void *data, TQ3ViewObject view);
+/*
+ * TQ3XObjectWriteMethod
+ */
+typedef CALLBACK_API_C( TQ3Status , TQ3XObjectWriteMethod )(const void *object, TQ3FileObject theFile);
+/*
+ * Custom object writing
+ */
+typedef CALLBACK_API_C( void , TQ3XDataDeleteMethod )(void * data);
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3XView_SubmitWriteData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3XView_SubmitWriteData(
+ TQ3ViewObject view,
+ TQ3Size size,
+ void * data,
+ TQ3XDataDeleteMethod deleteData);
+
+
+/*
+ * Q3XView_SubmitSubObjectData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3XView_SubmitSubObjectData(
+ TQ3ViewObject view,
+ TQ3XObjectClass objectClass,
+ unsigned long size,
+ void * data,
+ TQ3XDataDeleteMethod deleteData);
+
+
+/*
+ * TQ3XObjectReadMethod
+ */
+#endif /* CALL_NOT_IN_CARBON */
+
+typedef CALLBACK_API_C( TQ3Object , TQ3XObjectReadMethod )(TQ3FileObject theFile);
+/*
+ * TQ3XObjectReadDataMethod
+ *
+ * For "elements" (meaning "attributes", too), you must allocate stack space
+ * and call Q3Set_Add on "parentObject", which is an TQ3SetObject.
+ *
+ * Otherwise, parentObject is whatever object your element is a subobject of...
+ */
+typedef CALLBACK_API_C( TQ3Status , TQ3XObjectReadDataMethod )(TQ3Object parentObject, TQ3FileObject theFile);
+/*
+ * TQ3XObjectAttachMethod
+ */
+typedef CALLBACK_API_C( TQ3Status , TQ3XObjectAttachMethod )(TQ3Object childObject, TQ3Object parentObject);
+
+
+/******************************************************************************
+ ** **
+ ** Versioning **
+ ** **
+ *****************************************************************************/
+
+#define Q3FileVersion(majorVersion, minorVersion) (TQ3FileVersion) \
+ ((((TQ3Uns32) majorVersion & 0xFFFF) << 16) | ((TQ3Uns32) minorVersion & 0xFFFF))
+
+typedef unsigned long TQ3FileVersion;
+#define kQ3FileVersionCurrent Q3FileVersion(1,6)
+
+/******************************************************************************
+ ** **
+ ** File Routines **
+ ** **
+ *****************************************************************************/
+/*
+ * Creation and accessors
+ */
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3File_New()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3FileObject )
+Q3File_New(void);
+
+
+/*
+ * Q3File_GetStorage()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_GetStorage(
+ TQ3FileObject theFile,
+ TQ3StorageObject * storage);
+
+
+/*
+ * Q3File_SetStorage()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_SetStorage(
+ TQ3FileObject theFile,
+ TQ3StorageObject storage);
+
+
+/*
+ * Opening, and accessing "open" state, closing/cancelling
+ */
+/*
+ * Q3File_OpenRead()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_OpenRead(
+ TQ3FileObject theFile,
+ TQ3FileMode * mode);
+
+
+/*
+ * Q3File_OpenWrite()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_OpenWrite(
+ TQ3FileObject theFile,
+ TQ3FileMode mode);
+
+
+/*
+ * Q3File_IsOpen()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_IsOpen(
+ TQ3FileObject theFile,
+ TQ3Boolean * isOpen);
+
+
+/*
+ * Q3File_GetMode()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_GetMode(
+ TQ3FileObject theFile,
+ TQ3FileMode * mode);
+
+
+/*
+ * Q3File_GetVersion()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_GetVersion(
+ TQ3FileObject theFile,
+ TQ3FileVersion * version);
+
+
+/*
+ * Q3File_Close()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_Close(TQ3FileObject theFile);
+
+
+/*
+ * Q3File_Cancel()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_Cancel(TQ3FileObject theFile);
+
+
+/*
+ * Writing (Application)
+ */
+/*
+ * Q3View_StartWriting()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3View_StartWriting(
+ TQ3ViewObject view,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3View_EndWriting()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3ViewStatus )
+Q3View_EndWriting(TQ3ViewObject view);
+
+
+/*
+ * Reading (Application)
+ */
+/*
+ * Q3File_GetNextObjectType()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3ObjectType )
+Q3File_GetNextObjectType(TQ3FileObject theFile);
+
+
+/*
+ * Q3File_IsNextObjectOfType()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Boolean )
+Q3File_IsNextObjectOfType(
+ TQ3FileObject theFile,
+ TQ3ObjectType ofType);
+
+
+/*
+ * Q3File_ReadObject()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Object )
+Q3File_ReadObject(TQ3FileObject theFile);
+
+
+/*
+ * Q3File_SkipObject()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_SkipObject(TQ3FileObject theFile);
+
+
+/*
+ * Q3File_IsEndOfData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Boolean )
+Q3File_IsEndOfData(TQ3FileObject theFile);
+
+
+/*
+ * Q3File_IsEndOfContainer()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Boolean )
+Q3File_IsEndOfContainer(
+ TQ3FileObject theFile,
+ TQ3Object rootObject);
+
+
+/*
+ * Q3File_IsEndOfFile()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Boolean )
+Q3File_IsEndOfFile(TQ3FileObject theFile);
+
+
+/*
+ * External file references
+ */
+/*
+ * Q3File_MarkAsExternalReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_MarkAsExternalReference(
+ TQ3FileObject theFile,
+ TQ3SharedObject sharedObject);
+
+
+/*
+ * Q3File_GetExternalReferences()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3GroupObject )
+Q3File_GetExternalReferences(TQ3FileObject theFile);
+
+
+/*
+ * Tracking editing in read-in objects with custom elements
+ */
+/*
+ * Q3Shared_ClearEditTracking()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Shared_ClearEditTracking(TQ3SharedObject sharedObject);
+
+
+/*
+ * Q3Shared_GetEditTrackingState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Boolean )
+Q3Shared_GetEditTrackingState(TQ3SharedObject sharedObject);
+
+
+/*
+ * Reading objects inside a group one-by-one
+ */
+#endif /* CALL_NOT_IN_CARBON */
+
+enum TQ3FileReadGroupStateMasks {
+ kQ3FileReadWholeGroup = 0,
+ kQ3FileReadObjectsInGroup = 1 << 0,
+ kQ3FileCurrentlyInsideGroup = 1 << 1
+};
+typedef enum TQ3FileReadGroupStateMasks TQ3FileReadGroupStateMasks;
+
+typedef unsigned long TQ3FileReadGroupState;
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3File_SetReadInGroup()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_SetReadInGroup(
+ TQ3FileObject theFile,
+ TQ3FileReadGroupState readGroupState);
+
+
+/*
+ * Q3File_GetReadInGroup()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_GetReadInGroup(
+ TQ3FileObject theFile,
+ TQ3FileReadGroupState * readGroupState);
+
+
+
+/*
+ * Idling
+ */
+#endif /* CALL_NOT_IN_CARBON */
+
+typedef CALLBACK_API_C( TQ3Status , TQ3FileIdleMethod )(TQ3FileObject theFile, const void *idlerData);
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3File_SetIdleMethod()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3File_SetIdleMethod(
+ TQ3FileObject theFile,
+ TQ3FileIdleMethod idle,
+ const void * idleData);
+
+
+
+/******************************************************************************
+ ** **
+ ** Primitives Routines **
+ ** **
+ *****************************************************************************/
+/*
+ * Q3NewLine_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3NewLine_Write(TQ3FileObject theFile);
+
+
+/*
+ * Q3Uns8_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Uns8_Read(
+ TQ3Uns8 * data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Uns8_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Uns8_Write(
+ TQ3Uns8 data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Uns16_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Uns16_Read(
+ TQ3Uns16 * data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Uns16_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Uns16_Write(
+ TQ3Uns16 data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Uns32_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Uns32_Read(
+ TQ3Uns32 * data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Uns32_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Uns32_Write(
+ TQ3Uns32 data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Int8_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Int8_Read(
+ TQ3Int8 * data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Int8_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Int8_Write(
+ TQ3Int8 data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Int16_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Int16_Read(
+ TQ3Int16 * data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Int16_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Int16_Write(
+ TQ3Int16 data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Int32_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Int32_Read(
+ TQ3Int32 * data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Int32_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Int32_Write(
+ TQ3Int32 data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Uns64_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Uns64_Read(
+ TQ3Uns64 * data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Uns64_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Uns64_Write(
+ TQ3Uns64 data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Int64_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Int64_Read(
+ TQ3Int64 * data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Int64_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Int64_Write(
+ TQ3Int64 data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Float32_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Float32_Read(
+ TQ3Float32 * data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Float32_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Float32_Write(
+ TQ3Float32 data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Float64_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Float64_Read(
+ TQ3Float64 * data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Float64_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Float64_Write(
+ TQ3Float64 data,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Size_Pad()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Size )
+Q3Size_Pad(TQ3Size size);
+
+
+/*
+ * Pass a pointer to a buffer of kQ3StringMaximumLength bytes
+ */
+/*
+ * Q3String_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3String_Read(
+ char * data,
+ unsigned long * length,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3String_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3String_Write(
+ const char * data,
+ TQ3FileObject theFile);
+
+
+/*
+ * This call will read Q3Size_Pad(size) bytes,
+ * but only place size bytes into data.
+ */
+/*
+ * Q3RawData_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3RawData_Read(
+ unsigned char * data,
+ unsigned long size,
+ TQ3FileObject theFile);
+
+
+/*
+ * This call will write Q3Size_Pad(size) bytes,
+ * adding 0's to pad to the nearest 4 byte boundary.
+ */
+/*
+ * Q3RawData_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3RawData_Write(
+ const unsigned char * data,
+ unsigned long size,
+ TQ3FileObject theFile);
+
+
+/******************************************************************************
+ ** **
+ ** Convenient Primitives Routines **
+ ** **
+ *****************************************************************************/
+/*
+ * Q3Point2D_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Point2D_Read(
+ TQ3Point2D * point2D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Point2D_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Point2D_Write(
+ const TQ3Point2D * point2D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Point3D_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Point3D_Read(
+ TQ3Point3D * point3D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Point3D_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Point3D_Write(
+ const TQ3Point3D * point3D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3RationalPoint3D_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3RationalPoint3D_Read(
+ TQ3RationalPoint3D * point3D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3RationalPoint3D_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3RationalPoint3D_Write(
+ const TQ3RationalPoint3D * point3D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3RationalPoint4D_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3RationalPoint4D_Read(
+ TQ3RationalPoint4D * point4D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3RationalPoint4D_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3RationalPoint4D_Write(
+ const TQ3RationalPoint4D * point4D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Vector2D_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Vector2D_Read(
+ TQ3Vector2D * vector2D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Vector2D_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Vector2D_Write(
+ const TQ3Vector2D * vector2D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Vector3D_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Vector3D_Read(
+ TQ3Vector3D * vector3D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Vector3D_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Vector3D_Write(
+ const TQ3Vector3D * vector3D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Matrix4x4_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Matrix4x4_Read(
+ TQ3Matrix4x4 * matrix4x4,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Matrix4x4_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Matrix4x4_Write(
+ const TQ3Matrix4x4 * matrix4x4,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Tangent2D_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Tangent2D_Read(
+ TQ3Tangent2D * tangent2D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Tangent2D_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Tangent2D_Write(
+ const TQ3Tangent2D * tangent2D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Tangent3D_Read()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Tangent3D_Read(
+ TQ3Tangent3D * tangent3D,
+ TQ3FileObject theFile);
+
+
+/*
+ * Q3Tangent3D_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Tangent3D_Write(
+ const TQ3Tangent3D * tangent3D,
+ TQ3FileObject theFile);
+
+
+/* This call affects only text Files - it is a no-op in binary files */
+/*
+ * Q3Comment_Write()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Comment_Write(
+ char * comment,
+ TQ3FileObject theFile);
+
+
+/******************************************************************************
+ ** **
+ ** Unknown Object **
+ ** **
+ ** Unknown objects are generated when reading files which contain **
+ ** custom data which has not been registered in the current **
+ ** instantiation of QuickDraw 3D. **
+ ** **
+ *****************************************************************************/
+/*
+ * Q3Unknown_GetType()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3ObjectType )
+Q3Unknown_GetType(TQ3UnknownObject unknownObject);
+
+
+/*
+ * Q3Unknown_GetDirtyState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Unknown_GetDirtyState(
+ TQ3UnknownObject unknownObject,
+ TQ3Boolean * isDirty);
+
+
+/*
+ * Q3Unknown_SetDirtyState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3Unknown_SetDirtyState(
+ TQ3UnknownObject unknownObject,
+ TQ3Boolean isDirty);
+
+
+
+/******************************************************************************
+ ** **
+ ** Unknown Text Routines **
+ ** **
+ *****************************************************************************/
+#endif /* CALL_NOT_IN_CARBON */
+
+struct TQ3UnknownTextData {
+ char * objectName; /* '\0' terminated */
+ char * contents; /* '\0' terminated */
+};
+typedef struct TQ3UnknownTextData TQ3UnknownTextData;
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3UnknownText_GetData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3UnknownText_GetData(
+ TQ3UnknownObject unknownObject,
+ TQ3UnknownTextData * unknownTextData);
+
+
+/*
+ * Q3UnknownText_EmptyData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3UnknownText_EmptyData(TQ3UnknownTextData * unknownTextData);
+
+
+
+/******************************************************************************
+ ** **
+ ** Unknown Binary Routines **
+ ** **
+ *****************************************************************************/
+#endif /* CALL_NOT_IN_CARBON */
+
+struct TQ3UnknownBinaryData {
+ TQ3ObjectType objectType;
+ unsigned long size;
+ TQ3Endian byteOrder;
+ char * contents;
+};
+typedef struct TQ3UnknownBinaryData TQ3UnknownBinaryData;
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3UnknownBinary_GetData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3UnknownBinary_GetData(
+ TQ3UnknownObject unknownObject,
+ TQ3UnknownBinaryData * unknownBinaryData);
+
+
+/*
+ * Q3UnknownBinary_EmptyData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3UnknownBinary_EmptyData(TQ3UnknownBinaryData * unknownBinaryData);
+
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3UnknownBinary_GetTypeString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3UnknownBinary_GetTypeString(
+ TQ3UnknownObject unknownObject,
+ char ** typeString);
+
+
+/*
+ * Q3UnknownBinary_EmptyTypeString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3UnknownBinary_EmptyTypeString(char ** typeString);
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+/******************************************************************************
+ ** **
+ ** ViewHints routines **
+ ** **
+ ** ViewHints are an object in a metafile to give you some hints on how **
+ ** to render a scene. You may create a view with any of the objects **
+ ** retrieved from it, or you can just throw it away. **
+ ** **
+ ** To write a view hints to a file, create a view hints object from a **
+ ** view and write the view hints. **
+ ** **
+ *****************************************************************************/
+#if CALL_NOT_IN_CARBON
+/*
+ * Q3ViewHints_New()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3ViewHintsObject )
+Q3ViewHints_New(TQ3ViewObject view);
+
+
+/*
+ * Q3ViewHints_SetRenderer()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_SetRenderer(
+ TQ3ViewHintsObject viewHints,
+ TQ3RendererObject renderer);
+
+
+/*
+ * Q3ViewHints_GetRenderer()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_GetRenderer(
+ TQ3ViewHintsObject viewHints,
+ TQ3RendererObject * renderer);
+
+
+/*
+ * Q3ViewHints_SetCamera()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_SetCamera(
+ TQ3ViewHintsObject viewHints,
+ TQ3CameraObject camera);
+
+
+/*
+ * Q3ViewHints_GetCamera()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_GetCamera(
+ TQ3ViewHintsObject viewHints,
+ TQ3CameraObject * camera);
+
+
+/*
+ * Q3ViewHints_SetLightGroup()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_SetLightGroup(
+ TQ3ViewHintsObject viewHints,
+ TQ3GroupObject lightGroup);
+
+
+/*
+ * Q3ViewHints_GetLightGroup()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_GetLightGroup(
+ TQ3ViewHintsObject viewHints,
+ TQ3GroupObject * lightGroup);
+
+
+/*
+ * Q3ViewHints_SetAttributeSet()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_SetAttributeSet(
+ TQ3ViewHintsObject viewHints,
+ TQ3AttributeSet attributeSet);
+
+
+/*
+ * Q3ViewHints_GetAttributeSet()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_GetAttributeSet(
+ TQ3ViewHintsObject viewHints,
+ TQ3AttributeSet * attributeSet);
+
+
+/*
+ * Q3ViewHints_SetDimensionsState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_SetDimensionsState(
+ TQ3ViewHintsObject viewHints,
+ TQ3Boolean isValid);
+
+
+/*
+ * Q3ViewHints_GetDimensionsState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_GetDimensionsState(
+ TQ3ViewHintsObject viewHints,
+ TQ3Boolean * isValid);
+
+
+/*
+ * Q3ViewHints_SetDimensions()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_SetDimensions(
+ TQ3ViewHintsObject viewHints,
+ unsigned long width,
+ unsigned long height);
+
+
+/*
+ * Q3ViewHints_GetDimensions()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_GetDimensions(
+ TQ3ViewHintsObject viewHints,
+ unsigned long * width,
+ unsigned long * height);
+
+
+/*
+ * Q3ViewHints_SetMaskState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_SetMaskState(
+ TQ3ViewHintsObject viewHints,
+ TQ3Boolean isValid);
+
+
+/*
+ * Q3ViewHints_GetMaskState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_GetMaskState(
+ TQ3ViewHintsObject viewHints,
+ TQ3Boolean * isValid);
+
+
+/*
+ * Q3ViewHints_SetMask()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_SetMask(
+ TQ3ViewHintsObject viewHints,
+ const TQ3Bitmap * mask);
+
+
+/*
+ * Q3ViewHints_GetMask()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_GetMask(
+ TQ3ViewHintsObject viewHints,
+ TQ3Bitmap * mask);
+
+
+/* Call Q3Bitmap_Empty when done with the mask */
+/*
+ * Q3ViewHints_SetClearImageMethod()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_SetClearImageMethod(
+ TQ3ViewHintsObject viewHints,
+ TQ3DrawContextClearImageMethod clearMethod);
+
+
+/*
+ * Q3ViewHints_GetClearImageMethod()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_GetClearImageMethod(
+ TQ3ViewHintsObject viewHints,
+ TQ3DrawContextClearImageMethod * clearMethod);
+
+
+/*
+ * Q3ViewHints_SetClearImageColor()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_SetClearImageColor(
+ TQ3ViewHintsObject viewHints,
+ const TQ3ColorARGB * color);
+
+
+/*
+ * Q3ViewHints_GetClearImageColor()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API_C( TQ3Status )
+Q3ViewHints_GetClearImageColor(
+ TQ3ViewHintsObject viewHints,
+ TQ3ColorARGB * color);
+
+
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+
+#if PRAGMA_ENUM_ALWAYSINT
+ #pragma enumsalwaysint reset
+ #ifdef __QD3DIO__RESTORE_TWOBYTEINTS
+ #pragma fourbyteints off
+ #endif
+#elif PRAGMA_ENUM_OPTIONS
+ #pragma option enum=reset
+#elif defined(__QD3DIO__RESTORE_PACKED_ENUMS)
+ #pragma options(pack_enums)
+#endif
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=reset
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(pop)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack()
+#endif
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __QD3DIO__ */
+