summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/QD3DSet.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/QD3DSet.h
downloadarchived-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.h530
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__ */
+