/* File: QuickTimeVR.h Contains: QuickTime VR interfaces Version: QuickTime 7.3 Copyright: (c) 2007 (c) 1997-2007 by Apple Inc., all rights reserved. Bugs?: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ */ #ifndef __QUICKTIMEVR__ #define __QUICKTIMEVR__ #ifndef __MACTYPES__ #include #endif #ifndef __MOVIES__ #include #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 /* QuickTime is not available to 64-bit clients */ #if !__LP64__ typedef struct OpaqueQTVRInstance* QTVRInstance; /* Released API Version numbers */ #define kQTVRAPIMajorVersion05 (0x05) #define kQTVRAPIMajorVersion02 (0x02) #define kQTVRAPIMinorVersion00 (0x00) #define kQTVRAPIMinorVersion01 (0x01) #define kQTVRAPIMinorVersion10 (0x10) #define kQTVRAPIMinorVersion20 (0x20) /* Version numbers for the API described in this header */ #define kQTVRAPIMajorVersion kQTVRAPIMajorVersion05 #define kQTVRAPIMinorVersion kQTVRAPIMinorVersion00 enum { kQTVRControllerSubType = FOUR_CHAR_CODE('ctyp'), kQTVRQTVRType = FOUR_CHAR_CODE('qtvr'), kQTVRPanoramaType = FOUR_CHAR_CODE('pano'), kQTVRObjectType = FOUR_CHAR_CODE('obje'), kQTVROldPanoType = FOUR_CHAR_CODE('STpn'), /* Used in QTVR 1.0 release*/ kQTVROldObjectType = FOUR_CHAR_CODE('stna') /* Used in QTVR 1.0 release*/ }; #define kQTVRUnknownType '\?\?\?\?' /* Unknown node type */ /* QTVR hot spot types*/ enum { kQTVRHotSpotLinkType = FOUR_CHAR_CODE('link'), kQTVRHotSpotURLType = FOUR_CHAR_CODE('url '), kQTVRHotSpotUndefinedType = FOUR_CHAR_CODE('undf') }; /* Special Values for nodeID in QTVRGoToNodeID*/ enum { kQTVRCurrentNode = 0, kQTVRPreviousNode = (long)0x80000000, kQTVRDefaultNode = (long)0x80000001 }; /* Panorama correction modes used for the kQTVRImagingCorrection imaging property*/ enum { kQTVRNoCorrection = 0, kQTVRPartialCorrection = 1, kQTVRFullCorrection = 2 }; /* Imaging Modes used by QTVRSetImagingProperty, QTVRGetImagingProperty, QTVRUpdate, QTVRBeginUpdate*/ typedef UInt32 QTVRImagingMode; enum { kQTVRStatic = 1, kQTVRMotion = 2, kQTVRCurrentMode = 0, /* Special Value for QTVRUpdate*/ kQTVRAllModes = 100 /* Special value for QTVRSetProperty*/ }; /* Imaging Properties used by QTVRSetImagingProperty, QTVRGetImagingProperty*/ enum { kQTVRImagingCorrection = 1, kQTVRImagingQuality = 2, kQTVRImagingDirectDraw = 3, kQTVRImagingCurrentMode = 100 /* Get Only*/ }; /* OR the above with kImagingDefaultValue to get/set the default value*/ enum { kImagingDefaultValue = (long)0x80000000 }; /* Transition Types used by QTVRSetTransitionProperty, QTVREnableTransition*/ enum { kQTVRTransitionSwing = 1 }; /* Transition Properties QTVRSetTransitionProperty*/ enum { kQTVRTransitionSpeed = 1, kQTVRTransitionDirection = 2 }; /* Constraint values used to construct value returned by GetConstraintStatus*/ enum { kQTVRUnconstrained = 0L, kQTVRCantPanLeft = 1L << 0, kQTVRCantPanRight = 1L << 1, kQTVRCantPanUp = 1L << 2, kQTVRCantPanDown = 1L << 3, kQTVRCantZoomIn = 1L << 4, kQTVRCantZoomOut = 1L << 5, kQTVRCantTranslateLeft = 1L << 6, kQTVRCantTranslateRight = 1L << 7, kQTVRCantTranslateUp = 1L << 8, kQTVRCantTranslateDown = 1L << 9 }; /* Object-only mouse mode values used to construct value returned by QTVRGetCurrentMouseMode*/ enum { kQTVRPanning = 1L << 0, /* standard objects, "object only" controllers*/ kQTVRTranslating = 1L << 1, /* all objects*/ kQTVRZooming = 1L << 2, /* all objects*/ kQTVRScrolling = 1L << 3, /* standard object arrow scrollers and joystick object*/ kQTVRSelecting = 1L << 4 /* object absolute controller*/ }; /* Properties for use with QTVRSetInteractionProperty/GetInteractionProperty*/ enum { kQTVRInteractionMouseClickHysteresis = 1, /* pixels within which the mouse is considered not to have moved (UInt16)*/ kQTVRInteractionMouseClickTimeout = 2, /* ticks after which a mouse click times out and turns into panning (UInt32)*/ kQTVRInteractionPanTiltSpeed = 3, /* control the relative pan/tilt speed from 1 (slowest) to 10 (fastest). (UInt32) Default is 5;*/ kQTVRInteractionZoomSpeed = 4, /* control the relative zooming speed from 1 (slowest) to 10 (fastest). (UInt32) Default is 5;*/ kQTVRInteractionTranslateOnMouseDown = 101, /* Holding MouseDown with this setting translates zoomed object movies (Boolean)*/ kQTVRInteractionMouseMotionScale = 102, /* The maximum angle of rotation caused by dragging across the display window. (* float)*/ kQTVRInteractionNudgeMode = 103 /* A QTVRNudgeMode: rotate, translate, or the same as the current mouse mode. Requires QTVR 2.1*/ }; /* OR the above with kQTVRInteractionDefaultValue to get/set the default value*/ enum { kQTVRInteractionDefaultValue = (long)0x80000000 }; /* Geometry constants used in QTVRSetBackBufferPrefs, QTVRGetBackBufferSettings, QTVRGetBackBufferMemInfo*/ enum { kQTVRUseMovieGeometry = 0, kQTVRVerticalCylinder = FOUR_CHAR_CODE('vcyl'), kQTVRHorizontalCylinder = FOUR_CHAR_CODE('hcyl'), kQTVRCube = FOUR_CHAR_CODE('cube') }; /* Resolution constants used in QTVRSetBackBufferPrefs, QTVRGetBackBufferSettings, QTVRGetBackBufferMemInfo*/ enum { kQTVRDefaultRes = 0, kQTVRFullRes = 1L << 0, kQTVRHalfRes = 1L << 1, kQTVRQuarterRes = 1L << 2 }; /* QTVR-specific pixelFormat constants used in QTVRSetBackBufferPrefs, QTVRGetBackBufferSettings, QTVRGetBackBufferMemInfo*/ enum { kQTVRUseMovieDepth = 0 }; /* Cache Size Pref constants used in QTVRSetBackBufferPrefs, QTVRGetBackBufferSettings*/ enum { kQTVRMinimumCache = -1, kQTVRSuggestedCache = 0, kQTVRFullCache = 1 }; /* Angular units used by QTVRSetAngularUnits*/ typedef UInt32 QTVRAngularUnits; enum { kQTVRDegrees = 0, kQTVRRadians = 1 }; /* Values for enableFlag parameter in QTVREnableHotSpot*/ enum { kQTVRHotSpotID = 0, kQTVRHotSpotType = 1, kQTVRAllHotSpots = 2 }; /* Values for viewParameter for QTVRSet/GetViewParameter*/ enum { kQTVRPanAngle = 0x0100, /* default units; &float, &float*/ kQTVRTiltAngle = 0x0101, /* default units; &float, &float*/ kQTVRFieldOfViewAngle = 0x0103, /* default units; &float, &float*/ kQTVRViewCenter = 0x0104, /* pixels (per object movies); &QTVRFloatPoint, &QTVRFloatPoint*/ kQTVRHotSpotsVisible = 0x0200 /* Boolean, &Boolean*/ }; /* Values for flagsIn for QTVRSet/GetViewParameter*/ enum { kQTVRValueIsRelative = 1L << 0, /* Is the value absolute or relative to the current value?*/ kQTVRValueIsRate = 1L << 1, /* Is the value absolute or a rate of change to be applied?*/ kQTVRValueIsUserPrefRelative = 1L << 2 /* Is the value a percentage of the user rate pref?*/ }; /* Values for kind parameter in QTVRGet/SetConstraints, QTVRGetViewingLimits*/ enum { kQTVRPan = 0, kQTVRTilt = 1, kQTVRFieldOfView = 2, kQTVRViewCenterH = 4, /* WrapAndConstrain only*/ kQTVRViewCenterV = 5 /* WrapAndConstrain only*/ }; /* Values for setting parameter in QTVRSetAnimationSetting, QTVRGetAnimationSetting*/ typedef UInt32 QTVRObjectAnimationSetting; enum { /* View Frame Animation Settings*/ kQTVRPalindromeViewFrames = 1, kQTVRStartFirstViewFrame = 2, kQTVRDontLoopViewFrames = 3, kQTVRPlayEveryViewFrame = 4, /* Requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10)*/ /* View Animation Settings*/ kQTVRSyncViewToFrameRate = 16, kQTVRPalindromeViews = 17, kQTVRPlayStreamingViews = 18 /* Requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10)*/ }; typedef UInt32 QTVRControlSetting; enum { kQTVRWrapPan = 1, kQTVRWrapTilt = 2, kQTVRCanZoom = 3, kQTVRReverseHControl = 4, kQTVRReverseVControl = 5, kQTVRSwapHVControl = 6, kQTVRTranslation = 7 }; typedef UInt32 QTVRViewStateType; enum { kQTVRDefault = 0, kQTVRCurrent = 2, kQTVRMouseDown = 3 }; typedef UInt32 QTVRNudgeControl; enum { kQTVRRight = 0, kQTVRUpRight = 45, kQTVRUp = 90, kQTVRUpLeft = 135, kQTVRLeft = 180, kQTVRDownLeft = 225, kQTVRDown = 270, kQTVRDownRight = 315 }; typedef UInt32 QTVRNudgeMode; enum { kQTVRNudgeRotate = 0, kQTVRNudgeTranslate = 1, kQTVRNudgeSameAsMouse = 2 }; /* Flags to control elements of the QTVR control bar (set via mcActionSetFlags) */ enum { mcFlagQTVRSuppressBackBtn = 1L << 16, mcFlagQTVRSuppressZoomBtns = 1L << 17, mcFlagQTVRSuppressHotSpotBtn = 1L << 18, mcFlagQTVRSuppressTranslateBtn = 1L << 19, mcFlagQTVRSuppressHelpText = 1L << 20, mcFlagQTVRSuppressHotSpotNames = 1L << 21, mcFlagQTVRExplicitFlagSet = 1L << 31 /* bits 0->30 should be interpreted as "explicit on" for the corresponding suppression bits*/ }; /* Cursor types used in type field of QTVRCursorRecord*/ enum { kQTVRUseDefaultCursor = 0, kQTVRStdCursorType = 1, kQTVRColorCursorType = 2 }; /* Values for flags parameter in QTVRMouseOverHotSpot callback*/ enum { kQTVRHotSpotEnter = 0, kQTVRHotSpotWithin = 1, kQTVRHotSpotLeave = 2 }; /* Values for flags parameter in QTVRSetPrescreenImagingCompleteProc*/ enum { kQTVRPreScreenEveryIdle = 1L << 0 /* Requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10)*/ }; /* Values for flags field of areasOfInterest in QTVRSetBackBufferImagingProc*/ enum { kQTVRBackBufferEveryUpdate = 1L << 0, kQTVRBackBufferEveryIdle = 1L << 1, kQTVRBackBufferAlwaysRefresh = 1L << 2, kQTVRBackBufferHorizontal = 1L << 3 /* Requires that backbuffer proc be long-rowBytes aware (gestaltQDHasLongRowBytes)*/ }; /* Values for flagsIn parameter in QTVRBackBufferImaging callback*/ enum { kQTVRBackBufferRectVisible = 1L << 0, kQTVRBackBufferWasRefreshed = 1L << 1 }; /* Values for flagsOut parameter in QTVRBackBufferImaging callback*/ enum { kQTVRBackBufferFlagDidDraw = 1L << 0, kQTVRBackBufferFlagLastFlag = 1L << 31 }; /* QTVRCursorRecord used in QTVRReplaceCursor*/ struct QTVRCursorRecord { UInt16 theType; /* field was previously named "type"*/ SInt16 rsrcID; Handle handle; }; typedef struct QTVRCursorRecord QTVRCursorRecord; struct QTVRFloatPoint { float x; float y; }; typedef struct QTVRFloatPoint QTVRFloatPoint; /* Struct used for areasOfInterest parameter in QTVRSetBackBufferImagingProc*/ struct QTVRAreaOfInterest { float panAngle; float tiltAngle; float width; float height; UInt32 flags; }; typedef struct QTVRAreaOfInterest QTVRAreaOfInterest; /* ================================================================================================= Callback routines ------------------------------------------------------------------------------------------------- */ typedef CALLBACK_API( OSErr , QTVRLeavingNodeProcPtr )(QTVRInstance qtvr, UInt32 fromNodeID, UInt32 toNodeID, Boolean *cancel, SInt32 refCon); typedef CALLBACK_API( OSErr , QTVREnteringNodeProcPtr )(QTVRInstance qtvr, UInt32 nodeID, SInt32 refCon); typedef CALLBACK_API( OSErr , QTVRMouseOverHotSpotProcPtr )(QTVRInstance qtvr, UInt32 hotSpotID, UInt32 flags, SInt32 refCon); typedef CALLBACK_API( OSErr , QTVRImagingCompleteProcPtr )(QTVRInstance qtvr, SInt32 refCon); typedef CALLBACK_API( OSErr , QTVRBackBufferImagingProcPtr )(QTVRInstance qtvr, Rect *drawRect, UInt16 areaIndex, UInt32 flagsIn, UInt32 *flagsOut, SInt32 refCon); typedef STACK_UPP_TYPE(QTVRLeavingNodeProcPtr) QTVRLeavingNodeUPP; typedef STACK_UPP_TYPE(QTVREnteringNodeProcPtr) QTVREnteringNodeUPP; typedef STACK_UPP_TYPE(QTVRMouseOverHotSpotProcPtr) QTVRMouseOverHotSpotUPP; typedef STACK_UPP_TYPE(QTVRImagingCompleteProcPtr) QTVRImagingCompleteUPP; typedef STACK_UPP_TYPE(QTVRBackBufferImagingProcPtr) QTVRBackBufferImagingUPP; /* * NewQTVRLeavingNodeUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( QTVRLeavingNodeUPP ) NewQTVRLeavingNodeUPP(QTVRLeavingNodeProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppQTVRLeavingNodeProcInfo = 0x0000FFE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(QTVRLeavingNodeUPP) NewQTVRLeavingNodeUPP(QTVRLeavingNodeProcPtr userRoutine) { return (QTVRLeavingNodeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRLeavingNodeProcInfo, GetCurrentArchitecture()); } #else #define NewQTVRLeavingNodeUPP(userRoutine) (QTVRLeavingNodeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRLeavingNodeProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewQTVREnteringNodeUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( QTVREnteringNodeUPP ) NewQTVREnteringNodeUPP(QTVREnteringNodeProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppQTVREnteringNodeProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(QTVREnteringNodeUPP) NewQTVREnteringNodeUPP(QTVREnteringNodeProcPtr userRoutine) { return (QTVREnteringNodeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVREnteringNodeProcInfo, GetCurrentArchitecture()); } #else #define NewQTVREnteringNodeUPP(userRoutine) (QTVREnteringNodeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVREnteringNodeProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewQTVRMouseOverHotSpotUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( QTVRMouseOverHotSpotUPP ) NewQTVRMouseOverHotSpotUPP(QTVRMouseOverHotSpotProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppQTVRMouseOverHotSpotProcInfo = 0x00003FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(QTVRMouseOverHotSpotUPP) NewQTVRMouseOverHotSpotUPP(QTVRMouseOverHotSpotProcPtr userRoutine) { return (QTVRMouseOverHotSpotUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRMouseOverHotSpotProcInfo, GetCurrentArchitecture()); } #else #define NewQTVRMouseOverHotSpotUPP(userRoutine) (QTVRMouseOverHotSpotUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRMouseOverHotSpotProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewQTVRImagingCompleteUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( QTVRImagingCompleteUPP ) NewQTVRImagingCompleteUPP(QTVRImagingCompleteProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppQTVRImagingCompleteProcInfo = 0x000003E0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(QTVRImagingCompleteUPP) NewQTVRImagingCompleteUPP(QTVRImagingCompleteProcPtr userRoutine) { return (QTVRImagingCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRImagingCompleteProcInfo, GetCurrentArchitecture()); } #else #define NewQTVRImagingCompleteUPP(userRoutine) (QTVRImagingCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRImagingCompleteProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewQTVRBackBufferImagingUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( QTVRBackBufferImagingUPP ) NewQTVRBackBufferImagingUPP(QTVRBackBufferImagingProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppQTVRBackBufferImagingProcInfo = 0x0003FBE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(QTVRBackBufferImagingUPP) NewQTVRBackBufferImagingUPP(QTVRBackBufferImagingProcPtr userRoutine) { return (QTVRBackBufferImagingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRBackBufferImagingProcInfo, GetCurrentArchitecture()); } #else #define NewQTVRBackBufferImagingUPP(userRoutine) (QTVRBackBufferImagingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRBackBufferImagingProcInfo, GetCurrentArchitecture()) #endif #endif /* * DisposeQTVRLeavingNodeUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeQTVRLeavingNodeUPP(QTVRLeavingNodeUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeQTVRLeavingNodeUPP(QTVRLeavingNodeUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeQTVRLeavingNodeUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeQTVREnteringNodeUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeQTVREnteringNodeUPP(QTVREnteringNodeUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeQTVREnteringNodeUPP(QTVREnteringNodeUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeQTVREnteringNodeUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeQTVRMouseOverHotSpotUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeQTVRMouseOverHotSpotUPP(QTVRMouseOverHotSpotUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeQTVRMouseOverHotSpotUPP(QTVRMouseOverHotSpotUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeQTVRMouseOverHotSpotUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeQTVRImagingCompleteUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeQTVRImagingCompleteUPP(QTVRImagingCompleteUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeQTVRImagingCompleteUPP(QTVRImagingCompleteUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeQTVRImagingCompleteUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeQTVRBackBufferImagingUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeQTVRBackBufferImagingUPP(QTVRBackBufferImagingUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeQTVRBackBufferImagingUPP(QTVRBackBufferImagingUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeQTVRBackBufferImagingUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * InvokeQTVRLeavingNodeUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSErr ) InvokeQTVRLeavingNodeUPP( QTVRInstance qtvr, UInt32 fromNodeID, UInt32 toNodeID, Boolean * cancel, SInt32 refCon, QTVRLeavingNodeUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(OSErr) InvokeQTVRLeavingNodeUPP(QTVRInstance qtvr, UInt32 fromNodeID, UInt32 toNodeID, Boolean * cancel, SInt32 refCon, QTVRLeavingNodeUPP userUPP) { return (OSErr)CALL_FIVE_PARAMETER_UPP(userUPP, uppQTVRLeavingNodeProcInfo, qtvr, fromNodeID, toNodeID, cancel, refCon); } #else #define InvokeQTVRLeavingNodeUPP(qtvr, fromNodeID, toNodeID, cancel, refCon, userUPP) (OSErr)CALL_FIVE_PARAMETER_UPP((userUPP), uppQTVRLeavingNodeProcInfo, (qtvr), (fromNodeID), (toNodeID), (cancel), (refCon)) #endif #endif /* * InvokeQTVREnteringNodeUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSErr ) InvokeQTVREnteringNodeUPP( QTVRInstance qtvr, UInt32 nodeID, SInt32 refCon, QTVREnteringNodeUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(OSErr) InvokeQTVREnteringNodeUPP(QTVRInstance qtvr, UInt32 nodeID, SInt32 refCon, QTVREnteringNodeUPP userUPP) { return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppQTVREnteringNodeProcInfo, qtvr, nodeID, refCon); } #else #define InvokeQTVREnteringNodeUPP(qtvr, nodeID, refCon, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppQTVREnteringNodeProcInfo, (qtvr), (nodeID), (refCon)) #endif #endif /* * InvokeQTVRMouseOverHotSpotUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSErr ) InvokeQTVRMouseOverHotSpotUPP( QTVRInstance qtvr, UInt32 hotSpotID, UInt32 flags, SInt32 refCon, QTVRMouseOverHotSpotUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(OSErr) InvokeQTVRMouseOverHotSpotUPP(QTVRInstance qtvr, UInt32 hotSpotID, UInt32 flags, SInt32 refCon, QTVRMouseOverHotSpotUPP userUPP) { return (OSErr)CALL_FOUR_PARAMETER_UPP(userUPP, uppQTVRMouseOverHotSpotProcInfo, qtvr, hotSpotID, flags, refCon); } #else #define InvokeQTVRMouseOverHotSpotUPP(qtvr, hotSpotID, flags, refCon, userUPP) (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppQTVRMouseOverHotSpotProcInfo, (qtvr), (hotSpotID), (flags), (refCon)) #endif #endif /* * InvokeQTVRImagingCompleteUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSErr ) InvokeQTVRImagingCompleteUPP( QTVRInstance qtvr, SInt32 refCon, QTVRImagingCompleteUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(OSErr) InvokeQTVRImagingCompleteUPP(QTVRInstance qtvr, SInt32 refCon, QTVRImagingCompleteUPP userUPP) { return (OSErr)CALL_TWO_PARAMETER_UPP(userUPP, uppQTVRImagingCompleteProcInfo, qtvr, refCon); } #else #define InvokeQTVRImagingCompleteUPP(qtvr, refCon, userUPP) (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppQTVRImagingCompleteProcInfo, (qtvr), (refCon)) #endif #endif /* * InvokeQTVRBackBufferImagingUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( OSErr ) InvokeQTVRBackBufferImagingUPP( QTVRInstance qtvr, Rect * drawRect, UInt16 areaIndex, UInt32 flagsIn, UInt32 * flagsOut, SInt32 refCon, QTVRBackBufferImagingUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(OSErr) InvokeQTVRBackBufferImagingUPP(QTVRInstance qtvr, Rect * drawRect, UInt16 areaIndex, UInt32 flagsIn, UInt32 * flagsOut, SInt32 refCon, QTVRBackBufferImagingUPP userUPP) { return (OSErr)CALL_SIX_PARAMETER_UPP(userUPP, uppQTVRBackBufferImagingProcInfo, qtvr, drawRect, areaIndex, flagsIn, flagsOut, refCon); } #else #define InvokeQTVRBackBufferImagingUPP(qtvr, drawRect, areaIndex, flagsIn, flagsOut, refCon, userUPP) (OSErr)CALL_SIX_PARAMETER_UPP((userUPP), uppQTVRBackBufferImagingProcInfo, (qtvr), (drawRect), (areaIndex), (flagsIn), (flagsOut), (refCon)) #endif #endif #if CALL_NOT_IN_CARBON || OLDROUTINENAMES /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ #define NewQTVRLeavingNodeProc(userRoutine) NewQTVRLeavingNodeUPP(userRoutine) #define NewQTVREnteringNodeProc(userRoutine) NewQTVREnteringNodeUPP(userRoutine) #define NewQTVRMouseOverHotSpotProc(userRoutine) NewQTVRMouseOverHotSpotUPP(userRoutine) #define NewQTVRImagingCompleteProc(userRoutine) NewQTVRImagingCompleteUPP(userRoutine) #define NewQTVRBackBufferImagingProc(userRoutine) NewQTVRBackBufferImagingUPP(userRoutine) #define CallQTVRLeavingNodeProc(userRoutine, qtvr, fromNodeID, toNodeID, cancel, refCon) InvokeQTVRLeavingNodeUPP(qtvr, fromNodeID, toNodeID, cancel, refCon, userRoutine) #define CallQTVREnteringNodeProc(userRoutine, qtvr, nodeID, refCon) InvokeQTVREnteringNodeUPP(qtvr, nodeID, refCon, userRoutine) #define CallQTVRMouseOverHotSpotProc(userRoutine, qtvr, hotSpotID, flags, refCon) InvokeQTVRMouseOverHotSpotUPP(qtvr, hotSpotID, flags, refCon, userRoutine) #define CallQTVRImagingCompleteProc(userRoutine, qtvr, refCon) InvokeQTVRImagingCompleteUPP(qtvr, refCon, userRoutine) #define CallQTVRBackBufferImagingProc(userRoutine, qtvr, drawRect, areaIndex, flagsIn, flagsOut, refCon) InvokeQTVRBackBufferImagingUPP(qtvr, drawRect, areaIndex, flagsIn, flagsOut, refCon, userRoutine) #endif /* CALL_NOT_IN_CARBON */ /* ================================================================================================= QTVR Intercept Struct, Callback, Routine Descriptors ------------------------------------------------------------------------------------------------- */ typedef UInt32 QTVRProcSelector; enum { kQTVRSetPanAngleSelector = 0x2000, kQTVRSetTiltAngleSelector = 0x2001, kQTVRSetFieldOfViewSelector = 0x2002, kQTVRSetViewCenterSelector = 0x2003, kQTVRMouseEnterSelector = 0x2004, kQTVRMouseWithinSelector = 0x2005, kQTVRMouseLeaveSelector = 0x2006, kQTVRMouseDownSelector = 0x2007, kQTVRMouseStillDownSelector = 0x2008, kQTVRMouseUpSelector = 0x2009, kQTVRTriggerHotSpotSelector = 0x200A, kQTVRGetHotSpotTypeSelector = 0x200B, /* Requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10)*/ kQTVRSetViewParameterSelector = 0x200C, /* Requires QTVR 5.0 (kQTVRAPIMajorVersion05 + kQTVRAPIMinorVersion00)*/ kQTVRGetViewParameterSelector = 0x200D /* Requires QTVR 5.0 (kQTVRAPIMajorVersion05 + kQTVRAPIMinorVersion00)*/ }; struct QTVRInterceptRecord { SInt32 reserved1; SInt32 selector; SInt32 reserved2; SInt32 reserved3; SInt32 paramCount; void * parameter[6]; }; typedef struct QTVRInterceptRecord QTVRInterceptRecord; typedef QTVRInterceptRecord * QTVRInterceptPtr; /* Prototype for Intercept Proc callback*/ typedef CALLBACK_API( void , QTVRInterceptProcPtr )(QTVRInstance qtvr, QTVRInterceptPtr qtvrMsg, SInt32 refCon, Boolean *cancel); typedef STACK_UPP_TYPE(QTVRInterceptProcPtr) QTVRInterceptUPP; /* * NewQTVRInterceptUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( QTVRInterceptUPP ) NewQTVRInterceptUPP(QTVRInterceptProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppQTVRInterceptProcInfo = 0x00003FC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(QTVRInterceptUPP) NewQTVRInterceptUPP(QTVRInterceptProcPtr userRoutine) { return (QTVRInterceptUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRInterceptProcInfo, GetCurrentArchitecture()); } #else #define NewQTVRInterceptUPP(userRoutine) (QTVRInterceptUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTVRInterceptProcInfo, GetCurrentArchitecture()) #endif #endif /* * DisposeQTVRInterceptUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposeQTVRInterceptUPP(QTVRInterceptUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeQTVRInterceptUPP(QTVRInterceptUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeQTVRInterceptUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * InvokeQTVRInterceptUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokeQTVRInterceptUPP( QTVRInstance qtvr, QTVRInterceptPtr qtvrMsg, SInt32 refCon, Boolean * cancel, QTVRInterceptUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeQTVRInterceptUPP(QTVRInstance qtvr, QTVRInterceptPtr qtvrMsg, SInt32 refCon, Boolean * cancel, QTVRInterceptUPP userUPP) { CALL_FOUR_PARAMETER_UPP(userUPP, uppQTVRInterceptProcInfo, qtvr, qtvrMsg, refCon, cancel); } #else #define InvokeQTVRInterceptUPP(qtvr, qtvrMsg, refCon, cancel, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppQTVRInterceptProcInfo, (qtvr), (qtvrMsg), (refCon), (cancel)) #endif #endif #if CALL_NOT_IN_CARBON || OLDROUTINENAMES /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ #define NewQTVRInterceptProc(userRoutine) NewQTVRInterceptUPP(userRoutine) #define CallQTVRInterceptProc(userRoutine, qtvr, qtvrMsg, refCon, cancel) InvokeQTVRInterceptUPP(qtvr, qtvrMsg, refCon, cancel, userRoutine) #endif /* CALL_NOT_IN_CARBON */ /* ================================================================================================= Initialization QTVR calls ------------------------------------------------------------------------------------------------- Requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10) and only work on Non-Macintosh platforms */ #if !TARGET_OS_MAC #if CALL_NOT_IN_CARBON /* * InitializeQTVR() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) InitializeQTVR(void); /* * TerminateQTVR() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: not available * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) TerminateQTVR(void); #endif /* CALL_NOT_IN_CARBON */ #endif /* !TARGET_OS_MAC */ /* ================================================================================================= General QTVR calls ------------------------------------------------------------------------------------------------- */ /* * QTVRGetQTVRTrack() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( Track ) QTVRGetQTVRTrack( Movie theMovie, SInt32 index); /* * QTVRGetQTVRInstance() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetQTVRInstance( QTVRInstance * qtvr, Track qtvrTrack, MovieController mc); /* ================================================================================================= Viewing Angles and Zooming ------------------------------------------------------------------------------------------------- */ /* QTVRSetViewParameter requires QTVR 5.0 (kQTVRAPIMajorVersion05 + kQTVRAPIMinorVersion00)*/ /* * QTVRSetViewParameter() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 5.0 and later */ EXTERN_API_C( OSErr ) QTVRSetViewParameter( QTVRInstance qtvr, UInt32 viewParameter, void * value, UInt32 flagsIn); /* QTVRGetViewParameter requires QTVR 5.0 (kQTVRAPIMajorVersion05 + kQTVRAPIMinorVersion00)*/ /* * QTVRGetViewParameter() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 5.0 and later * CarbonLib: in CarbonLib 1.3 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 5.0 and later */ EXTERN_API_C( OSErr ) QTVRGetViewParameter( QTVRInstance qtvr, UInt32 viewParameter, void * value, UInt32 flagsIn, UInt32 * flagsOut); /* * QTVRSetPanAngle() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetPanAngle( QTVRInstance qtvr, float panAngle); /* * QTVRGetPanAngle() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( float ) QTVRGetPanAngle(QTVRInstance qtvr); /* * QTVRSetTiltAngle() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetTiltAngle( QTVRInstance qtvr, float tiltAngle); /* * QTVRGetTiltAngle() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( float ) QTVRGetTiltAngle(QTVRInstance qtvr); /* * QTVRSetFieldOfView() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetFieldOfView( QTVRInstance qtvr, float fieldOfView); /* * QTVRGetFieldOfView() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( float ) QTVRGetFieldOfView(QTVRInstance qtvr); /* * QTVRShowDefaultView() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRShowDefaultView(QTVRInstance qtvr); /* Object Specific*/ /* * QTVRSetViewCenter() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetViewCenter( QTVRInstance qtvr, const QTVRFloatPoint * viewCenter); /* * QTVRGetViewCenter() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetViewCenter( QTVRInstance qtvr, QTVRFloatPoint * viewCenter); /* * QTVRNudge() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRNudge( QTVRInstance qtvr, QTVRNudgeControl direction); /* QTVRInteractionNudge requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10)*/ /* * QTVRInteractionNudge() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.1 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRInteractionNudge( QTVRInstance qtvr, QTVRNudgeControl direction); /* ================================================================================================= Scene and Node Location Information ------------------------------------------------------------------------------------------------- */ /* * QTVRGetVRWorld() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetVRWorld( QTVRInstance qtvr, QTAtomContainer * VRWorld); /* * QTVRGetNodeInfo() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetNodeInfo( QTVRInstance qtvr, UInt32 nodeID, QTAtomContainer * nodeInfo); /* * QTVRGoToNodeID() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGoToNodeID( QTVRInstance qtvr, UInt32 nodeID); /* * QTVRGetCurrentNodeID() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( UInt32 ) QTVRGetCurrentNodeID(QTVRInstance qtvr); /* * QTVRGetNodeType() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSType ) QTVRGetNodeType( QTVRInstance qtvr, UInt32 nodeID); /* ================================================================================================= Hot Spot related calls ------------------------------------------------------------------------------------------------- */ /* * QTVRPtToHotSpotID() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRPtToHotSpotID( QTVRInstance qtvr, Point pt, UInt32 * hotSpotID); /* QTVRGetHotSpotType requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10)*/ /* * QTVRGetHotSpotType() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.1 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetHotSpotType( QTVRInstance qtvr, UInt32 hotSpotID, OSType * hotSpotType); /* * QTVRTriggerHotSpot() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRTriggerHotSpot( QTVRInstance qtvr, UInt32 hotSpotID, QTAtomContainer nodeInfo, QTAtom selectedAtom); /* * QTVRSetMouseOverHotSpotProc() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetMouseOverHotSpotProc( QTVRInstance qtvr, QTVRMouseOverHotSpotUPP mouseOverHotSpotProc, SInt32 refCon, UInt32 flags); /* * QTVREnableHotSpot() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVREnableHotSpot( QTVRInstance qtvr, UInt32 enableFlag, UInt32 hotSpotValue, Boolean enable); /* * QTVRGetVisibleHotSpots() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( UInt32 ) QTVRGetVisibleHotSpots( QTVRInstance qtvr, Handle hotSpots); /* * QTVRGetHotSpotRegion() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetHotSpotRegion( QTVRInstance qtvr, UInt32 hotSpotID, RgnHandle hotSpotRegion); /* ================================================================================================= Event & Cursor Handling Calls ------------------------------------------------------------------------------------------------- */ /* * QTVRSetMouseOverTracking() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetMouseOverTracking( QTVRInstance qtvr, Boolean enable); /* * QTVRGetMouseOverTracking() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( Boolean ) QTVRGetMouseOverTracking(QTVRInstance qtvr); /* * QTVRSetMouseDownTracking() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetMouseDownTracking( QTVRInstance qtvr, Boolean enable); /* * QTVRGetMouseDownTracking() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( Boolean ) QTVRGetMouseDownTracking(QTVRInstance qtvr); /* * QTVRMouseEnter() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRMouseEnter( QTVRInstance qtvr, Point pt, UInt32 * hotSpotID, WindowRef w); /* * QTVRMouseWithin() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRMouseWithin( QTVRInstance qtvr, Point pt, UInt32 * hotSpotID, WindowRef w); /* * QTVRMouseLeave() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRMouseLeave( QTVRInstance qtvr, Point pt, WindowRef w); /* * QTVRMouseDown() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRMouseDown( QTVRInstance qtvr, Point pt, UInt32 when, UInt16 modifiers, UInt32 * hotSpotID, WindowRef w); /* * QTVRMouseStillDown() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRMouseStillDown( QTVRInstance qtvr, Point pt, UInt32 * hotSpotID, WindowRef w); /* * QTVRMouseUp() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRMouseUp( QTVRInstance qtvr, Point pt, UInt32 * hotSpotID, WindowRef w); /* These require QTVR 2.01 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion01)*/ /* * QTVRMouseStillDownExtended() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0.1 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRMouseStillDownExtended( QTVRInstance qtvr, Point pt, UInt32 * hotSpotID, WindowRef w, UInt32 when, UInt16 modifiers); /* * QTVRMouseUpExtended() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0.1 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRMouseUpExtended( QTVRInstance qtvr, Point pt, UInt32 * hotSpotID, WindowRef w, UInt32 when, UInt16 modifiers); /* ================================================================================================= Intercept Routines ------------------------------------------------------------------------------------------------- */ /* * QTVRInstallInterceptProc() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRInstallInterceptProc( QTVRInstance qtvr, QTVRProcSelector selector, QTVRInterceptUPP interceptProc, SInt32 refCon, UInt32 flags); /* * QTVRCallInterceptedProc() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRCallInterceptedProc( QTVRInstance qtvr, QTVRInterceptRecord * qtvrMsg); /* ================================================================================================= Object Movie Specific Calls ------------------------------------------------------------------------------------------------- QTVRGetCurrentMouseMode requires QTRVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10) */ /* * QTVRGetCurrentMouseMode() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.1 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( UInt32 ) QTVRGetCurrentMouseMode(QTVRInstance qtvr); /* * QTVRSetFrameRate() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetFrameRate( QTVRInstance qtvr, float rate); /* * QTVRGetFrameRate() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( float ) QTVRGetFrameRate(QTVRInstance qtvr); /* * QTVRSetViewRate() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetViewRate( QTVRInstance qtvr, float rate); /* * QTVRGetViewRate() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( float ) QTVRGetViewRate(QTVRInstance qtvr); /* * QTVRSetViewCurrentTime() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetViewCurrentTime( QTVRInstance qtvr, TimeValue time); /* * QTVRGetViewCurrentTime() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( TimeValue ) QTVRGetViewCurrentTime(QTVRInstance qtvr); /* * QTVRGetCurrentViewDuration() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( TimeValue ) QTVRGetCurrentViewDuration(QTVRInstance qtvr); /* ================================================================================================= View State Calls - QTVR Object Only ------------------------------------------------------------------------------------------------- */ /* * QTVRSetViewState() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetViewState( QTVRInstance qtvr, QTVRViewStateType viewStateType, UInt16 state); /* * QTVRGetViewState() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetViewState( QTVRInstance qtvr, QTVRViewStateType viewStateType, UInt16 * state); /* * QTVRGetViewStateCount() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( UInt16 ) QTVRGetViewStateCount(QTVRInstance qtvr); /* * QTVRSetAnimationSetting() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetAnimationSetting( QTVRInstance qtvr, QTVRObjectAnimationSetting setting, Boolean enable); /* * QTVRGetAnimationSetting() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetAnimationSetting( QTVRInstance qtvr, QTVRObjectAnimationSetting setting, Boolean * enable); /* * QTVRSetControlSetting() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetControlSetting( QTVRInstance qtvr, QTVRControlSetting setting, Boolean enable); /* * QTVRGetControlSetting() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetControlSetting( QTVRInstance qtvr, QTVRControlSetting setting, Boolean * enable); /* * QTVREnableFrameAnimation() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVREnableFrameAnimation( QTVRInstance qtvr, Boolean enable); /* * QTVRGetFrameAnimation() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( Boolean ) QTVRGetFrameAnimation(QTVRInstance qtvr); /* * QTVREnableViewAnimation() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVREnableViewAnimation( QTVRInstance qtvr, Boolean enable); /* * QTVRGetViewAnimation() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( Boolean ) QTVRGetViewAnimation(QTVRInstance qtvr); /* ================================================================================================= Imaging Characteristics ------------------------------------------------------------------------------------------------- */ /* * QTVRSetVisible() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetVisible( QTVRInstance qtvr, Boolean visible); /* * QTVRGetVisible() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( Boolean ) QTVRGetVisible(QTVRInstance qtvr); /* * QTVRSetImagingProperty() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetImagingProperty( QTVRInstance qtvr, QTVRImagingMode imagingMode, UInt32 imagingProperty, SInt32 propertyValue); /* * QTVRGetImagingProperty() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetImagingProperty( QTVRInstance qtvr, QTVRImagingMode imagingMode, UInt32 imagingProperty, SInt32 * propertyValue); /* * QTVRUpdate() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRUpdate( QTVRInstance qtvr, QTVRImagingMode imagingMode); /* * QTVRBeginUpdateStream() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRBeginUpdateStream( QTVRInstance qtvr, QTVRImagingMode imagingMode); /* * QTVREndUpdateStream() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVREndUpdateStream(QTVRInstance qtvr); /* * QTVRSetTransitionProperty() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetTransitionProperty( QTVRInstance qtvr, UInt32 transitionType, UInt32 transitionProperty, SInt32 transitionValue); /* * QTVREnableTransition() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVREnableTransition( QTVRInstance qtvr, UInt32 transitionType, Boolean enable); /* ================================================================================================= Basic Conversion and Math Routines ------------------------------------------------------------------------------------------------- */ /* * QTVRSetAngularUnits() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetAngularUnits( QTVRInstance qtvr, QTVRAngularUnits units); /* * QTVRGetAngularUnits() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( QTVRAngularUnits ) QTVRGetAngularUnits(QTVRInstance qtvr); /* Pano specific routines*/ /* * QTVRPtToAngles() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRPtToAngles( QTVRInstance qtvr, Point pt, float * panAngle, float * tiltAngle); /* * QTVRCoordToAngles() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRCoordToAngles( QTVRInstance qtvr, QTVRFloatPoint * coord, float * panAngle, float * tiltAngle); /* * QTVRAnglesToCoord() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRAnglesToCoord( QTVRInstance qtvr, float panAngle, float tiltAngle, QTVRFloatPoint * coord); /* Object specific routines*/ /* * QTVRPanToColumn() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( short ) QTVRPanToColumn( QTVRInstance qtvr, float panAngle); /* zero based */ /* * QTVRColumnToPan() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( float ) QTVRColumnToPan( QTVRInstance qtvr, short column); /* zero based */ /* * QTVRTiltToRow() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( short ) QTVRTiltToRow( QTVRInstance qtvr, float tiltAngle); /* zero based */ /* * QTVRRowToTilt() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( float ) QTVRRowToTilt( QTVRInstance qtvr, short row); /* zero based */ /* * QTVRWrapAndConstrain() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRWrapAndConstrain( QTVRInstance qtvr, short kind, float value, float * result); /* ================================================================================================= Interaction Routines ------------------------------------------------------------------------------------------------- */ /* * QTVRSetEnteringNodeProc() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetEnteringNodeProc( QTVRInstance qtvr, QTVREnteringNodeUPP enteringNodeProc, SInt32 refCon, UInt32 flags); /* * QTVRSetLeavingNodeProc() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetLeavingNodeProc( QTVRInstance qtvr, QTVRLeavingNodeUPP leavingNodeProc, SInt32 refCon, UInt32 flags); /* * QTVRSetInteractionProperty() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetInteractionProperty( QTVRInstance qtvr, UInt32 property, void * value); /* * QTVRGetInteractionProperty() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetInteractionProperty( QTVRInstance qtvr, UInt32 property, void * value); /* * QTVRReplaceCursor() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRReplaceCursor( QTVRInstance qtvr, QTVRCursorRecord * cursRecord); /* ================================================================================================= Viewing Limits and Constraints ------------------------------------------------------------------------------------------------- */ /* * QTVRGetViewingLimits() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetViewingLimits( QTVRInstance qtvr, UInt16 kind, float * minValue, float * maxValue); /* * QTVRGetConstraintStatus() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( UInt32 ) QTVRGetConstraintStatus(QTVRInstance qtvr); /* * QTVRGetConstraints() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetConstraints( QTVRInstance qtvr, UInt16 kind, float * minValue, float * maxValue); /* * QTVRSetConstraints() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetConstraints( QTVRInstance qtvr, UInt16 kind, float minValue, float maxValue); /* ================================================================================================= Back Buffer Memory Management ------------------------------------------------------------------------------------------------- */ /* * QTVRGetAvailableResolutions() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetAvailableResolutions( QTVRInstance qtvr, UInt16 * resolutionsMask); /* These require QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10)*/ /* * QTVRGetBackBufferMemInfo() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.1 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetBackBufferMemInfo( QTVRInstance qtvr, UInt32 geometry, UInt16 resolution, UInt32 cachePixelFormat, SInt32 * minCacheBytes, SInt32 * suggestedCacheBytes, SInt32 * fullCacheBytes); /* * QTVRGetBackBufferSettings() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.1 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRGetBackBufferSettings( QTVRInstance qtvr, UInt32 * geometry, UInt16 * resolution, UInt32 * cachePixelFormat, SInt16 * cacheSize); /* * QTVRSetBackBufferPrefs() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.1 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetBackBufferPrefs( QTVRInstance qtvr, UInt32 geometry, UInt16 resolution, UInt32 cachePixelFormat, SInt16 cacheSize); /* ================================================================================================= Buffer Access ------------------------------------------------------------------------------------------------- */ /* * QTVRSetPrescreenImagingCompleteProc() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetPrescreenImagingCompleteProc( QTVRInstance qtvr, QTVRImagingCompleteUPP imagingCompleteProc, SInt32 refCon, UInt32 flags); /* * QTVRSetBackBufferImagingProc() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRSetBackBufferImagingProc( QTVRInstance qtvr, QTVRBackBufferImagingUPP backBufferImagingProc, UInt16 numAreas, QTVRAreaOfInterest areasOfInterest[], SInt32 refCon); /* * QTVRRefreshBackBuffer() * * Availability: * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later * Windows: in QTVR.lib 2.1 and later */ EXTERN_API_C( OSErr ) QTVRRefreshBackBuffer( QTVRInstance qtvr, UInt32 flags); /* ================================================================================================= Old Names ------------------------------------------------------------------------------------------------- */ #if OLDROUTINENAMES typedef QTVRCursorRecord CursorRecord; typedef QTVRAreaOfInterest AreaOfInterest; typedef QTVRFloatPoint FloatPoint; typedef QTVRLeavingNodeProcPtr LeavingNodeProcPtr; typedef QTVRLeavingNodeUPP LeavingNodeUPP; typedef QTVREnteringNodeProcPtr EnteringNodeProcPtr; typedef QTVREnteringNodeUPP EnteringNodeUPP; typedef QTVRMouseOverHotSpotProcPtr MouseOverHotSpotProcPtr; typedef QTVRMouseOverHotSpotUPP MouseOverHotSpotUPP; typedef QTVRImagingCompleteProcPtr ImagingCompleteProcPtr; typedef QTVRImagingCompleteUPP ImagingCompleteUPP; typedef QTVRBackBufferImagingProcPtr BackBufferImagingProcPtr; typedef QTVRBackBufferImagingUPP BackBufferImagingUPP; #endif /* OLDROUTINENAMES */ #endif // !__LP64__ #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 /* __QUICKTIMEVR__ */