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/GXMath.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/GXMath.h')
| -rw-r--r-- | common/quicktime_win32/GXMath.h | 744 |
1 files changed, 744 insertions, 0 deletions
diff --git a/common/quicktime_win32/GXMath.h b/common/quicktime_win32/GXMath.h new file mode 100644 index 0000000..3c0c813 --- /dev/null +++ b/common/quicktime_win32/GXMath.h @@ -0,0 +1,744 @@ +/* + File: GXMath.h + + Contains: QuickDraw GX math routine interfaces. + + Version: Technology: Quickdraw GX 1.1 + Release: QuickTime 7.3 + + Copyright: (c) 2007 (c) 1994-2006 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 __GXMATH__ +#define __GXMATH__ + +#ifndef __CONDITIONALMACROS__ +#include <ConditionalMacros.h> +#endif + +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + +#ifndef __FIXMATH__ +#include <FixMath.h> +#endif + +#ifndef __IMAGECODEC__ +#include <ImageCodec.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=mac68k +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + +#if defined(__MWERKS__) && TARGET_CPU_68K + #pragma push + #pragma pointers_in_D0 +#endif + +/* Now defined in ImageCodec.i*/ +#if 0 +struct gxPoint { + Fixed x; + Fixed y; +}; +typedef struct gxPoint gxPoint; +#endif /* 0 */ + + +typedef unsigned short gxColorValue; +struct gxPolar { + Fixed radius; + Fixed angle; +}; +typedef struct gxPolar gxPolar; +struct gxMapping { + Fixed map[3][3]; +}; +typedef struct gxMapping gxMapping; +#define gxColorValue1 ((gxColorValue) 0x0000FFFF) +#define gxPositiveInfinity ((long) 0x7FFFFFFFL) +#define gxNegativeInfinity ((long) 0x80000000L) + +#if CALL_NOT_IN_CARBON +/* + * CopyToMapping() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( gxMapping * ) +CopyToMapping( + gxMapping * target, + const gxMapping * source) THREEWORDINLINE(0x303C, 0x0031, 0xA832); + + +/* + * InvertMapping() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( gxMapping * ) +InvertMapping( + gxMapping * target, + const gxMapping * source) THREEWORDINLINE(0x303C, 0x0032, 0xA832); + + +/* + * MapMapping() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( gxMapping * ) +MapMapping( + gxMapping * target, + const gxMapping * source) THREEWORDINLINE(0x303C, 0x0033, 0xA832); + + +/* + * MoveMapping() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( gxMapping * ) +MoveMapping( + gxMapping * target, + Fixed hOffset, + Fixed vOffset) THREEWORDINLINE(0x303C, 0x0034, 0xA832); + + +/* + * MoveMappingTo() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( gxMapping * ) +MoveMappingTo( + gxMapping * target, + Fixed hPosition, + Fixed vPosition) THREEWORDINLINE(0x303C, 0x0035, 0xA832); + + +/* + * NormalizeMapping() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( gxMapping * ) +NormalizeMapping(gxMapping * target) THREEWORDINLINE(0x303C, 0x0036, 0xA832); + + +/* + * RotateMapping() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( gxMapping * ) +RotateMapping( + gxMapping * target, + Fixed angle, + Fixed xCenter, + Fixed yCenter) THREEWORDINLINE(0x303C, 0x0037, 0xA832); + + +/* + * ScaleMapping() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( gxMapping * ) +ScaleMapping( + gxMapping * target, + Fixed hFactor, + Fixed vFactor, + Fixed xCenter, + Fixed yCenter) THREEWORDINLINE(0x303C, 0x0038, 0xA832); + + +/* + * ResetMapping() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( gxMapping * ) +ResetMapping(gxMapping * target) THREEWORDINLINE(0x303C, 0x0039, 0xA832); + + +/* + * SkewMapping() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( gxMapping * ) +SkewMapping( + gxMapping * target, + Fixed skewX, + Fixed skewY, + Fixed xCenter, + Fixed yCenter) THREEWORDINLINE(0x303C, 0x003A, 0xA832); + + +/* + * MapPoints() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( void ) +MapPoints( + const gxMapping * source, + long count, + gxPoint theVector[]) THREEWORDINLINE(0x303C, 0x003B, 0xA832); + + +/* + * FirstBit() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( short ) +FirstBit(unsigned long x) THREEWORDINLINE(0x303C, 0x003C, 0xA832); + + +/* + * WideScale() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( short ) +WideScale(const wide * source) THREEWORDINLINE(0x303C, 0x003D, 0xA832); + + +/* + * LinearRoot() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( short ) +LinearRoot( + Fixed first, + Fixed last, + Fract t[]) THREEWORDINLINE(0x303C, 0x003E, 0xA832); + + +/* + * QuadraticRoot() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( short ) +QuadraticRoot( + Fixed first, + Fixed control, + Fixed last, + Fract t[]) THREEWORDINLINE(0x303C, 0x003F, 0xA832); + + +/* + * PolarToPoint() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( gxPoint * ) +PolarToPoint( + const gxPolar * ra, + gxPoint * xy) THREEWORDINLINE(0x303C, 0x0040, 0xA832); + + +/* + * PointToPolar() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( gxPolar * ) +PointToPolar( + const gxPoint * xy, + gxPolar * ra) THREEWORDINLINE(0x303C, 0x0041, 0xA832); + + +/* + * FractCubeRoot() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( Fract ) +FractCubeRoot(Fract source) THREEWORDINLINE(0x303C, 0x0042, 0xA832); + + +/* + * FractDivide() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( Fract ) +FractDivide( + Fract dividend, + Fract divisor) THREEWORDINLINE(0x303C, 0x0043, 0xA832); + + +/* + * FractMultiply() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( Fract ) +FractMultiply( + Fract multiplicand, + Fract multiplier) THREEWORDINLINE(0x303C, 0x0044, 0xA832); + + +/* + * FractSineCosine() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( Fract ) +FractSineCosine( + Fixed degrees, + Fract * cosine) THREEWORDINLINE(0x303C, 0x0045, 0xA832); + + +/* + * FractSquareRoot() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( Fract ) +FractSquareRoot(Fract source) THREEWORDINLINE(0x303C, 0x0046, 0xA832); + + +/* + * FixedDivide() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( Fixed ) +FixedDivide( + Fixed dividend, + Fixed divisor) THREEWORDINLINE(0x303C, 0x0047, 0xA832); + + +/* + * FixedMultiply() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( Fixed ) +FixedMultiply( + Fixed multiplicand, + Fixed multiplier) THREEWORDINLINE(0x303C, 0x0048, 0xA832); + + +/* This next call is (source * multiplier / divisor) -- it avoids underflow, overflow by using wides */ +/* + * MultiplyDivide() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( long ) +MultiplyDivide( + long source, + long multiplier, + long divisor) THREEWORDINLINE(0x303C, 0x0049, 0xA832); + + +/* + * Magnitude() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( unsigned long ) +Magnitude( + long deltaX, + long deltaY) THREEWORDINLINE(0x303C, 0x004A, 0xA832); + + +/* + * VectorMultiplyDivide() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( long ) +VectorMultiplyDivide( + long count, + const long * vector1, + long step1, + const long * vector2, + long step2, + long divisor) THREEWORDINLINE(0x303C, 0x004B, 0xA832); + + + + + +/* wide operations are defined within FixMath.h for PowerPC */ +#endif /* CALL_NOT_IN_CARBON */ + +#if TARGET_OS_MAC && TARGET_CPU_68K +#if CALL_NOT_IN_CARBON +/* + * WideAdd() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( wide * ) +WideAdd( + wide * target, + const wide * source) THREEWORDINLINE(0x303C, 0x004C, 0xA832); + + +/* + * WideCompare() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( short ) +WideCompare( + const wide * target, + const wide * source) THREEWORDINLINE(0x303C, 0x004D, 0xA832); + + +/* + * WideNegate() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( wide * ) +WideNegate(wide * target) THREEWORDINLINE(0x303C, 0x004E, 0xA832); + + +/* + * WideShift() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( wide * ) +WideShift( + wide * target, + long shift) THREEWORDINLINE(0x303C, 0x004F, 0xA832); + + +/* + * WideSquareRoot() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( unsigned long ) +WideSquareRoot(const wide * source) THREEWORDINLINE(0x303C, 0x0050, 0xA832); + + +/* + * WideSubtract() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( wide * ) +WideSubtract( + wide * target, + const wide * source) THREEWORDINLINE(0x303C, 0x0051, 0xA832); + + +/* + * WideMultiply() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( wide * ) +WideMultiply( + long multiplicand, + long multiplier, + wide * target) THREEWORDINLINE(0x303C, 0x0052, 0xA832); + + +/* returns the quotient */ +/* + * WideDivide() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( long ) +WideDivide( + const wide * dividend, + long divisor, + long * remainder) THREEWORDINLINE(0x303C, 0x0053, 0xA832); + + +/* quotient replaces dividend */ +/* + * WideWideDivide() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( wide * ) +WideWideDivide( + wide * dividend, + long divisor, + long * remainder) THREEWORDINLINE(0x303C, 0x0055, 0xA832); + + +#endif /* CALL_NOT_IN_CARBON */ + +#endif /* TARGET_OS_MAC && TARGET_CPU_68K */ + + + +#if CALL_NOT_IN_CARBON +/* + * VectorMultiply() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( wide * ) +VectorMultiply( + long count, + const long * vector1, + long step1, + const long * vector2, + long step2, + wide * dot) THREEWORDINLINE(0x303C, 0x0054, 0xA832); + + +/* + * RandomBits() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( unsigned long ) +RandomBits( + long count, + long focus) THREEWORDINLINE(0x303C, 0x0056, 0xA832); + + +/* + * SetRandomSeed() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( void ) +SetRandomSeed(const wide * seed) THREEWORDINLINE(0x303C, 0x0057, 0xA832); + + +/* + * GetRandomSeed() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API_C( wide * ) +GetRandomSeed(wide * seed) THREEWORDINLINE(0x303C, 0x0058, 0xA832); + + +#endif /* CALL_NOT_IN_CARBON */ + +#ifndef FixedRound +#define FixedRound(a) ((short)(((Fixed)(a) + fixed1/2) >> 16)) +#endif +#ifndef FixedSquareRoot +#define FixedSquareRoot(a) (((Fixed)FractSquareRoot(a) + 64) >> 7) +#endif +#ifndef FixedTruncate +#define FixedTruncate(a) ((short)((Fixed)(a) >> 16)) +#endif +#ifndef FixedToFract +#define FixedToFract(a) ((Fract)(a) << 14) +#endif +#ifndef FractToFixed +#define FractToFixed(a) ((Fixed)(a) + 8192L >> 14) +#endif +#ifndef FixedToInt +#define FixedToInt(a) ((short)(((Fixed)(a) + fixed1/2) >> 16)) +#endif +#ifndef IntToFixed +#define IntToFixed(a) ((Fixed)(a) << 16) +#endif +#ifndef FixedToFloat +#define FixedToFloat(a) ((float)(a) / fixed1) +#endif +#ifndef FloatToFixed +#define FloatToFixed(a) ((Fixed)((float)(a) * fixed1)) +#endif +#ifndef FractToFloat +#define FractToFloat(a) ((float)(a) / fract1) +#endif +#ifndef FloatToFract +#define FloatToFract(a) ((Fract)((float)(a) * fract1)) +#endif +#ifndef ColorToFract +#define ColorToFract(a) (((Fract) (a) << 14) + (((Fract)(a) + 2) >> 2)) +#endif +#ifndef FractToColor +#define FractToColor(a) ((gxColorValue) ((a) - ((a) >> 16) + 8191 >> 14)) +#endif +#ifndef ff /* ff is already defined on some platforms */ +#define ff(a) IntToFixed(a) +#define fl(a) FloatToFixed(a) +#endif + + +#if defined(__MWERKS__) && TARGET_CPU_68K + #pragma pop +#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 /* __GXMATH__ */ + |