|
Mac OS 9
|
Q3Set types and routines. More...
#include <QD3D.h>Go to the source code of this file.
Macros | |
| #define | kQ3XMethodTypeElementCopyAdd Q3_METHOD_TYPE('e', 'c', 'p', 'a') |
| #define | kQ3XMethodTypeElementCopyReplace Q3_METHOD_TYPE('e', 'c', 'p', 'r') |
| #define | kQ3XMethodTypeElementCopyGet Q3_METHOD_TYPE('e', 'c', 'p', 'g') |
| #define | kQ3XMethodTypeElementCopyDuplicate Q3_METHOD_TYPE('e', 'c', 'p', 'd') |
| #define | kQ3XMethodTypeElementDelete Q3_METHOD_TYPE('e', 'd', 'e', 'l') |
| #define | kQ3XMethodTypeAttributeInherit Q3_METHOD_TYPE('i', 'n', 'h', 't') |
| #define | kQ3XMethodTypeAttributeCopyInherit Q3_METHOD_TYPE('a', 'c', 'p', 'i') |
| #define | kQ3XMethodTypeAttributeDefault Q3_METHOD_TYPE('a', 's', 'd', 'f') |
| #define | kQ3XMethodTypeAttributeIsDefault Q3_METHOD_TYPE('a', 'i', 'd', 'f') |
Typedefs | |
| typedef enum TQ3AttributeTypes | TQ3AttributeTypes |
| typedef TQ3ElementType | TQ3AttributeType |
| typedef void * | toInternalElement |
| typedef void * | ontoInternalElement |
| typedef void * | toAPIElement |
| typedef TQ3Boolean | TQ3XAttributeInheritMethod |
| typedef void * | toInternalAttribute |
Enumerations | |
| enum | TQ3AttributeTypes { kQ3AttributeTypeNone = 0 , kQ3AttributeTypeSurfaceUV = 1 , kQ3AttributeTypeShadingUV = 2 , kQ3AttributeTypeNormal = 3 , kQ3AttributeTypeAmbientCoefficient = 4 , kQ3AttributeTypeDiffuseColor = 5 , kQ3AttributeTypeSpecularColor = 6 , kQ3AttributeTypeSpecularControl = 7 , kQ3AttributeTypeTransparencyColor = 8 , kQ3AttributeTypeSurfaceTangent = 9 , kQ3AttributeTypeHighlightState = 10 , kQ3AttributeTypeSurfaceShader = 11 , kQ3AttributeTypeNumTypes = 12 } |
Functions | |
| TQ3SetObject | Q3Set_New (void) |
| TQ3ObjectType | Q3Set_GetType (TQ3SetObject theSet) |
| TQ3Status | Q3Set_Add (TQ3SetObject theSet, TQ3ElementType theType, const void *data) |
| TQ3Status | Q3Set_Get (TQ3SetObject theSet, TQ3ElementType theType, void *data) |
| TQ3Boolean | Q3Set_Contains (TQ3SetObject theSet, TQ3ElementType theType) |
| TQ3Status | Q3Set_Clear (TQ3SetObject theSet, TQ3ElementType theType) |
| TQ3Status | Q3Set_Empty (TQ3SetObject target) |
| TQ3Status | Q3Set_GetNextElementType (TQ3SetObject theSet, TQ3ElementType *theType) |
| TQ3Status | Q3Attribute_Submit (TQ3AttributeType attributeType, const void *data, TQ3ViewObject view) |
| TQ3AttributeSet | Q3AttributeSet_New (void) |
| TQ3Status | Q3AttributeSet_Add (TQ3AttributeSet attributeSet, TQ3AttributeType theType, const void *data) |
| TQ3Boolean | Q3AttributeSet_Contains (TQ3AttributeSet attributeSet, TQ3AttributeType attributeType) |
| TQ3Status | Q3AttributeSet_Get (TQ3AttributeSet attributeSet, TQ3AttributeType theType, void *data) |
| TQ3Status | Q3AttributeSet_Clear (TQ3AttributeSet attributeSet, TQ3AttributeType theType) |
| TQ3Status | Q3AttributeSet_Empty (TQ3AttributeSet target) |
| TQ3Status | Q3AttributeSet_GetNextAttributeType (TQ3AttributeSet source, TQ3AttributeType *theType) |
| TQ3Status | Q3AttributeSet_Submit (TQ3AttributeSet attributeSet, TQ3ViewObject view) |
| TQ3Status | Q3AttributeSet_Inherit (TQ3AttributeSet parent, TQ3AttributeSet child, TQ3AttributeSet result) |
| typedef | CALLBACK_API_C (TQ3Status, TQ3XElementCopyAddMethod)(const void *fromAPIElement |
| typedef | CALLBACK_API_C (TQ3Status, TQ3XElementCopyReplaceMethod)(const void *fromAPIElement |
| typedef | CALLBACK_API_C (TQ3Status, TQ3XElementCopyGetMethod)(const void *fromInternalElement |
| typedef | CALLBACK_API_C (TQ3Status, TQ3XElementCopyDuplicateMethod)(const void *fromInternalElement |
| typedef | CALLBACK_API_C (TQ3Status, TQ3XElementDeleteMethod)(void *internalElement) |
| TQ3XObjectClass | Q3XElementClass_Register (TQ3ElementType *elementType, const char *name, unsigned long sizeOfElement, TQ3XMetaHandler metaHandler) |
| TQ3Status | Q3XElementType_GetElementSize (TQ3ElementType elementType, unsigned long *sizeOfElement) |
| typedef | CALLBACK_API_C (TQ3Status, TQ3XAttributeCopyInheritMethod)(const void *fromInternalAttribute |
| TQ3XObjectClass | Q3XAttributeClass_Register (TQ3AttributeType *attributeType, const char *creatorName, unsigned long sizeOfElement, TQ3XMetaHandler metaHandler) |
| typedef | CALLBACK_API_C (TQ3Status, TQ3XAttributeDefaultMethod)(void *internalElement) |
| typedef | CALLBACK_API_C (TQ3Boolean, TQ3XAttributeIsDefaultMethod)(void *internalElement) |
Q3Set types and routines.
For bug reports, consult the following page on the World Wide Web:
http://developer.apple.com/bugreporter/
| #define kQ3XMethodTypeAttributeDefault Q3_METHOD_TYPE('a', 's', 'd', 'f') |
Version 1.5
| #define kQ3XMethodTypeElementCopyAdd Q3_METHOD_TYPE('e', 'c', 'p', 'a') |
Element Methods -
When you create a custom element, you control what structures are
passed around the API. For example, you may allow the Q3Set_Add call
take one type of argument, store your element internally in some
abstract data type, and have the Q3Set_Get call take a different
argument.
For example:
There are four calls which at some point will copy an element:
Q3Set_Add (copied from Application memory to QuickDraw3D memory)
Q3Set_Get (copied from QuickDraw3D memory to Application memory)
Q3Object_Duplicate (all elements are copied internally)
Q3AttributeSet_Inherit (all elements are copied internally)
Either CopyAdd or CopyReplace is called during the "_Add" call.
- CopyAdd is destructive and should assume "toElement" is garbage
- CopyReplace is replacing an existing element.
CopyGet is called during the "_Get" call.
CopyDuplicate is called to duplicate an element's internal structure.
Attributes Methods -
For copying data while Inheriting. Element methods are used
at all other times.
CopyInherit is called to duplicate an element's internal structure
during inheritance. You should make this as fast as possible.
(for example, if your custom element contains objects, you
should do a Q3Shared_GetReference instead of a Q3Object_Duplicate)
The ElementDelete method will be called for all of your elements
copied around via CopyAdd, CopyReplace, CopyDuplicate, and
CopyInherit.
If CopyGet allocates any memory in it's destination, it is up to the
application to delete it on its side.
| enum TQ3AttributeTypes |
For the data types listed below, pass in a pointer to it in the _Add and _Get calls.
For surface shader attributes, reference counts are incremented on the _Add and _Get
| TQ3Status Q3Attribute_Submit | ( | TQ3AttributeType | attributeType, |
| const void * | data, | ||
| TQ3ViewObject | view | ||
| ) |
Availability:
| TQ3Status Q3AttributeSet_Add | ( | TQ3AttributeSet | attributeSet, |
| TQ3AttributeType | theType, | ||
| const void * | data | ||
| ) |
Availability:
| TQ3Status Q3AttributeSet_Clear | ( | TQ3AttributeSet | attributeSet, |
| TQ3AttributeType | theType | ||
| ) |
Availability:
| TQ3Boolean Q3AttributeSet_Contains | ( | TQ3AttributeSet | attributeSet, |
| TQ3AttributeType | attributeType | ||
| ) |
Availability:
| TQ3Status Q3AttributeSet_Empty | ( | TQ3AttributeSet | target | ) |
Availability:
| TQ3Status Q3AttributeSet_Get | ( | TQ3AttributeSet | attributeSet, |
| TQ3AttributeType | theType, | ||
| void * | data | ||
| ) |
Availability:
| TQ3Status Q3AttributeSet_GetNextAttributeType | ( | TQ3AttributeSet | source, |
| TQ3AttributeType * | theType | ||
| ) |
Q3AttributeSet_GetNextAttributeType
Pass in kQ3AttributeTypeNone to get first type kQ3AttributeTypeNone is returned when end of list is reached Q3AttributeSet_GetNextAttributeType()
Availability:
| TQ3Status Q3AttributeSet_Inherit | ( | TQ3AttributeSet | parent, |
| TQ3AttributeSet | child, | ||
| TQ3AttributeSet | result | ||
| ) |
Inherit from parent->child into result Result attributes are: all child attributes + all parent attributes NOT in the child Q3AttributeSet_Inherit()
Availability:
| TQ3AttributeSet Q3AttributeSet_New | ( | void | ) |
Availability:
| TQ3Status Q3AttributeSet_Submit | ( | TQ3AttributeSet | attributeSet, |
| TQ3ViewObject | view | ||
| ) |
Availability:
| TQ3Status Q3Set_Add | ( | TQ3SetObject | theSet, |
| TQ3ElementType | theType, | ||
| const void * | data | ||
| ) |
Availability:
| TQ3Status Q3Set_Clear | ( | TQ3SetObject | theSet, |
| TQ3ElementType | theType | ||
| ) |
Availability:
| TQ3Boolean Q3Set_Contains | ( | TQ3SetObject | theSet, |
| TQ3ElementType | theType | ||
| ) |
Availability:
| TQ3Status Q3Set_Empty | ( | TQ3SetObject | target | ) |
Availability:
| TQ3Status Q3Set_Get | ( | TQ3SetObject | theSet, |
| TQ3ElementType | theType, | ||
| void * | data | ||
| ) |
Availability:
| TQ3Status Q3Set_GetNextElementType | ( | TQ3SetObject | theSet, |
| TQ3ElementType * | theType | ||
| ) |
Iterating through all elements in a set
Pass in kQ3ElementTypeNone to get first type kQ3ElementTypeNone is returned when end of list is reached Q3Set_GetNextElementType()
Availability:
| TQ3ObjectType Q3Set_GetType | ( | TQ3SetObject | theSet | ) |
Availability:
| TQ3SetObject Q3Set_New | ( | void | ) |
Availability:
| TQ3XObjectClass Q3XAttributeClass_Register | ( | TQ3AttributeType * | attributeType, |
| const char * | creatorName, | ||
| unsigned long | sizeOfElement, | ||
| TQ3XMetaHandler | metaHandler | ||
| ) |
Availability:
| TQ3XObjectClass Q3XElementClass_Register | ( | TQ3ElementType * | elementType, |
| const char * | name, | ||
| unsigned long | sizeOfElement, | ||
| TQ3XMetaHandler | metaHandler | ||
| ) |
Availability:
| TQ3Status Q3XElementType_GetElementSize | ( | TQ3ElementType | elementType, |
| unsigned long * | sizeOfElement | ||
| ) |
Q3XElementType_GetElementSize()
Availability: