diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/QD3DSet.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/quicktime_win32/QD3DSet.h')
| -rw-r--r-- | common/quicktime_win32/QD3DSet.h | 530 |
1 files changed, 530 insertions, 0 deletions
diff --git a/common/quicktime_win32/QD3DSet.h b/common/quicktime_win32/QD3DSet.h new file mode 100644 index 0000000..bd30f71 --- /dev/null +++ b/common/quicktime_win32/QD3DSet.h @@ -0,0 +1,530 @@ +/* + File: QD3DSet.h + + Contains: Q3Set types and routines + + 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 __QD3DSET__ +#define __QD3DSET__ + +#ifndef __QD3D__ +#include <QD3D.h> +#endif + + + + +#if PRAGMA_ONCE +#pragma once +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#if PRAGMA_ENUM_ALWAYSINT + #if defined(__fourbyteints__) && !__fourbyteints__ + #define __QD3DSET__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 __QD3DSET__RESTORE_PACKED_ENUMS + #pragma options(!pack_enums) + #endif +#endif + +/****************************************************************************** + ** ** + ** Set Routines ** + ** ** + *****************************************************************************/ +#if CALL_NOT_IN_CARBON +/* + * Q3Set_New() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3SetObject ) +Q3Set_New(void); + + +/* + * Q3Set_GetType() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3ObjectType ) +Q3Set_GetType(TQ3SetObject theSet); + + +/* + * Q3Set_Add() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Set_Add( + TQ3SetObject theSet, + TQ3ElementType theType, + const void * data); + + +/* + * Q3Set_Get() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Set_Get( + TQ3SetObject theSet, + TQ3ElementType theType, + void * data); + + +/* + * Q3Set_Contains() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Boolean ) +Q3Set_Contains( + TQ3SetObject theSet, + TQ3ElementType theType); + + +/* + * Q3Set_Clear() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Set_Clear( + TQ3SetObject theSet, + TQ3ElementType theType); + + +/* + * Q3Set_Empty() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Set_Empty(TQ3SetObject target); + + +/* + * 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: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Set_GetNextElementType( + TQ3SetObject theSet, + TQ3ElementType * theType); + + + +/****************************************************************************** + ** ** + ** Attribute Types ** + ** ** + *****************************************************************************/ +/* + * 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 + */ +#endif /* CALL_NOT_IN_CARBON */ + +enum TQ3AttributeTypes { + /* Data Type */ + kQ3AttributeTypeNone = 0, /* --------- */ + kQ3AttributeTypeSurfaceUV = 1, /* TQ3Param2D */ + kQ3AttributeTypeShadingUV = 2, /* TQ3Param2D */ + kQ3AttributeTypeNormal = 3, /* TQ3Vector3D */ + kQ3AttributeTypeAmbientCoefficient = 4, /* float */ + kQ3AttributeTypeDiffuseColor = 5, /* TQ3ColorRGB */ + kQ3AttributeTypeSpecularColor = 6, /* TQ3ColorRGB */ + kQ3AttributeTypeSpecularControl = 7, /* float */ + kQ3AttributeTypeTransparencyColor = 8, /* TQ3ColorRGB */ + kQ3AttributeTypeSurfaceTangent = 9, /* TQ3Tangent2D */ + kQ3AttributeTypeHighlightState = 10, /* TQ3Switch */ + kQ3AttributeTypeSurfaceShader = 11, /* TQ3SurfaceShaderObject */ + kQ3AttributeTypeNumTypes = 12 +}; +typedef enum TQ3AttributeTypes TQ3AttributeTypes; + +typedef TQ3ElementType TQ3AttributeType; +/****************************************************************************** + ** ** + ** Attribute Drawing ** + ** ** + *****************************************************************************/ +#if CALL_NOT_IN_CARBON +/* + * Q3Attribute_Submit() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3Attribute_Submit( + TQ3AttributeType attributeType, + const void * data, + TQ3ViewObject view); + + + +/****************************************************************************** + ** ** + ** AttributeSet Routines ** + ** ** + *****************************************************************************/ +/* + * Q3AttributeSet_New() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3AttributeSet ) +Q3AttributeSet_New(void); + + +/* + * Q3AttributeSet_Add() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3AttributeSet_Add( + TQ3AttributeSet attributeSet, + TQ3AttributeType theType, + const void * data); + + +/* + * Q3AttributeSet_Contains() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Boolean ) +Q3AttributeSet_Contains( + TQ3AttributeSet attributeSet, + TQ3AttributeType attributeType); + + +/* + * Q3AttributeSet_Get() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3AttributeSet_Get( + TQ3AttributeSet attributeSet, + TQ3AttributeType theType, + void * data); + + +/* + * Q3AttributeSet_Clear() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3AttributeSet_Clear( + TQ3AttributeSet attributeSet, + TQ3AttributeType theType); + + +/* + * Q3AttributeSet_Empty() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3AttributeSet_Empty(TQ3AttributeSet target); + + +/* + * Q3AttributeSet_GetNextAttributeType + * + * Pass in kQ3AttributeTypeNone to get first type + * kQ3AttributeTypeNone is returned when end of list is reached + */ +/* + * Q3AttributeSet_GetNextAttributeType() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3AttributeSet_GetNextAttributeType( + TQ3AttributeSet source, + TQ3AttributeType * theType); + + +/* + * Q3AttributeSet_Submit() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3AttributeSet_Submit( + TQ3AttributeSet attributeSet, + TQ3ViewObject view); + + +/* + * Inherit from parent->child into result + * Result attributes are: + * all child attributes + all parent attributes NOT in the child + */ +/* + * Q3AttributeSet_Inherit() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3AttributeSet_Inherit( + TQ3AttributeSet parent, + TQ3AttributeSet child, + TQ3AttributeSet result); + + + +/****************************************************************************** + ** ** + ** Custom Element Registration ** + ** ** + *****************************************************************************/ +/* + * 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. + */ +#endif /* CALL_NOT_IN_CARBON */ + +#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') +typedef CALLBACK_API_C( TQ3Status , TQ3XElementCopyAddMethod )(const void *fromAPIElement, void *toInternalElement); +typedef CALLBACK_API_C( TQ3Status , TQ3XElementCopyReplaceMethod )(const void *fromAPIElement, void *ontoInternalElement); +typedef CALLBACK_API_C( TQ3Status , TQ3XElementCopyGetMethod )(const void *fromInternalElement, void *toAPIElement); +typedef CALLBACK_API_C( TQ3Status , TQ3XElementCopyDuplicateMethod )(const void *fromInternalElement, void *toInternalElement); +typedef CALLBACK_API_C( TQ3Status , TQ3XElementDeleteMethod )(void * internalElement); +#if CALL_NOT_IN_CARBON +/* + * Q3XElementClass_Register() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3XObjectClass ) +Q3XElementClass_Register( + TQ3ElementType * elementType, + const char * name, + unsigned long sizeOfElement, + TQ3XMetaHandler metaHandler); + + +/* + * Q3XElementType_GetElementSize() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3Status ) +Q3XElementType_GetElementSize( + TQ3ElementType elementType, + unsigned long * sizeOfElement); + + + +/****************************************************************************** + ** ** + ** Custom Attribute Registration ** + ** ** + *****************************************************************************/ +#define kQ3XMethodTypeAttributeInherit Q3_METHOD_TYPE('i','n','h','t') +#endif /* CALL_NOT_IN_CARBON */ + +typedef TQ3Boolean TQ3XAttributeInheritMethod; +/* return kQ3True or kQ3False in your metahandler */ +#define kQ3XMethodTypeAttributeCopyInherit Q3_METHOD_TYPE('a','c','p','i') +typedef CALLBACK_API_C( TQ3Status , TQ3XAttributeCopyInheritMethod )(const void *fromInternalAttribute, void *toInternalAttribute); +#if CALL_NOT_IN_CARBON +/* + * Q3XAttributeClass_Register() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( TQ3XObjectClass ) +Q3XAttributeClass_Register( + TQ3AttributeType * attributeType, + const char * creatorName, + unsigned long sizeOfElement, + TQ3XMetaHandler metaHandler); + + +/* + * Version 1.5 + */ +#define kQ3XMethodTypeAttributeDefault Q3_METHOD_TYPE('a','s','d','f') +#endif /* CALL_NOT_IN_CARBON */ + +typedef CALLBACK_API_C( TQ3Status , TQ3XAttributeDefaultMethod )(void * internalElement); +#define kQ3XMethodTypeAttributeIsDefault Q3_METHOD_TYPE('a','i','d','f') +typedef CALLBACK_API_C( TQ3Boolean , TQ3XAttributeIsDefaultMethod )(void * internalElement); + + + + + + + +#if PRAGMA_ENUM_ALWAYSINT + #pragma enumsalwaysint reset + #ifdef __QD3DSET__RESTORE_TWOBYTEINTS + #pragma fourbyteints off + #endif +#elif PRAGMA_ENUM_OPTIONS + #pragma option enum=reset +#elif defined(__QD3DSET__RESTORE_PACKED_ENUMS) + #pragma options(pack_enums) +#endif + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __QD3DSET__ */ + |