QuickTimeVR.pas 66 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866
  1. {
  2. File: QuickTimeVR.p
  3. Contains: QuickTime VR interfaces
  4. Version: Technology: QuickTime VR 5.0
  5. Release: Universal Interfaces 3.4.2
  6. Copyright: © 1997-2002 by Apple Computer, Inc., all rights reserved.
  7. Bugs?: For bug reports, consult the following page on
  8. the World Wide Web:
  9. http://www.freepascal.org/bugs.html
  10. }
  11. {
  12. Modified for use with Free Pascal
  13. Version 200
  14. Please report any bugs to <[email protected]>
  15. }
  16. {$mode macpas}
  17. {$packenum 1}
  18. {$macro on}
  19. {$inline on}
  20. {$CALLING MWPASCAL}
  21. unit QuickTimeVR;
  22. interface
  23. {$setc UNIVERSAL_INTERFACES_VERSION := $0342}
  24. {$setc GAP_INTERFACES_VERSION := $0200}
  25. {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
  26. {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
  27. {$endc}
  28. {$ifc defined CPUPOWERPC and defined CPUI386}
  29. {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
  30. {$endc}
  31. {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
  32. {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
  33. {$endc}
  34. {$ifc not defined __ppc__ and defined CPUPOWERPC}
  35. {$setc __ppc__ := 1}
  36. {$elsec}
  37. {$setc __ppc__ := 0}
  38. {$endc}
  39. {$ifc not defined __i386__ and defined CPUI386}
  40. {$setc __i386__ := 1}
  41. {$elsec}
  42. {$setc __i386__ := 0}
  43. {$endc}
  44. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  45. {$error Conflicting definitions for __ppc__ and __i386__}
  46. {$endc}
  47. {$ifc defined __ppc__ and __ppc__}
  48. {$setc TARGET_CPU_PPC := TRUE}
  49. {$setc TARGET_CPU_X86 := FALSE}
  50. {$elifc defined __i386__ and __i386__}
  51. {$setc TARGET_CPU_PPC := FALSE}
  52. {$setc TARGET_CPU_X86 := TRUE}
  53. {$elsec}
  54. {$error Neither __ppc__ nor __i386__ is defined.}
  55. {$endc}
  56. {$setc TARGET_CPU_PPC_64 := FALSE}
  57. {$ifc defined FPC_BIG_ENDIAN}
  58. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  59. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  60. {$elifc defined FPC_LITTLE_ENDIAN}
  61. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  62. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  63. {$elsec}
  64. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  65. {$endc}
  66. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  67. {$setc CALL_NOT_IN_CARBON := FALSE}
  68. {$setc OLDROUTINENAMES := FALSE}
  69. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  70. {$setc OPAQUE_UPP_TYPES := TRUE}
  71. {$setc OTCARBONAPPLICATION := TRUE}
  72. {$setc OTKERNEL := FALSE}
  73. {$setc PM_USE_SESSION_APIS := TRUE}
  74. {$setc TARGET_API_MAC_CARBON := TRUE}
  75. {$setc TARGET_API_MAC_OS8 := FALSE}
  76. {$setc TARGET_API_MAC_OSX := TRUE}
  77. {$setc TARGET_CARBON := TRUE}
  78. {$setc TARGET_CPU_68K := FALSE}
  79. {$setc TARGET_CPU_MIPS := FALSE}
  80. {$setc TARGET_CPU_SPARC := FALSE}
  81. {$setc TARGET_OS_MAC := TRUE}
  82. {$setc TARGET_OS_UNIX := FALSE}
  83. {$setc TARGET_OS_WIN32 := FALSE}
  84. {$setc TARGET_RT_MAC_68881 := FALSE}
  85. {$setc TARGET_RT_MAC_CFM := FALSE}
  86. {$setc TARGET_RT_MAC_MACHO := TRUE}
  87. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  88. {$setc TYPE_BOOL := FALSE}
  89. {$setc TYPE_EXTENDED := FALSE}
  90. {$setc TYPE_LONGLONG := TRUE}
  91. uses MacTypes,Quickdraw,Movies;
  92. {$ALIGN MAC68K}
  93. type
  94. QTVRInstance = ^SInt32; { an opaque 32-bit type }
  95. QTVRInstancePtr = ^QTVRInstance; { when a var xx:QTVRInstance parameter can be nil, it is changed to xx: QTVRInstancePtr }
  96. const
  97. kQTVRControllerSubType = $63747970 (* 'ctyp' *);
  98. kQTVRQTVRType = $71747672 (* 'qtvr' *);
  99. kQTVRPanoramaType = $70616E6F (* 'pano' *);
  100. kQTVRObjectType = $6F626A65 (* 'obje' *);
  101. kQTVROldPanoType = $5354706E (* 'STpn' *); { Used in QTVR 1.0 release }
  102. kQTVROldObjectType = $73746E61 (* 'stna' *); { Used in QTVR 1.0 release }
  103. {$ifc TARGET_OS_MAC}
  104. {$elsec}
  105. {$endc} {TARGET_OS_MAC}
  106. { QTVR hot spot types }
  107. kQTVRHotSpotLinkType = $6C696E6B (* 'link' *);
  108. kQTVRHotSpotURLType = $75726C20 (* 'url ' *);
  109. kQTVRHotSpotUndefinedType = $756E6466 (* 'undf' *);
  110. { Special Values for nodeID in QTVRGoToNodeID }
  111. kQTVRCurrentNode = 0;
  112. kQTVRPreviousNode = $80000000;
  113. kQTVRDefaultNode = $80000001;
  114. { Panorama correction modes used for the kQTVRImagingCorrection imaging property }
  115. kQTVRNoCorrection = 0;
  116. kQTVRPartialCorrection = 1;
  117. kQTVRFullCorrection = 2;
  118. { Imaging Modes used by QTVRSetImagingProperty, QTVRGetImagingProperty, QTVRUpdate, QTVRBeginUpdate }
  119. type
  120. QTVRImagingMode = UInt32;
  121. const
  122. kQTVRStatic = 1;
  123. kQTVRMotion = 2;
  124. kQTVRCurrentMode = 0; { Special Value for QTVRUpdate }
  125. kQTVRAllModes = 100; { Special value for QTVRSetProperty }
  126. { Imaging Properties used by QTVRSetImagingProperty, QTVRGetImagingProperty }
  127. kQTVRImagingCorrection = 1;
  128. kQTVRImagingQuality = 2;
  129. kQTVRImagingDirectDraw = 3;
  130. kQTVRImagingCurrentMode = 100; { Get Only }
  131. { OR the above with kImagingDefaultValue to get/set the default value }
  132. kImagingDefaultValue = $80000000;
  133. { Transition Types used by QTVRSetTransitionProperty, QTVREnableTransition }
  134. kQTVRTransitionSwing = 1;
  135. { Transition Properties QTVRSetTransitionProperty }
  136. kQTVRTransitionSpeed = 1;
  137. kQTVRTransitionDirection = 2;
  138. { Constraint values used to construct value returned by GetConstraintStatus }
  139. kQTVRUnconstrained = 0;
  140. kQTVRCantPanLeft = $00000001;
  141. kQTVRCantPanRight = $00000002;
  142. kQTVRCantPanUp = $00000004;
  143. kQTVRCantPanDown = $00000008;
  144. kQTVRCantZoomIn = $00000010;
  145. kQTVRCantZoomOut = $00000020;
  146. kQTVRCantTranslateLeft = $00000040;
  147. kQTVRCantTranslateRight = $00000080;
  148. kQTVRCantTranslateUp = $00000100;
  149. kQTVRCantTranslateDown = $00000200;
  150. { Object-only mouse mode values used to construct value returned by QTVRGetCurrentMouseMode }
  151. kQTVRPanning = $00000001; { standard objects, "object only" controllers }
  152. kQTVRTranslating = $00000002; { all objects }
  153. kQTVRZooming = $00000004; { all objects }
  154. kQTVRScrolling = $00000008; { standard object arrow scrollers and joystick object }
  155. kQTVRSelecting = $00000010; { object absolute controller }
  156. { Properties for use with QTVRSetInteractionProperty/GetInteractionProperty }
  157. kQTVRInteractionMouseClickHysteresis = 1; { pixels within which the mouse is considered not to have moved (UInt16) }
  158. kQTVRInteractionMouseClickTimeout = 2; { ticks after which a mouse click times out and turns into panning (UInt32) }
  159. kQTVRInteractionPanTiltSpeed = 3; { control the relative pan/tilt speed from 1 (slowest) to 10 (fastest). (UInt32) Default is 5; }
  160. kQTVRInteractionZoomSpeed = 4; { control the relative zooming speed from 1 (slowest) to 10 (fastest). (UInt32) Default is 5; }
  161. kQTVRInteractionTranslateOnMouseDown = 101; { Holding MouseDown with this setting translates zoomed object movies (Boolean) }
  162. kQTVRInteractionMouseMotionScale = 102; { The maximum angle of rotation caused by dragging across the display window. (* float) }
  163. kQTVRInteractionNudgeMode = 103; { A QTVRNudgeMode: rotate, translate, or the same as the current mouse mode. Requires QTVR 2.1 }
  164. { OR the above with kQTVRInteractionDefaultValue to get/set the default value }
  165. kQTVRInteractionDefaultValue = $80000000;
  166. { Geometry constants used in QTVRSetBackBufferPrefs, QTVRGetBackBufferSettings, QTVRGetBackBufferMemInfo }
  167. kQTVRUseMovieGeometry = 0;
  168. kQTVRVerticalCylinder = $7663796C (* 'vcyl' *);
  169. kQTVRHorizontalCylinder = $6863796C (* 'hcyl' *);
  170. kQTVRCube = $63756265 (* 'cube' *);
  171. { Resolution constants used in QTVRSetBackBufferPrefs, QTVRGetBackBufferSettings, QTVRGetBackBufferMemInfo }
  172. kQTVRDefaultRes = 0;
  173. kQTVRFullRes = $00000001;
  174. kQTVRHalfRes = $00000002;
  175. kQTVRQuarterRes = $00000004;
  176. { QTVR-specific pixelFormat constants used in QTVRSetBackBufferPrefs, QTVRGetBackBufferSettings, QTVRGetBackBufferMemInfo }
  177. kQTVRUseMovieDepth = 0;
  178. { Cache Size Pref constants used in QTVRSetBackBufferPrefs, QTVRGetBackBufferSettings }
  179. kQTVRMinimumCache = -1;
  180. kQTVRSuggestedCache = 0;
  181. kQTVRFullCache = 1;
  182. { Angular units used by QTVRSetAngularUnits }
  183. type
  184. QTVRAngularUnits = UInt32;
  185. const
  186. kQTVRDegrees = 0;
  187. kQTVRRadians = 1;
  188. { Values for enableFlag parameter in QTVREnableHotSpot }
  189. kQTVRHotSpotID = 0;
  190. kQTVRHotSpotType = 1;
  191. kQTVRAllHotSpots = 2;
  192. { Values for viewParameter for QTVRSet/GetViewParameter }
  193. kQTVRPanAngle = $0100; { default units; &float, &float }
  194. kQTVRTiltAngle = $0101; { default units; &float, &float }
  195. kQTVRFieldOfViewAngle = $0103; { default units; &float, &float }
  196. kQTVRViewCenter = $0104; { pixels (per object movies); &QTVRFloatPoint, &QTVRFloatPoint }
  197. kQTVRHotSpotsVisible = $0200; { Boolean, &Boolean }
  198. { Values for flagsIn for QTVRSet/GetViewParameter }
  199. kQTVRValueIsRelative = $00000001; { Is the value absolute or relative to the current value? }
  200. kQTVRValueIsRate = $00000002; { Is the value absolute or a rate of change to be applied? }
  201. kQTVRValueIsUserPrefRelative = $00000004; { Is the value a percentage of the user rate pref? }
  202. { Values for kind parameter in QTVRGet/SetConstraints, QTVRGetViewingLimits }
  203. kQTVRPan = 0;
  204. kQTVRTilt = 1;
  205. kQTVRFieldOfView = 2;
  206. kQTVRViewCenterH = 4; { WrapAndConstrain only }
  207. kQTVRViewCenterV = 5; { WrapAndConstrain only }
  208. { Values for setting parameter in QTVRSetAnimationSetting, QTVRGetAnimationSetting }
  209. type
  210. QTVRObjectAnimationSetting = UInt32;
  211. const
  212. { View Frame Animation Settings }
  213. kQTVRPalindromeViewFrames = 1;
  214. kQTVRStartFirstViewFrame = 2;
  215. kQTVRDontLoopViewFrames = 3;
  216. kQTVRPlayEveryViewFrame = 4; { Requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10) }
  217. { View Animation Settings }
  218. kQTVRSyncViewToFrameRate = 16;
  219. kQTVRPalindromeViews = 17;
  220. kQTVRPlayStreamingViews = 18; { Requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10) }
  221. type
  222. QTVRControlSetting = UInt32;
  223. const
  224. kQTVRWrapPan = 1;
  225. kQTVRWrapTilt = 2;
  226. kQTVRCanZoom = 3;
  227. kQTVRReverseHControl = 4;
  228. kQTVRReverseVControl = 5;
  229. kQTVRSwapHVControl = 6;
  230. kQTVRTranslation = 7;
  231. type
  232. QTVRViewStateType = UInt32;
  233. const
  234. kQTVRDefault = 0;
  235. kQTVRCurrent = 2;
  236. kQTVRMouseDown = 3;
  237. type
  238. QTVRNudgeControl = UInt32;
  239. const
  240. kQTVRRight = 0;
  241. kQTVRUpRight = 45;
  242. kQTVRUp = 90;
  243. kQTVRUpLeft = 135;
  244. kQTVRLeft = 180;
  245. kQTVRDownLeft = 225;
  246. kQTVRDown = 270;
  247. kQTVRDownRight = 315;
  248. type
  249. QTVRNudgeMode = UInt32;
  250. const
  251. kQTVRNudgeRotate = 0;
  252. kQTVRNudgeTranslate = 1;
  253. kQTVRNudgeSameAsMouse = 2;
  254. { Flags to control elements of the QTVR control bar (set via mcActionSetFlags) }
  255. mcFlagQTVRSuppressBackBtn = $00010000;
  256. mcFlagQTVRSuppressZoomBtns = $00020000;
  257. mcFlagQTVRSuppressHotSpotBtn = $00040000;
  258. mcFlagQTVRSuppressTranslateBtn = $00080000;
  259. mcFlagQTVRSuppressHelpText = $00100000;
  260. mcFlagQTVRSuppressHotSpotNames = $00200000;
  261. mcFlagQTVRExplicitFlagSet = $80000000; { bits 0->30 should be interpreted as "explicit on" for the corresponding suppression bits }
  262. { Cursor types used in type field of QTVRCursorRecord }
  263. kQTVRUseDefaultCursor = 0;
  264. kQTVRStdCursorType = 1;
  265. kQTVRColorCursorType = 2;
  266. { Values for flags parameter in QTVRMouseOverHotSpot callback }
  267. kQTVRHotSpotEnter = 0;
  268. kQTVRHotSpotWithin = 1;
  269. kQTVRHotSpotLeave = 2;
  270. { Values for flags parameter in QTVRSetPrescreenImagingCompleteProc }
  271. kQTVRPreScreenEveryIdle = $00000001; { Requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10) }
  272. { Values for flags field of areasOfInterest in QTVRSetBackBufferImagingProc }
  273. kQTVRBackBufferEveryUpdate = $00000001;
  274. kQTVRBackBufferEveryIdle = $00000002;
  275. kQTVRBackBufferAlwaysRefresh = $00000004;
  276. kQTVRBackBufferHorizontal = $00000008; { Requires that backbuffer proc be long-rowBytes aware (gestaltQDHasLongRowBytes) }
  277. { Values for flagsIn parameter in QTVRBackBufferImaging callback }
  278. kQTVRBackBufferRectVisible = $00000001;
  279. kQTVRBackBufferWasRefreshed = $00000002;
  280. { Values for flagsOut parameter in QTVRBackBufferImaging callback }
  281. kQTVRBackBufferFlagDidDraw = $00000001;
  282. kQTVRBackBufferFlagLastFlag = $80000000;
  283. { QTVRCursorRecord used in QTVRReplaceCursor }
  284. type
  285. QTVRCursorRecordPtr = ^QTVRCursorRecord;
  286. QTVRCursorRecord = record
  287. theType: UInt16; { field was previously named "type" }
  288. rsrcID: SInt16;
  289. handle: Handle_fix;
  290. end;
  291. QTVRFloatPointPtr = ^QTVRFloatPoint;
  292. QTVRFloatPoint = record
  293. x: Single;
  294. y: Single;
  295. end;
  296. { Struct used for areasOfInterest parameter in QTVRSetBackBufferImagingProc }
  297. QTVRAreaOfInterestPtr = ^QTVRAreaOfInterest;
  298. QTVRAreaOfInterest = record
  299. panAngle: Single;
  300. tiltAngle: Single;
  301. width: Single;
  302. height: Single;
  303. flags: UInt32;
  304. end;
  305. {
  306. =================================================================================================
  307. Callback routines
  308. -------------------------------------------------------------------------------------------------
  309. }
  310. {$ifc TYPED_FUNCTION_POINTERS}
  311. QTVRLeavingNodeProcPtr = function(qtvr: QTVRInstance; fromNodeID: UInt32; toNodeID: UInt32; var cancel: boolean; refCon: SInt32): OSErr;
  312. {$elsec}
  313. QTVRLeavingNodeProcPtr = ProcPtr;
  314. {$endc}
  315. {$ifc TYPED_FUNCTION_POINTERS}
  316. QTVREnteringNodeProcPtr = function(qtvr: QTVRInstance; nodeID: UInt32; refCon: SInt32): OSErr;
  317. {$elsec}
  318. QTVREnteringNodeProcPtr = ProcPtr;
  319. {$endc}
  320. {$ifc TYPED_FUNCTION_POINTERS}
  321. QTVRMouseOverHotSpotProcPtr = function(qtvr: QTVRInstance; hotSpotID: UInt32; flags: UInt32; refCon: SInt32): OSErr;
  322. {$elsec}
  323. QTVRMouseOverHotSpotProcPtr = ProcPtr;
  324. {$endc}
  325. {$ifc TYPED_FUNCTION_POINTERS}
  326. QTVRImagingCompleteProcPtr = function(qtvr: QTVRInstance; refCon: SInt32): OSErr;
  327. {$elsec}
  328. QTVRImagingCompleteProcPtr = ProcPtr;
  329. {$endc}
  330. {$ifc TYPED_FUNCTION_POINTERS}
  331. QTVRBackBufferImagingProcPtr = function(qtvr: QTVRInstance; var drawRect: Rect; areaIndex: UInt16; flagsIn: UInt32; var flagsOut: UInt32; refCon: SInt32): OSErr;
  332. {$elsec}
  333. QTVRBackBufferImagingProcPtr = ProcPtr;
  334. {$endc}
  335. {$ifc OPAQUE_UPP_TYPES}
  336. QTVRLeavingNodeUPP = ^SInt32; { an opaque UPP }
  337. {$elsec}
  338. QTVRLeavingNodeUPP = UniversalProcPtr;
  339. {$endc}
  340. {$ifc OPAQUE_UPP_TYPES}
  341. QTVREnteringNodeUPP = ^SInt32; { an opaque UPP }
  342. {$elsec}
  343. QTVREnteringNodeUPP = UniversalProcPtr;
  344. {$endc}
  345. {$ifc OPAQUE_UPP_TYPES}
  346. QTVRMouseOverHotSpotUPP = ^SInt32; { an opaque UPP }
  347. {$elsec}
  348. QTVRMouseOverHotSpotUPP = UniversalProcPtr;
  349. {$endc}
  350. {$ifc OPAQUE_UPP_TYPES}
  351. QTVRImagingCompleteUPP = ^SInt32; { an opaque UPP }
  352. {$elsec}
  353. QTVRImagingCompleteUPP = UniversalProcPtr;
  354. {$endc}
  355. {$ifc OPAQUE_UPP_TYPES}
  356. QTVRBackBufferImagingUPP = ^SInt32; { an opaque UPP }
  357. {$elsec}
  358. QTVRBackBufferImagingUPP = UniversalProcPtr;
  359. {$endc}
  360. const
  361. uppQTVRLeavingNodeProcInfo = $0000FFE0;
  362. uppQTVREnteringNodeProcInfo = $00000FE0;
  363. uppQTVRMouseOverHotSpotProcInfo = $00003FE0;
  364. uppQTVRImagingCompleteProcInfo = $000003E0;
  365. uppQTVRBackBufferImagingProcInfo = $0003FBE0;
  366. {
  367. * NewQTVRLeavingNodeUPP()
  368. *
  369. * Availability:
  370. * Non-Carbon CFM: available as macro/inline
  371. * CarbonLib: in CarbonLib 1.1 and later
  372. * Mac OS X: in version 10.0 and later
  373. }
  374. function NewQTVRLeavingNodeUPP(userRoutine: QTVRLeavingNodeProcPtr): QTVRLeavingNodeUPP; external name '_NewQTVRLeavingNodeUPP'; { old name was NewQTVRLeavingNodeProc }
  375. {
  376. * NewQTVREnteringNodeUPP()
  377. *
  378. * Availability:
  379. * Non-Carbon CFM: available as macro/inline
  380. * CarbonLib: in CarbonLib 1.1 and later
  381. * Mac OS X: in version 10.0 and later
  382. }
  383. function NewQTVREnteringNodeUPP(userRoutine: QTVREnteringNodeProcPtr): QTVREnteringNodeUPP; external name '_NewQTVREnteringNodeUPP'; { old name was NewQTVREnteringNodeProc }
  384. {
  385. * NewQTVRMouseOverHotSpotUPP()
  386. *
  387. * Availability:
  388. * Non-Carbon CFM: available as macro/inline
  389. * CarbonLib: in CarbonLib 1.1 and later
  390. * Mac OS X: in version 10.0 and later
  391. }
  392. function NewQTVRMouseOverHotSpotUPP(userRoutine: QTVRMouseOverHotSpotProcPtr): QTVRMouseOverHotSpotUPP; external name '_NewQTVRMouseOverHotSpotUPP'; { old name was NewQTVRMouseOverHotSpotProc }
  393. {
  394. * NewQTVRImagingCompleteUPP()
  395. *
  396. * Availability:
  397. * Non-Carbon CFM: available as macro/inline
  398. * CarbonLib: in CarbonLib 1.1 and later
  399. * Mac OS X: in version 10.0 and later
  400. }
  401. function NewQTVRImagingCompleteUPP(userRoutine: QTVRImagingCompleteProcPtr): QTVRImagingCompleteUPP; external name '_NewQTVRImagingCompleteUPP'; { old name was NewQTVRImagingCompleteProc }
  402. {
  403. * NewQTVRBackBufferImagingUPP()
  404. *
  405. * Availability:
  406. * Non-Carbon CFM: available as macro/inline
  407. * CarbonLib: in CarbonLib 1.1 and later
  408. * Mac OS X: in version 10.0 and later
  409. }
  410. function NewQTVRBackBufferImagingUPP(userRoutine: QTVRBackBufferImagingProcPtr): QTVRBackBufferImagingUPP; external name '_NewQTVRBackBufferImagingUPP'; { old name was NewQTVRBackBufferImagingProc }
  411. {
  412. * DisposeQTVRLeavingNodeUPP()
  413. *
  414. * Availability:
  415. * Non-Carbon CFM: available as macro/inline
  416. * CarbonLib: in CarbonLib 1.1 and later
  417. * Mac OS X: in version 10.0 and later
  418. }
  419. procedure DisposeQTVRLeavingNodeUPP(userUPP: QTVRLeavingNodeUPP); external name '_DisposeQTVRLeavingNodeUPP';
  420. {
  421. * DisposeQTVREnteringNodeUPP()
  422. *
  423. * Availability:
  424. * Non-Carbon CFM: available as macro/inline
  425. * CarbonLib: in CarbonLib 1.1 and later
  426. * Mac OS X: in version 10.0 and later
  427. }
  428. procedure DisposeQTVREnteringNodeUPP(userUPP: QTVREnteringNodeUPP); external name '_DisposeQTVREnteringNodeUPP';
  429. {
  430. * DisposeQTVRMouseOverHotSpotUPP()
  431. *
  432. * Availability:
  433. * Non-Carbon CFM: available as macro/inline
  434. * CarbonLib: in CarbonLib 1.1 and later
  435. * Mac OS X: in version 10.0 and later
  436. }
  437. procedure DisposeQTVRMouseOverHotSpotUPP(userUPP: QTVRMouseOverHotSpotUPP); external name '_DisposeQTVRMouseOverHotSpotUPP';
  438. {
  439. * DisposeQTVRImagingCompleteUPP()
  440. *
  441. * Availability:
  442. * Non-Carbon CFM: available as macro/inline
  443. * CarbonLib: in CarbonLib 1.1 and later
  444. * Mac OS X: in version 10.0 and later
  445. }
  446. procedure DisposeQTVRImagingCompleteUPP(userUPP: QTVRImagingCompleteUPP); external name '_DisposeQTVRImagingCompleteUPP';
  447. {
  448. * DisposeQTVRBackBufferImagingUPP()
  449. *
  450. * Availability:
  451. * Non-Carbon CFM: available as macro/inline
  452. * CarbonLib: in CarbonLib 1.1 and later
  453. * Mac OS X: in version 10.0 and later
  454. }
  455. procedure DisposeQTVRBackBufferImagingUPP(userUPP: QTVRBackBufferImagingUPP); external name '_DisposeQTVRBackBufferImagingUPP';
  456. {
  457. * InvokeQTVRLeavingNodeUPP()
  458. *
  459. * Availability:
  460. * Non-Carbon CFM: available as macro/inline
  461. * CarbonLib: in CarbonLib 1.1 and later
  462. * Mac OS X: in version 10.0 and later
  463. }
  464. function InvokeQTVRLeavingNodeUPP(qtvr: QTVRInstance; fromNodeID: UInt32; toNodeID: UInt32; var cancel: boolean; refCon: SInt32; userRoutine: QTVRLeavingNodeUPP): OSErr; external name '_InvokeQTVRLeavingNodeUPP'; { old name was CallQTVRLeavingNodeProc }
  465. {
  466. * InvokeQTVREnteringNodeUPP()
  467. *
  468. * Availability:
  469. * Non-Carbon CFM: available as macro/inline
  470. * CarbonLib: in CarbonLib 1.1 and later
  471. * Mac OS X: in version 10.0 and later
  472. }
  473. function InvokeQTVREnteringNodeUPP(qtvr: QTVRInstance; nodeID: UInt32; refCon: SInt32; userRoutine: QTVREnteringNodeUPP): OSErr; external name '_InvokeQTVREnteringNodeUPP'; { old name was CallQTVREnteringNodeProc }
  474. {
  475. * InvokeQTVRMouseOverHotSpotUPP()
  476. *
  477. * Availability:
  478. * Non-Carbon CFM: available as macro/inline
  479. * CarbonLib: in CarbonLib 1.1 and later
  480. * Mac OS X: in version 10.0 and later
  481. }
  482. function InvokeQTVRMouseOverHotSpotUPP(qtvr: QTVRInstance; hotSpotID: UInt32; flags: UInt32; refCon: SInt32; userRoutine: QTVRMouseOverHotSpotUPP): OSErr; external name '_InvokeQTVRMouseOverHotSpotUPP'; { old name was CallQTVRMouseOverHotSpotProc }
  483. {
  484. * InvokeQTVRImagingCompleteUPP()
  485. *
  486. * Availability:
  487. * Non-Carbon CFM: available as macro/inline
  488. * CarbonLib: in CarbonLib 1.1 and later
  489. * Mac OS X: in version 10.0 and later
  490. }
  491. function InvokeQTVRImagingCompleteUPP(qtvr: QTVRInstance; refCon: SInt32; userRoutine: QTVRImagingCompleteUPP): OSErr; external name '_InvokeQTVRImagingCompleteUPP'; { old name was CallQTVRImagingCompleteProc }
  492. {
  493. * InvokeQTVRBackBufferImagingUPP()
  494. *
  495. * Availability:
  496. * Non-Carbon CFM: available as macro/inline
  497. * CarbonLib: in CarbonLib 1.1 and later
  498. * Mac OS X: in version 10.0 and later
  499. }
  500. function InvokeQTVRBackBufferImagingUPP(qtvr: QTVRInstance; var drawRect: Rect; areaIndex: UInt16; flagsIn: UInt32; var flagsOut: UInt32; refCon: SInt32; userRoutine: QTVRBackBufferImagingUPP): OSErr; external name '_InvokeQTVRBackBufferImagingUPP'; { old name was CallQTVRBackBufferImagingProc }
  501. {
  502. =================================================================================================
  503. QTVR Intercept Struct, Callback, Routine Descriptors
  504. -------------------------------------------------------------------------------------------------
  505. }
  506. type
  507. QTVRProcSelector = UInt32;
  508. const
  509. kQTVRSetPanAngleSelector = $2000;
  510. kQTVRSetTiltAngleSelector = $2001;
  511. kQTVRSetFieldOfViewSelector = $2002;
  512. kQTVRSetViewCenterSelector = $2003;
  513. kQTVRMouseEnterSelector = $2004;
  514. kQTVRMouseWithinSelector = $2005;
  515. kQTVRMouseLeaveSelector = $2006;
  516. kQTVRMouseDownSelector = $2007;
  517. kQTVRMouseStillDownSelector = $2008;
  518. kQTVRMouseUpSelector = $2009;
  519. kQTVRTriggerHotSpotSelector = $200A;
  520. kQTVRGetHotSpotTypeSelector = $200B; { Requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10) }
  521. kQTVRSetViewParameterSelector = $200C; { Requires QTVR 5.0 (kQTVRAPIMajorVersion05 + kQTVRAPIMinorVersion00) }
  522. kQTVRGetViewParameterSelector = $200D; { Requires QTVR 5.0 (kQTVRAPIMajorVersion05 + kQTVRAPIMinorVersion00) }
  523. type
  524. QTVRInterceptRecordPtr = ^QTVRInterceptRecord;
  525. QTVRInterceptRecord = record
  526. reserved1: SInt32;
  527. selector: SInt32;
  528. reserved2: SInt32;
  529. reserved3: SInt32;
  530. paramCount: SInt32;
  531. parameter: array [0..5] of Ptr;
  532. end;
  533. QTVRInterceptPtr = ^QTVRInterceptRecord;
  534. { Prototype for Intercept Proc callback }
  535. {$ifc TYPED_FUNCTION_POINTERS}
  536. QTVRInterceptProcPtr = procedure(qtvr: QTVRInstance; qtvrMsg: QTVRInterceptPtr; refCon: SInt32; var cancel: boolean);
  537. {$elsec}
  538. QTVRInterceptProcPtr = ProcPtr;
  539. {$endc}
  540. {$ifc OPAQUE_UPP_TYPES}
  541. QTVRInterceptUPP = ^SInt32; { an opaque UPP }
  542. {$elsec}
  543. QTVRInterceptUPP = UniversalProcPtr;
  544. {$endc}
  545. const
  546. uppQTVRInterceptProcInfo = $00003FC0;
  547. {
  548. * NewQTVRInterceptUPP()
  549. *
  550. * Availability:
  551. * Non-Carbon CFM: available as macro/inline
  552. * CarbonLib: in CarbonLib 1.1 and later
  553. * Mac OS X: in version 10.0 and later
  554. }
  555. function NewQTVRInterceptUPP(userRoutine: QTVRInterceptProcPtr): QTVRInterceptUPP; external name '_NewQTVRInterceptUPP'; { old name was NewQTVRInterceptProc }
  556. {
  557. * DisposeQTVRInterceptUPP()
  558. *
  559. * Availability:
  560. * Non-Carbon CFM: available as macro/inline
  561. * CarbonLib: in CarbonLib 1.1 and later
  562. * Mac OS X: in version 10.0 and later
  563. }
  564. procedure DisposeQTVRInterceptUPP(userUPP: QTVRInterceptUPP); external name '_DisposeQTVRInterceptUPP';
  565. {
  566. * InvokeQTVRInterceptUPP()
  567. *
  568. * Availability:
  569. * Non-Carbon CFM: available as macro/inline
  570. * CarbonLib: in CarbonLib 1.1 and later
  571. * Mac OS X: in version 10.0 and later
  572. }
  573. procedure InvokeQTVRInterceptUPP(qtvr: QTVRInstance; qtvrMsg: QTVRInterceptPtr; refCon: SInt32; var cancel: boolean; userRoutine: QTVRInterceptUPP); external name '_InvokeQTVRInterceptUPP'; { old name was CallQTVRInterceptProc }
  574. {
  575. =================================================================================================
  576. Initialization QTVR calls
  577. -------------------------------------------------------------------------------------------------
  578. Requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10) and only work on Non-Macintosh platforms
  579. }
  580. {$ifc NOT TARGET_OS_MAC}
  581. {$ifc CALL_NOT_IN_CARBON}
  582. {
  583. * InitializeQTVR()
  584. *
  585. * Availability:
  586. * Non-Carbon CFM: not available
  587. * CarbonLib: not available
  588. * Mac OS X: not available
  589. * Windows: in QTVR.lib 2.1 and later
  590. }
  591. function InitializeQTVR: OSErr; external name '_InitializeQTVR';
  592. {
  593. * TerminateQTVR()
  594. *
  595. * Availability:
  596. * Non-Carbon CFM: not available
  597. * CarbonLib: not available
  598. * Mac OS X: not available
  599. * Windows: in QTVR.lib 2.1 and later
  600. }
  601. function TerminateQTVR: OSErr; external name '_TerminateQTVR';
  602. {$endc} {CALL_NOT_IN_CARBON}
  603. {$endc}
  604. {
  605. =================================================================================================
  606. General QTVR calls
  607. -------------------------------------------------------------------------------------------------
  608. }
  609. {
  610. * QTVRGetQTVRTrack()
  611. *
  612. * Availability:
  613. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  614. * CarbonLib: in CarbonLib 1.1 and later
  615. * Mac OS X: in version 10.0 and later
  616. * Windows: in QTVR.lib 2.1 and later
  617. }
  618. function QTVRGetQTVRTrack(theMovie: Movie; index: SInt32): Track; external name '_QTVRGetQTVRTrack';
  619. {
  620. * QTVRGetQTVRInstance()
  621. *
  622. * Availability:
  623. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  624. * CarbonLib: in CarbonLib 1.1 and later
  625. * Mac OS X: in version 10.0 and later
  626. * Windows: in QTVR.lib 2.1 and later
  627. }
  628. function QTVRGetQTVRInstance(var qtvr: QTVRInstance; qtvrTrack: Track; mc: MovieController): OSErr; external name '_QTVRGetQTVRInstance';
  629. {
  630. =================================================================================================
  631. Viewing Angles and Zooming
  632. -------------------------------------------------------------------------------------------------
  633. }
  634. { QTVRSetViewParameter requires QTVR 5.0 (kQTVRAPIMajorVersion05 + kQTVRAPIMinorVersion00) }
  635. {
  636. * QTVRSetViewParameter()
  637. *
  638. * Availability:
  639. * Non-Carbon CFM: in QuickTimeVRLib 5.0 and later
  640. * CarbonLib: in CarbonLib 1.3 and later
  641. * Mac OS X: in version 10.0 and later
  642. * Windows: in QTVR.lib 5.0 and later
  643. }
  644. function QTVRSetViewParameter(qtvr: QTVRInstance; viewParameter: UInt32; value: UnivPtr; flagsIn: UInt32): OSErr; external name '_QTVRSetViewParameter';
  645. { QTVRGetViewParameter requires QTVR 5.0 (kQTVRAPIMajorVersion05 + kQTVRAPIMinorVersion00) }
  646. {
  647. * QTVRGetViewParameter()
  648. *
  649. * Availability:
  650. * Non-Carbon CFM: in QuickTimeVRLib 5.0 and later
  651. * CarbonLib: in CarbonLib 1.3 and later
  652. * Mac OS X: in version 10.0 and later
  653. * Windows: in QTVR.lib 5.0 and later
  654. }
  655. function QTVRGetViewParameter(qtvr: QTVRInstance; viewParameter: UInt32; value: UnivPtr; flagsIn: UInt32; var flagsOut: UInt32): OSErr; external name '_QTVRGetViewParameter';
  656. {
  657. * QTVRSetPanAngle()
  658. *
  659. * Availability:
  660. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  661. * CarbonLib: in CarbonLib 1.1 and later
  662. * Mac OS X: in version 10.0 and later
  663. * Windows: in QTVR.lib 2.1 and later
  664. }
  665. function QTVRSetPanAngle(qtvr: QTVRInstance; panAngle: Single): OSErr; external name '_QTVRSetPanAngle';
  666. {
  667. * QTVRGetPanAngle()
  668. *
  669. * Availability:
  670. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  671. * CarbonLib: in CarbonLib 1.1 and later
  672. * Mac OS X: in version 10.0 and later
  673. * Windows: in QTVR.lib 2.1 and later
  674. }
  675. function QTVRGetPanAngle(qtvr: QTVRInstance): Single; external name '_QTVRGetPanAngle';
  676. {
  677. * QTVRSetTiltAngle()
  678. *
  679. * Availability:
  680. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  681. * CarbonLib: in CarbonLib 1.1 and later
  682. * Mac OS X: in version 10.0 and later
  683. * Windows: in QTVR.lib 2.1 and later
  684. }
  685. function QTVRSetTiltAngle(qtvr: QTVRInstance; tiltAngle: Single): OSErr; external name '_QTVRSetTiltAngle';
  686. {
  687. * QTVRGetTiltAngle()
  688. *
  689. * Availability:
  690. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  691. * CarbonLib: in CarbonLib 1.1 and later
  692. * Mac OS X: in version 10.0 and later
  693. * Windows: in QTVR.lib 2.1 and later
  694. }
  695. function QTVRGetTiltAngle(qtvr: QTVRInstance): Single; external name '_QTVRGetTiltAngle';
  696. {
  697. * QTVRSetFieldOfView()
  698. *
  699. * Availability:
  700. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  701. * CarbonLib: in CarbonLib 1.1 and later
  702. * Mac OS X: in version 10.0 and later
  703. * Windows: in QTVR.lib 2.1 and later
  704. }
  705. function QTVRSetFieldOfView(qtvr: QTVRInstance; fieldOfView: Single): OSErr; external name '_QTVRSetFieldOfView';
  706. {
  707. * QTVRGetFieldOfView()
  708. *
  709. * Availability:
  710. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  711. * CarbonLib: in CarbonLib 1.1 and later
  712. * Mac OS X: in version 10.0 and later
  713. * Windows: in QTVR.lib 2.1 and later
  714. }
  715. function QTVRGetFieldOfView(qtvr: QTVRInstance): Single; external name '_QTVRGetFieldOfView';
  716. {
  717. * QTVRShowDefaultView()
  718. *
  719. * Availability:
  720. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  721. * CarbonLib: in CarbonLib 1.1 and later
  722. * Mac OS X: in version 10.0 and later
  723. * Windows: in QTVR.lib 2.1 and later
  724. }
  725. function QTVRShowDefaultView(qtvr: QTVRInstance): OSErr; external name '_QTVRShowDefaultView';
  726. { Object Specific }
  727. {
  728. * QTVRSetViewCenter()
  729. *
  730. * Availability:
  731. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  732. * CarbonLib: in CarbonLib 1.1 and later
  733. * Mac OS X: in version 10.0 and later
  734. * Windows: in QTVR.lib 2.1 and later
  735. }
  736. function QTVRSetViewCenter(qtvr: QTVRInstance; const (*var*) viewCenter: QTVRFloatPoint): OSErr; external name '_QTVRSetViewCenter';
  737. {
  738. * QTVRGetViewCenter()
  739. *
  740. * Availability:
  741. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  742. * CarbonLib: in CarbonLib 1.1 and later
  743. * Mac OS X: in version 10.0 and later
  744. * Windows: in QTVR.lib 2.1 and later
  745. }
  746. function QTVRGetViewCenter(qtvr: QTVRInstance; var viewCenter: QTVRFloatPoint): OSErr; external name '_QTVRGetViewCenter';
  747. {
  748. * QTVRNudge()
  749. *
  750. * Availability:
  751. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  752. * CarbonLib: in CarbonLib 1.1 and later
  753. * Mac OS X: in version 10.0 and later
  754. * Windows: in QTVR.lib 2.1 and later
  755. }
  756. function QTVRNudge(qtvr: QTVRInstance; direction: QTVRNudgeControl): OSErr; external name '_QTVRNudge';
  757. { QTVRInteractionNudge requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10) }
  758. {
  759. * QTVRInteractionNudge()
  760. *
  761. * Availability:
  762. * Non-Carbon CFM: in QuickTimeVRLib 2.1 and later
  763. * CarbonLib: in CarbonLib 1.1 and later
  764. * Mac OS X: in version 10.0 and later
  765. * Windows: in QTVR.lib 2.1 and later
  766. }
  767. function QTVRInteractionNudge(qtvr: QTVRInstance; direction: QTVRNudgeControl): OSErr; external name '_QTVRInteractionNudge';
  768. {
  769. =================================================================================================
  770. Scene and Node Location Information
  771. -------------------------------------------------------------------------------------------------
  772. }
  773. {
  774. * QTVRGetVRWorld()
  775. *
  776. * Availability:
  777. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  778. * CarbonLib: in CarbonLib 1.1 and later
  779. * Mac OS X: in version 10.0 and later
  780. * Windows: in QTVR.lib 2.1 and later
  781. }
  782. function QTVRGetVRWorld(qtvr: QTVRInstance; var VRWorld: QTAtomContainer): OSErr; external name '_QTVRGetVRWorld';
  783. {
  784. * QTVRGetNodeInfo()
  785. *
  786. * Availability:
  787. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  788. * CarbonLib: in CarbonLib 1.1 and later
  789. * Mac OS X: in version 10.0 and later
  790. * Windows: in QTVR.lib 2.1 and later
  791. }
  792. function QTVRGetNodeInfo(qtvr: QTVRInstance; nodeID: UInt32; var nodeInfo: QTAtomContainer): OSErr; external name '_QTVRGetNodeInfo';
  793. {
  794. * QTVRGoToNodeID()
  795. *
  796. * Availability:
  797. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  798. * CarbonLib: in CarbonLib 1.1 and later
  799. * Mac OS X: in version 10.0 and later
  800. * Windows: in QTVR.lib 2.1 and later
  801. }
  802. function QTVRGoToNodeID(qtvr: QTVRInstance; nodeID: UInt32): OSErr; external name '_QTVRGoToNodeID';
  803. {
  804. * QTVRGetCurrentNodeID()
  805. *
  806. * Availability:
  807. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  808. * CarbonLib: in CarbonLib 1.1 and later
  809. * Mac OS X: in version 10.0 and later
  810. * Windows: in QTVR.lib 2.1 and later
  811. }
  812. function QTVRGetCurrentNodeID(qtvr: QTVRInstance): UInt32; external name '_QTVRGetCurrentNodeID';
  813. {
  814. * QTVRGetNodeType()
  815. *
  816. * Availability:
  817. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  818. * CarbonLib: in CarbonLib 1.1 and later
  819. * Mac OS X: in version 10.0 and later
  820. * Windows: in QTVR.lib 2.1 and later
  821. }
  822. function QTVRGetNodeType(qtvr: QTVRInstance; nodeID: UInt32): SInt32; external name '_QTVRGetNodeType';
  823. {
  824. =================================================================================================
  825. Hot Spot related calls
  826. -------------------------------------------------------------------------------------------------
  827. }
  828. {
  829. * QTVRPtToHotSpotID()
  830. *
  831. * Availability:
  832. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  833. * CarbonLib: in CarbonLib 1.1 and later
  834. * Mac OS X: in version 10.0 and later
  835. * Windows: in QTVR.lib 2.1 and later
  836. }
  837. function QTVRPtToHotSpotID(qtvr: QTVRInstance; pt: Point; var hotSpotID: UInt32): OSErr; external name '_QTVRPtToHotSpotID';
  838. { QTVRGetHotSpotType requires QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10) }
  839. {
  840. * QTVRGetHotSpotType()
  841. *
  842. * Availability:
  843. * Non-Carbon CFM: in QuickTimeVRLib 2.1 and later
  844. * CarbonLib: in CarbonLib 1.1 and later
  845. * Mac OS X: in version 10.0 and later
  846. * Windows: in QTVR.lib 2.1 and later
  847. }
  848. function QTVRGetHotSpotType(qtvr: QTVRInstance; hotSpotID: UInt32; var hotSpotType: OSType): OSErr; external name '_QTVRGetHotSpotType';
  849. {
  850. * QTVRTriggerHotSpot()
  851. *
  852. * Availability:
  853. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  854. * CarbonLib: in CarbonLib 1.1 and later
  855. * Mac OS X: in version 10.0 and later
  856. * Windows: in QTVR.lib 2.1 and later
  857. }
  858. function QTVRTriggerHotSpot(qtvr: QTVRInstance; hotSpotID: UInt32; nodeInfo: QTAtomContainer; selectedAtom: QTAtom): OSErr; external name '_QTVRTriggerHotSpot';
  859. {
  860. * QTVRSetMouseOverHotSpotProc()
  861. *
  862. * Availability:
  863. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  864. * CarbonLib: in CarbonLib 1.1 and later
  865. * Mac OS X: in version 10.0 and later
  866. * Windows: in QTVR.lib 2.1 and later
  867. }
  868. function QTVRSetMouseOverHotSpotProc(qtvr: QTVRInstance; mouseOverHotSpotProc: QTVRMouseOverHotSpotUPP; refCon: SInt32; flags: UInt32): OSErr; external name '_QTVRSetMouseOverHotSpotProc';
  869. {
  870. * QTVREnableHotSpot()
  871. *
  872. * Availability:
  873. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  874. * CarbonLib: in CarbonLib 1.1 and later
  875. * Mac OS X: in version 10.0 and later
  876. * Windows: in QTVR.lib 2.1 and later
  877. }
  878. function QTVREnableHotSpot(qtvr: QTVRInstance; enableFlag: UInt32; hotSpotValue: UInt32; enable: boolean): OSErr; external name '_QTVREnableHotSpot';
  879. {
  880. * QTVRGetVisibleHotSpots()
  881. *
  882. * Availability:
  883. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  884. * CarbonLib: in CarbonLib 1.1 and later
  885. * Mac OS X: in version 10.0 and later
  886. * Windows: in QTVR.lib 2.1 and later
  887. }
  888. function QTVRGetVisibleHotSpots(qtvr: QTVRInstance; hotSpots: Handle): UInt32; external name '_QTVRGetVisibleHotSpots';
  889. {
  890. * QTVRGetHotSpotRegion()
  891. *
  892. * Availability:
  893. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  894. * CarbonLib: in CarbonLib 1.1 and later
  895. * Mac OS X: in version 10.0 and later
  896. * Windows: in QTVR.lib 2.1 and later
  897. }
  898. function QTVRGetHotSpotRegion(qtvr: QTVRInstance; hotSpotID: UInt32; hotSpotRegion: RgnHandle): OSErr; external name '_QTVRGetHotSpotRegion';
  899. {
  900. =================================================================================================
  901. Event & Cursor Handling Calls
  902. -------------------------------------------------------------------------------------------------
  903. }
  904. {
  905. * QTVRSetMouseOverTracking()
  906. *
  907. * Availability:
  908. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  909. * CarbonLib: in CarbonLib 1.1 and later
  910. * Mac OS X: in version 10.0 and later
  911. * Windows: in QTVR.lib 2.1 and later
  912. }
  913. function QTVRSetMouseOverTracking(qtvr: QTVRInstance; enable: boolean): OSErr; external name '_QTVRSetMouseOverTracking';
  914. {
  915. * QTVRGetMouseOverTracking()
  916. *
  917. * Availability:
  918. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  919. * CarbonLib: in CarbonLib 1.1 and later
  920. * Mac OS X: in version 10.0 and later
  921. * Windows: in QTVR.lib 2.1 and later
  922. }
  923. function QTVRGetMouseOverTracking(qtvr: QTVRInstance): boolean; external name '_QTVRGetMouseOverTracking';
  924. {
  925. * QTVRSetMouseDownTracking()
  926. *
  927. * Availability:
  928. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  929. * CarbonLib: in CarbonLib 1.1 and later
  930. * Mac OS X: in version 10.0 and later
  931. * Windows: in QTVR.lib 2.1 and later
  932. }
  933. function QTVRSetMouseDownTracking(qtvr: QTVRInstance; enable: boolean): OSErr; external name '_QTVRSetMouseDownTracking';
  934. {
  935. * QTVRGetMouseDownTracking()
  936. *
  937. * Availability:
  938. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  939. * CarbonLib: in CarbonLib 1.1 and later
  940. * Mac OS X: in version 10.0 and later
  941. * Windows: in QTVR.lib 2.1 and later
  942. }
  943. function QTVRGetMouseDownTracking(qtvr: QTVRInstance): boolean; external name '_QTVRGetMouseDownTracking';
  944. {
  945. * QTVRMouseEnter()
  946. *
  947. * Availability:
  948. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  949. * CarbonLib: in CarbonLib 1.1 and later
  950. * Mac OS X: in version 10.0 and later
  951. * Windows: in QTVR.lib 2.1 and later
  952. }
  953. function QTVRMouseEnter(qtvr: QTVRInstance; pt: Point; var hotSpotID: UInt32; w: WindowRef): OSErr; external name '_QTVRMouseEnter';
  954. {
  955. * QTVRMouseWithin()
  956. *
  957. * Availability:
  958. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  959. * CarbonLib: in CarbonLib 1.1 and later
  960. * Mac OS X: in version 10.0 and later
  961. * Windows: in QTVR.lib 2.1 and later
  962. }
  963. function QTVRMouseWithin(qtvr: QTVRInstance; pt: Point; var hotSpotID: UInt32; w: WindowRef): OSErr; external name '_QTVRMouseWithin';
  964. {
  965. * QTVRMouseLeave()
  966. *
  967. * Availability:
  968. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  969. * CarbonLib: in CarbonLib 1.1 and later
  970. * Mac OS X: in version 10.0 and later
  971. * Windows: in QTVR.lib 2.1 and later
  972. }
  973. function QTVRMouseLeave(qtvr: QTVRInstance; pt: Point; w: WindowRef): OSErr; external name '_QTVRMouseLeave';
  974. {
  975. * QTVRMouseDown()
  976. *
  977. * Availability:
  978. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  979. * CarbonLib: in CarbonLib 1.1 and later
  980. * Mac OS X: in version 10.0 and later
  981. * Windows: in QTVR.lib 2.1 and later
  982. }
  983. function QTVRMouseDown(qtvr: QTVRInstance; pt: Point; when: UInt32; modifiers: UInt16; var hotSpotID: UInt32; w: WindowRef): OSErr; external name '_QTVRMouseDown';
  984. {
  985. * QTVRMouseStillDown()
  986. *
  987. * Availability:
  988. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  989. * CarbonLib: in CarbonLib 1.1 and later
  990. * Mac OS X: in version 10.0 and later
  991. * Windows: in QTVR.lib 2.1 and later
  992. }
  993. function QTVRMouseStillDown(qtvr: QTVRInstance; pt: Point; var hotSpotID: UInt32; w: WindowRef): OSErr; external name '_QTVRMouseStillDown';
  994. {
  995. * QTVRMouseUp()
  996. *
  997. * Availability:
  998. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  999. * CarbonLib: in CarbonLib 1.1 and later
  1000. * Mac OS X: in version 10.0 and later
  1001. * Windows: in QTVR.lib 2.1 and later
  1002. }
  1003. function QTVRMouseUp(qtvr: QTVRInstance; pt: Point; var hotSpotID: UInt32; w: WindowRef): OSErr; external name '_QTVRMouseUp';
  1004. { These require QTVR 2.01 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion01) }
  1005. {
  1006. * QTVRMouseStillDownExtended()
  1007. *
  1008. * Availability:
  1009. * Non-Carbon CFM: in QuickTimeVRLib 2.0.1 and later
  1010. * CarbonLib: in CarbonLib 1.1 and later
  1011. * Mac OS X: in version 10.0 and later
  1012. * Windows: in QTVR.lib 2.1 and later
  1013. }
  1014. function QTVRMouseStillDownExtended(qtvr: QTVRInstance; pt: Point; var hotSpotID: UInt32; w: WindowRef; when: UInt32; modifiers: UInt16): OSErr; external name '_QTVRMouseStillDownExtended';
  1015. {
  1016. * QTVRMouseUpExtended()
  1017. *
  1018. * Availability:
  1019. * Non-Carbon CFM: in QuickTimeVRLib 2.0.1 and later
  1020. * CarbonLib: in CarbonLib 1.1 and later
  1021. * Mac OS X: in version 10.0 and later
  1022. * Windows: in QTVR.lib 2.1 and later
  1023. }
  1024. function QTVRMouseUpExtended(qtvr: QTVRInstance; pt: Point; var hotSpotID: UInt32; w: WindowRef; when: UInt32; modifiers: UInt16): OSErr; external name '_QTVRMouseUpExtended';
  1025. {
  1026. =================================================================================================
  1027. Intercept Routines
  1028. -------------------------------------------------------------------------------------------------
  1029. }
  1030. {
  1031. * QTVRInstallInterceptProc()
  1032. *
  1033. * Availability:
  1034. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1035. * CarbonLib: in CarbonLib 1.1 and later
  1036. * Mac OS X: in version 10.0 and later
  1037. * Windows: in QTVR.lib 2.1 and later
  1038. }
  1039. function QTVRInstallInterceptProc(qtvr: QTVRInstance; selector: QTVRProcSelector; interceptProc: QTVRInterceptUPP; refCon: SInt32; flags: UInt32): OSErr; external name '_QTVRInstallInterceptProc';
  1040. {
  1041. * QTVRCallInterceptedProc()
  1042. *
  1043. * Availability:
  1044. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1045. * CarbonLib: in CarbonLib 1.1 and later
  1046. * Mac OS X: in version 10.0 and later
  1047. * Windows: in QTVR.lib 2.1 and later
  1048. }
  1049. function QTVRCallInterceptedProc(qtvr: QTVRInstance; var qtvrMsg: QTVRInterceptRecord): OSErr; external name '_QTVRCallInterceptedProc';
  1050. {
  1051. =================================================================================================
  1052. Object Movie Specific Calls
  1053. -------------------------------------------------------------------------------------------------
  1054. QTVRGetCurrentMouseMode requires QTRVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10)
  1055. }
  1056. {
  1057. * QTVRGetCurrentMouseMode()
  1058. *
  1059. * Availability:
  1060. * Non-Carbon CFM: in QuickTimeVRLib 2.1 and later
  1061. * CarbonLib: in CarbonLib 1.1 and later
  1062. * Mac OS X: in version 10.0 and later
  1063. * Windows: in QTVR.lib 2.1 and later
  1064. }
  1065. function QTVRGetCurrentMouseMode(qtvr: QTVRInstance): UInt32; external name '_QTVRGetCurrentMouseMode';
  1066. {
  1067. * QTVRSetFrameRate()
  1068. *
  1069. * Availability:
  1070. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1071. * CarbonLib: in CarbonLib 1.1 and later
  1072. * Mac OS X: in version 10.0 and later
  1073. * Windows: in QTVR.lib 2.1 and later
  1074. }
  1075. function QTVRSetFrameRate(qtvr: QTVRInstance; rate: Single): OSErr; external name '_QTVRSetFrameRate';
  1076. {
  1077. * QTVRGetFrameRate()
  1078. *
  1079. * Availability:
  1080. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1081. * CarbonLib: in CarbonLib 1.1 and later
  1082. * Mac OS X: in version 10.0 and later
  1083. * Windows: in QTVR.lib 2.1 and later
  1084. }
  1085. function QTVRGetFrameRate(qtvr: QTVRInstance): Single; external name '_QTVRGetFrameRate';
  1086. {
  1087. * QTVRSetViewRate()
  1088. *
  1089. * Availability:
  1090. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1091. * CarbonLib: in CarbonLib 1.1 and later
  1092. * Mac OS X: in version 10.0 and later
  1093. * Windows: in QTVR.lib 2.1 and later
  1094. }
  1095. function QTVRSetViewRate(qtvr: QTVRInstance; rate: Single): OSErr; external name '_QTVRSetViewRate';
  1096. {
  1097. * QTVRGetViewRate()
  1098. *
  1099. * Availability:
  1100. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1101. * CarbonLib: in CarbonLib 1.1 and later
  1102. * Mac OS X: in version 10.0 and later
  1103. * Windows: in QTVR.lib 2.1 and later
  1104. }
  1105. function QTVRGetViewRate(qtvr: QTVRInstance): Single; external name '_QTVRGetViewRate';
  1106. {
  1107. * QTVRSetViewCurrentTime()
  1108. *
  1109. * Availability:
  1110. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1111. * CarbonLib: in CarbonLib 1.1 and later
  1112. * Mac OS X: in version 10.0 and later
  1113. * Windows: in QTVR.lib 2.1 and later
  1114. }
  1115. function QTVRSetViewCurrentTime(qtvr: QTVRInstance; time: TimeValue): OSErr; external name '_QTVRSetViewCurrentTime';
  1116. {
  1117. * QTVRGetViewCurrentTime()
  1118. *
  1119. * Availability:
  1120. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1121. * CarbonLib: in CarbonLib 1.1 and later
  1122. * Mac OS X: in version 10.0 and later
  1123. * Windows: in QTVR.lib 2.1 and later
  1124. }
  1125. function QTVRGetViewCurrentTime(qtvr: QTVRInstance): TimeValue; external name '_QTVRGetViewCurrentTime';
  1126. {
  1127. * QTVRGetCurrentViewDuration()
  1128. *
  1129. * Availability:
  1130. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1131. * CarbonLib: in CarbonLib 1.1 and later
  1132. * Mac OS X: in version 10.0 and later
  1133. * Windows: in QTVR.lib 2.1 and later
  1134. }
  1135. function QTVRGetCurrentViewDuration(qtvr: QTVRInstance): TimeValue; external name '_QTVRGetCurrentViewDuration';
  1136. {
  1137. =================================================================================================
  1138. View State Calls - QTVR Object Only
  1139. -------------------------------------------------------------------------------------------------
  1140. }
  1141. {
  1142. * QTVRSetViewState()
  1143. *
  1144. * Availability:
  1145. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1146. * CarbonLib: in CarbonLib 1.1 and later
  1147. * Mac OS X: in version 10.0 and later
  1148. * Windows: in QTVR.lib 2.1 and later
  1149. }
  1150. function QTVRSetViewState(qtvr: QTVRInstance; viewStateType: QTVRViewStateType; state: UInt16): OSErr; external name '_QTVRSetViewState';
  1151. {
  1152. * QTVRGetViewState()
  1153. *
  1154. * Availability:
  1155. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1156. * CarbonLib: in CarbonLib 1.1 and later
  1157. * Mac OS X: in version 10.0 and later
  1158. * Windows: in QTVR.lib 2.1 and later
  1159. }
  1160. function QTVRGetViewState(qtvr: QTVRInstance; viewStateType: QTVRViewStateType; var state: UInt16): OSErr; external name '_QTVRGetViewState';
  1161. {
  1162. * QTVRGetViewStateCount()
  1163. *
  1164. * Availability:
  1165. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1166. * CarbonLib: in CarbonLib 1.1 and later
  1167. * Mac OS X: in version 10.0 and later
  1168. * Windows: in QTVR.lib 2.1 and later
  1169. }
  1170. function QTVRGetViewStateCount(qtvr: QTVRInstance): UInt16; external name '_QTVRGetViewStateCount';
  1171. {
  1172. * QTVRSetAnimationSetting()
  1173. *
  1174. * Availability:
  1175. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1176. * CarbonLib: in CarbonLib 1.1 and later
  1177. * Mac OS X: in version 10.0 and later
  1178. * Windows: in QTVR.lib 2.1 and later
  1179. }
  1180. function QTVRSetAnimationSetting(qtvr: QTVRInstance; setting: QTVRObjectAnimationSetting; enable: boolean): OSErr; external name '_QTVRSetAnimationSetting';
  1181. {
  1182. * QTVRGetAnimationSetting()
  1183. *
  1184. * Availability:
  1185. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1186. * CarbonLib: in CarbonLib 1.1 and later
  1187. * Mac OS X: in version 10.0 and later
  1188. * Windows: in QTVR.lib 2.1 and later
  1189. }
  1190. function QTVRGetAnimationSetting(qtvr: QTVRInstance; setting: QTVRObjectAnimationSetting; var enable: boolean): OSErr; external name '_QTVRGetAnimationSetting';
  1191. {
  1192. * QTVRSetControlSetting()
  1193. *
  1194. * Availability:
  1195. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1196. * CarbonLib: in CarbonLib 1.1 and later
  1197. * Mac OS X: in version 10.0 and later
  1198. * Windows: in QTVR.lib 2.1 and later
  1199. }
  1200. function QTVRSetControlSetting(qtvr: QTVRInstance; setting: QTVRControlSetting; enable: boolean): OSErr; external name '_QTVRSetControlSetting';
  1201. {
  1202. * QTVRGetControlSetting()
  1203. *
  1204. * Availability:
  1205. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1206. * CarbonLib: in CarbonLib 1.1 and later
  1207. * Mac OS X: in version 10.0 and later
  1208. * Windows: in QTVR.lib 2.1 and later
  1209. }
  1210. function QTVRGetControlSetting(qtvr: QTVRInstance; setting: QTVRControlSetting; var enable: boolean): OSErr; external name '_QTVRGetControlSetting';
  1211. {
  1212. * QTVREnableFrameAnimation()
  1213. *
  1214. * Availability:
  1215. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1216. * CarbonLib: in CarbonLib 1.1 and later
  1217. * Mac OS X: in version 10.0 and later
  1218. * Windows: in QTVR.lib 2.1 and later
  1219. }
  1220. function QTVREnableFrameAnimation(qtvr: QTVRInstance; enable: boolean): OSErr; external name '_QTVREnableFrameAnimation';
  1221. {
  1222. * QTVRGetFrameAnimation()
  1223. *
  1224. * Availability:
  1225. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1226. * CarbonLib: in CarbonLib 1.1 and later
  1227. * Mac OS X: in version 10.0 and later
  1228. * Windows: in QTVR.lib 2.1 and later
  1229. }
  1230. function QTVRGetFrameAnimation(qtvr: QTVRInstance): boolean; external name '_QTVRGetFrameAnimation';
  1231. {
  1232. * QTVREnableViewAnimation()
  1233. *
  1234. * Availability:
  1235. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1236. * CarbonLib: in CarbonLib 1.1 and later
  1237. * Mac OS X: in version 10.0 and later
  1238. * Windows: in QTVR.lib 2.1 and later
  1239. }
  1240. function QTVREnableViewAnimation(qtvr: QTVRInstance; enable: boolean): OSErr; external name '_QTVREnableViewAnimation';
  1241. {
  1242. * QTVRGetViewAnimation()
  1243. *
  1244. * Availability:
  1245. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1246. * CarbonLib: in CarbonLib 1.1 and later
  1247. * Mac OS X: in version 10.0 and later
  1248. * Windows: in QTVR.lib 2.1 and later
  1249. }
  1250. function QTVRGetViewAnimation(qtvr: QTVRInstance): boolean; external name '_QTVRGetViewAnimation';
  1251. {
  1252. =================================================================================================
  1253. Imaging Characteristics
  1254. -------------------------------------------------------------------------------------------------
  1255. }
  1256. {
  1257. * QTVRSetVisible()
  1258. *
  1259. * Availability:
  1260. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1261. * CarbonLib: in CarbonLib 1.1 and later
  1262. * Mac OS X: in version 10.0 and later
  1263. * Windows: in QTVR.lib 2.1 and later
  1264. }
  1265. function QTVRSetVisible(qtvr: QTVRInstance; visible: boolean): OSErr; external name '_QTVRSetVisible';
  1266. {
  1267. * QTVRGetVisible()
  1268. *
  1269. * Availability:
  1270. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1271. * CarbonLib: in CarbonLib 1.1 and later
  1272. * Mac OS X: in version 10.0 and later
  1273. * Windows: in QTVR.lib 2.1 and later
  1274. }
  1275. function QTVRGetVisible(qtvr: QTVRInstance): boolean; external name '_QTVRGetVisible';
  1276. {
  1277. * QTVRSetImagingProperty()
  1278. *
  1279. * Availability:
  1280. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1281. * CarbonLib: in CarbonLib 1.1 and later
  1282. * Mac OS X: in version 10.0 and later
  1283. * Windows: in QTVR.lib 2.1 and later
  1284. }
  1285. function QTVRSetImagingProperty(qtvr: QTVRInstance; imagingMode: QTVRImagingMode; imagingProperty: UInt32; propertyValue: SInt32): OSErr; external name '_QTVRSetImagingProperty';
  1286. {
  1287. * QTVRGetImagingProperty()
  1288. *
  1289. * Availability:
  1290. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1291. * CarbonLib: in CarbonLib 1.1 and later
  1292. * Mac OS X: in version 10.0 and later
  1293. * Windows: in QTVR.lib 2.1 and later
  1294. }
  1295. function QTVRGetImagingProperty(qtvr: QTVRInstance; imagingMode: QTVRImagingMode; imagingProperty: UInt32; var propertyValue: SInt32): OSErr; external name '_QTVRGetImagingProperty';
  1296. {
  1297. * QTVRUpdate()
  1298. *
  1299. * Availability:
  1300. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1301. * CarbonLib: in CarbonLib 1.1 and later
  1302. * Mac OS X: in version 10.0 and later
  1303. * Windows: in QTVR.lib 2.1 and later
  1304. }
  1305. function QTVRUpdate(qtvr: QTVRInstance; imagingMode: QTVRImagingMode): OSErr; external name '_QTVRUpdate';
  1306. {
  1307. * QTVRBeginUpdateStream()
  1308. *
  1309. * Availability:
  1310. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1311. * CarbonLib: in CarbonLib 1.1 and later
  1312. * Mac OS X: in version 10.0 and later
  1313. * Windows: in QTVR.lib 2.1 and later
  1314. }
  1315. function QTVRBeginUpdateStream(qtvr: QTVRInstance; imagingMode: QTVRImagingMode): OSErr; external name '_QTVRBeginUpdateStream';
  1316. {
  1317. * QTVREndUpdateStream()
  1318. *
  1319. * Availability:
  1320. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1321. * CarbonLib: in CarbonLib 1.1 and later
  1322. * Mac OS X: in version 10.0 and later
  1323. * Windows: in QTVR.lib 2.1 and later
  1324. }
  1325. function QTVREndUpdateStream(qtvr: QTVRInstance): OSErr; external name '_QTVREndUpdateStream';
  1326. {
  1327. * QTVRSetTransitionProperty()
  1328. *
  1329. * Availability:
  1330. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1331. * CarbonLib: in CarbonLib 1.1 and later
  1332. * Mac OS X: in version 10.0 and later
  1333. * Windows: in QTVR.lib 2.1 and later
  1334. }
  1335. function QTVRSetTransitionProperty(qtvr: QTVRInstance; transitionType: UInt32; transitionProperty: UInt32; transitionValue: SInt32): OSErr; external name '_QTVRSetTransitionProperty';
  1336. {
  1337. * QTVREnableTransition()
  1338. *
  1339. * Availability:
  1340. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1341. * CarbonLib: in CarbonLib 1.1 and later
  1342. * Mac OS X: in version 10.0 and later
  1343. * Windows: in QTVR.lib 2.1 and later
  1344. }
  1345. function QTVREnableTransition(qtvr: QTVRInstance; transitionType: UInt32; enable: boolean): OSErr; external name '_QTVREnableTransition';
  1346. {
  1347. =================================================================================================
  1348. Basic Conversion and Math Routines
  1349. -------------------------------------------------------------------------------------------------
  1350. }
  1351. {
  1352. * QTVRSetAngularUnits()
  1353. *
  1354. * Availability:
  1355. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1356. * CarbonLib: in CarbonLib 1.1 and later
  1357. * Mac OS X: in version 10.0 and later
  1358. * Windows: in QTVR.lib 2.1 and later
  1359. }
  1360. function QTVRSetAngularUnits(qtvr: QTVRInstance; units: QTVRAngularUnits): OSErr; external name '_QTVRSetAngularUnits';
  1361. {
  1362. * QTVRGetAngularUnits()
  1363. *
  1364. * Availability:
  1365. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1366. * CarbonLib: in CarbonLib 1.1 and later
  1367. * Mac OS X: in version 10.0 and later
  1368. * Windows: in QTVR.lib 2.1 and later
  1369. }
  1370. function QTVRGetAngularUnits(qtvr: QTVRInstance): QTVRAngularUnits; external name '_QTVRGetAngularUnits';
  1371. { Pano specific routines }
  1372. {
  1373. * QTVRPtToAngles()
  1374. *
  1375. * Availability:
  1376. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1377. * CarbonLib: in CarbonLib 1.1 and later
  1378. * Mac OS X: in version 10.0 and later
  1379. * Windows: in QTVR.lib 2.1 and later
  1380. }
  1381. function QTVRPtToAngles(qtvr: QTVRInstance; pt: Point; var panAngle: Single; var tiltAngle: Single): OSErr; external name '_QTVRPtToAngles';
  1382. {
  1383. * QTVRCoordToAngles()
  1384. *
  1385. * Availability:
  1386. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1387. * CarbonLib: in CarbonLib 1.1 and later
  1388. * Mac OS X: in version 10.0 and later
  1389. * Windows: in QTVR.lib 2.1 and later
  1390. }
  1391. function QTVRCoordToAngles(qtvr: QTVRInstance; var coord: QTVRFloatPoint; var panAngle: Single; var tiltAngle: Single): OSErr; external name '_QTVRCoordToAngles';
  1392. {
  1393. * QTVRAnglesToCoord()
  1394. *
  1395. * Availability:
  1396. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1397. * CarbonLib: in CarbonLib 1.1 and later
  1398. * Mac OS X: in version 10.0 and later
  1399. * Windows: in QTVR.lib 2.1 and later
  1400. }
  1401. function QTVRAnglesToCoord(qtvr: QTVRInstance; panAngle: Single; tiltAngle: Single; var coord: QTVRFloatPoint): OSErr; external name '_QTVRAnglesToCoord';
  1402. { Object specific routines }
  1403. {
  1404. * QTVRPanToColumn()
  1405. *
  1406. * Availability:
  1407. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1408. * CarbonLib: in CarbonLib 1.1 and later
  1409. * Mac OS X: in version 10.0 and later
  1410. * Windows: in QTVR.lib 2.1 and later
  1411. }
  1412. function QTVRPanToColumn(qtvr: QTVRInstance; panAngle: Single): SInt16; external name '_QTVRPanToColumn';
  1413. { zero based }
  1414. {
  1415. * QTVRColumnToPan()
  1416. *
  1417. * Availability:
  1418. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1419. * CarbonLib: in CarbonLib 1.1 and later
  1420. * Mac OS X: in version 10.0 and later
  1421. * Windows: in QTVR.lib 2.1 and later
  1422. }
  1423. function QTVRColumnToPan(qtvr: QTVRInstance; column: SInt16): Single; external name '_QTVRColumnToPan';
  1424. { zero based }
  1425. {
  1426. * QTVRTiltToRow()
  1427. *
  1428. * Availability:
  1429. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1430. * CarbonLib: in CarbonLib 1.1 and later
  1431. * Mac OS X: in version 10.0 and later
  1432. * Windows: in QTVR.lib 2.1 and later
  1433. }
  1434. function QTVRTiltToRow(qtvr: QTVRInstance; tiltAngle: Single): SInt16; external name '_QTVRTiltToRow';
  1435. { zero based }
  1436. {
  1437. * QTVRRowToTilt()
  1438. *
  1439. * Availability:
  1440. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1441. * CarbonLib: in CarbonLib 1.1 and later
  1442. * Mac OS X: in version 10.0 and later
  1443. * Windows: in QTVR.lib 2.1 and later
  1444. }
  1445. function QTVRRowToTilt(qtvr: QTVRInstance; row: SInt16): Single; external name '_QTVRRowToTilt';
  1446. { zero based }
  1447. {
  1448. * QTVRWrapAndConstrain()
  1449. *
  1450. * Availability:
  1451. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1452. * CarbonLib: in CarbonLib 1.1 and later
  1453. * Mac OS X: in version 10.0 and later
  1454. * Windows: in QTVR.lib 2.1 and later
  1455. }
  1456. function QTVRWrapAndConstrain(qtvr: QTVRInstance; kind: SInt16; value: Single; var result: Single): OSErr; external name '_QTVRWrapAndConstrain';
  1457. {
  1458. =================================================================================================
  1459. Interaction Routines
  1460. -------------------------------------------------------------------------------------------------
  1461. }
  1462. {
  1463. * QTVRSetEnteringNodeProc()
  1464. *
  1465. * Availability:
  1466. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1467. * CarbonLib: in CarbonLib 1.1 and later
  1468. * Mac OS X: in version 10.0 and later
  1469. * Windows: in QTVR.lib 2.1 and later
  1470. }
  1471. function QTVRSetEnteringNodeProc(qtvr: QTVRInstance; enteringNodeProc: QTVREnteringNodeUPP; refCon: SInt32; flags: UInt32): OSErr; external name '_QTVRSetEnteringNodeProc';
  1472. {
  1473. * QTVRSetLeavingNodeProc()
  1474. *
  1475. * Availability:
  1476. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1477. * CarbonLib: in CarbonLib 1.1 and later
  1478. * Mac OS X: in version 10.0 and later
  1479. * Windows: in QTVR.lib 2.1 and later
  1480. }
  1481. function QTVRSetLeavingNodeProc(qtvr: QTVRInstance; leavingNodeProc: QTVRLeavingNodeUPP; refCon: SInt32; flags: UInt32): OSErr; external name '_QTVRSetLeavingNodeProc';
  1482. {
  1483. * QTVRSetInteractionProperty()
  1484. *
  1485. * Availability:
  1486. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1487. * CarbonLib: in CarbonLib 1.1 and later
  1488. * Mac OS X: in version 10.0 and later
  1489. * Windows: in QTVR.lib 2.1 and later
  1490. }
  1491. function QTVRSetInteractionProperty(qtvr: QTVRInstance; proprty: UInt32; value: UnivPtr): OSErr; external name '_QTVRSetInteractionProperty';
  1492. {
  1493. * QTVRGetInteractionProperty()
  1494. *
  1495. * Availability:
  1496. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1497. * CarbonLib: in CarbonLib 1.1 and later
  1498. * Mac OS X: in version 10.0 and later
  1499. * Windows: in QTVR.lib 2.1 and later
  1500. }
  1501. function QTVRGetInteractionProperty(qtvr: QTVRInstance; proprty: UInt32; value: UnivPtr): OSErr; external name '_QTVRGetInteractionProperty';
  1502. {
  1503. * QTVRReplaceCursor()
  1504. *
  1505. * Availability:
  1506. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1507. * CarbonLib: in CarbonLib 1.1 and later
  1508. * Mac OS X: in version 10.0 and later
  1509. * Windows: in QTVR.lib 2.1 and later
  1510. }
  1511. function QTVRReplaceCursor(qtvr: QTVRInstance; var cursRecord: QTVRCursorRecord): OSErr; external name '_QTVRReplaceCursor';
  1512. {
  1513. =================================================================================================
  1514. Viewing Limits and Constraints
  1515. -------------------------------------------------------------------------------------------------
  1516. }
  1517. {
  1518. * QTVRGetViewingLimits()
  1519. *
  1520. * Availability:
  1521. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1522. * CarbonLib: in CarbonLib 1.1 and later
  1523. * Mac OS X: in version 10.0 and later
  1524. * Windows: in QTVR.lib 2.1 and later
  1525. }
  1526. function QTVRGetViewingLimits(qtvr: QTVRInstance; kind: UInt16; var minValue: Single; var maxValue: Single): OSErr; external name '_QTVRGetViewingLimits';
  1527. {
  1528. * QTVRGetConstraintStatus()
  1529. *
  1530. * Availability:
  1531. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1532. * CarbonLib: in CarbonLib 1.1 and later
  1533. * Mac OS X: in version 10.0 and later
  1534. * Windows: in QTVR.lib 2.1 and later
  1535. }
  1536. function QTVRGetConstraintStatus(qtvr: QTVRInstance): UInt32; external name '_QTVRGetConstraintStatus';
  1537. {
  1538. * QTVRGetConstraints()
  1539. *
  1540. * Availability:
  1541. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1542. * CarbonLib: in CarbonLib 1.1 and later
  1543. * Mac OS X: in version 10.0 and later
  1544. * Windows: in QTVR.lib 2.1 and later
  1545. }
  1546. function QTVRGetConstraints(qtvr: QTVRInstance; kind: UInt16; var minValue: Single; var maxValue: Single): OSErr; external name '_QTVRGetConstraints';
  1547. {
  1548. * QTVRSetConstraints()
  1549. *
  1550. * Availability:
  1551. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1552. * CarbonLib: in CarbonLib 1.1 and later
  1553. * Mac OS X: in version 10.0 and later
  1554. * Windows: in QTVR.lib 2.1 and later
  1555. }
  1556. function QTVRSetConstraints(qtvr: QTVRInstance; kind: UInt16; minValue: Single; maxValue: Single): OSErr; external name '_QTVRSetConstraints';
  1557. {
  1558. =================================================================================================
  1559. Back Buffer Memory Management
  1560. -------------------------------------------------------------------------------------------------
  1561. }
  1562. {
  1563. * QTVRGetAvailableResolutions()
  1564. *
  1565. * Availability:
  1566. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1567. * CarbonLib: in CarbonLib 1.1 and later
  1568. * Mac OS X: in version 10.0 and later
  1569. * Windows: in QTVR.lib 2.1 and later
  1570. }
  1571. function QTVRGetAvailableResolutions(qtvr: QTVRInstance; var resolutionsMask: UInt16): OSErr; external name '_QTVRGetAvailableResolutions';
  1572. { These require QTVR 2.1 (kQTVRAPIMajorVersion02 + kQTVRAPIMinorVersion10) }
  1573. {
  1574. * QTVRGetBackBufferMemInfo()
  1575. *
  1576. * Availability:
  1577. * Non-Carbon CFM: in QuickTimeVRLib 2.1 and later
  1578. * CarbonLib: in CarbonLib 1.1 and later
  1579. * Mac OS X: in version 10.0 and later
  1580. * Windows: in QTVR.lib 2.1 and later
  1581. }
  1582. function QTVRGetBackBufferMemInfo(qtvr: QTVRInstance; geometry: UInt32; resolution: UInt16; cachePixelFormat: UInt32; var minCacheBytes: SInt32; var suggestedCacheBytes: SInt32; var fullCacheBytes: SInt32): OSErr; external name '_QTVRGetBackBufferMemInfo';
  1583. {
  1584. * QTVRGetBackBufferSettings()
  1585. *
  1586. * Availability:
  1587. * Non-Carbon CFM: in QuickTimeVRLib 2.1 and later
  1588. * CarbonLib: in CarbonLib 1.1 and later
  1589. * Mac OS X: in version 10.0 and later
  1590. * Windows: in QTVR.lib 2.1 and later
  1591. }
  1592. function QTVRGetBackBufferSettings(qtvr: QTVRInstance; var geometry: UInt32; var resolution: UInt16; var cachePixelFormat: UInt32; var cacheSize: SInt16): OSErr; external name '_QTVRGetBackBufferSettings';
  1593. {
  1594. * QTVRSetBackBufferPrefs()
  1595. *
  1596. * Availability:
  1597. * Non-Carbon CFM: in QuickTimeVRLib 2.1 and later
  1598. * CarbonLib: in CarbonLib 1.1 and later
  1599. * Mac OS X: in version 10.0 and later
  1600. * Windows: in QTVR.lib 2.1 and later
  1601. }
  1602. function QTVRSetBackBufferPrefs(qtvr: QTVRInstance; geometry: UInt32; resolution: UInt16; cachePixelFormat: UInt32; cacheSize: SInt16): OSErr; external name '_QTVRSetBackBufferPrefs';
  1603. {
  1604. =================================================================================================
  1605. Buffer Access
  1606. -------------------------------------------------------------------------------------------------
  1607. }
  1608. {
  1609. * QTVRSetPrescreenImagingCompleteProc()
  1610. *
  1611. * Availability:
  1612. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1613. * CarbonLib: in CarbonLib 1.1 and later
  1614. * Mac OS X: in version 10.0 and later
  1615. * Windows: in QTVR.lib 2.1 and later
  1616. }
  1617. function QTVRSetPrescreenImagingCompleteProc(qtvr: QTVRInstance; imagingCompleteProc: QTVRImagingCompleteUPP; refCon: SInt32; flags: UInt32): OSErr; external name '_QTVRSetPrescreenImagingCompleteProc';
  1618. {
  1619. * QTVRSetBackBufferImagingProc()
  1620. *
  1621. * Availability:
  1622. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1623. * CarbonLib: in CarbonLib 1.1 and later
  1624. * Mac OS X: in version 10.0 and later
  1625. * Windows: in QTVR.lib 2.1 and later
  1626. }
  1627. function QTVRSetBackBufferImagingProc(qtvr: QTVRInstance; backBufferImagingProc: QTVRBackBufferImagingUPP; numAreas: UInt16; var areasOfInterest: QTVRAreaOfInterest; refCon: SInt32): OSErr; external name '_QTVRSetBackBufferImagingProc';
  1628. {
  1629. * QTVRRefreshBackBuffer()
  1630. *
  1631. * Availability:
  1632. * Non-Carbon CFM: in QuickTimeVRLib 2.0 and later
  1633. * CarbonLib: in CarbonLib 1.1 and later
  1634. * Mac OS X: in version 10.0 and later
  1635. * Windows: in QTVR.lib 2.1 and later
  1636. }
  1637. function QTVRRefreshBackBuffer(qtvr: QTVRInstance; flags: UInt32): OSErr; external name '_QTVRRefreshBackBuffer';
  1638. {
  1639. =================================================================================================
  1640. Old Names
  1641. -------------------------------------------------------------------------------------------------
  1642. }
  1643. {$ifc OLDROUTINENAMES}
  1644. type
  1645. CursorRecord = QTVRCursorRecord;
  1646. CursorRecordPtr = ^CursorRecord;
  1647. AreaOfInterest = QTVRAreaOfInterest;
  1648. AreaOfInterestPtr = ^AreaOfInterest;
  1649. FloatPoint = QTVRFloatPoint;
  1650. FloatPointPtr = ^FloatPoint;
  1651. LeavingNodeProcPtr = QTVRLeavingNodeProcPtr;
  1652. LeavingNodeUPP = QTVRLeavingNodeUPP;
  1653. EnteringNodeProcPtr = QTVREnteringNodeProcPtr;
  1654. EnteringNodeUPP = QTVREnteringNodeUPP;
  1655. MouseOverHotSpotProcPtr = QTVRMouseOverHotSpotProcPtr;
  1656. MouseOverHotSpotUPP = QTVRMouseOverHotSpotUPP;
  1657. ImagingCompleteProcPtr = QTVRImagingCompleteProcPtr;
  1658. ImagingCompleteUPP = QTVRImagingCompleteUPP;
  1659. BackBufferImagingProcPtr = QTVRBackBufferImagingProcPtr;
  1660. BackBufferImagingUPP = QTVRBackBufferImagingUPP;
  1661. {$endc} {OLDROUTINENAMES}
  1662. {$ALIGN MAC68K}
  1663. end.