123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671 |
- {
- File: QuickTime/QuickTimeVRFormat.h
-
- Contains: QuickTime VR interfaces
-
- Version: QuickTime 7.7.1
-
- Copyright: © 1997-2012 by Apple Inc., all rights reserved.
-
- Bugs?: For bug reports, consult the following page on
- the World Wide Web:
-
- http://bugs.freepascal.org
-
- }
- { Pascal Translation Updated: Jonas Maebe, <[email protected]>, October 2009 }
- { Pascal Translation Updated: Jonas Maebe, <[email protected]>, October 2012 }
- {
- Modified for use with Free Pascal
- Version 308
- Please report any bugs to <[email protected]>
- }
- {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
- {$mode macpas}
- {$modeswitch cblocks}
- {$packenum 1}
- {$macro on}
- {$inline on}
- {$calling mwpascal}
- {$IFNDEF FPC_DOTTEDUNITS}
- unit QuickTimeVRFormat;
- {$ENDIF FPC_DOTTEDUNITS}
- interface
- {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
- {$setc GAP_INTERFACES_VERSION := $0308}
- {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
- {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
- {$endc}
- {$ifc defined CPUPOWERPC and defined CPUI386}
- {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
- {$endc}
- {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
- {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
- {$endc}
- {$ifc not defined __ppc__ and defined CPUPOWERPC32}
- {$setc __ppc__ := 1}
- {$elsec}
- {$setc __ppc__ := 0}
- {$endc}
- {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
- {$setc __ppc64__ := 1}
- {$elsec}
- {$setc __ppc64__ := 0}
- {$endc}
- {$ifc not defined __i386__ and defined CPUI386}
- {$setc __i386__ := 1}
- {$elsec}
- {$setc __i386__ := 0}
- {$endc}
- {$ifc not defined __x86_64__ and defined CPUX86_64}
- {$setc __x86_64__ := 1}
- {$elsec}
- {$setc __x86_64__ := 0}
- {$endc}
- {$ifc not defined __arm__ and defined CPUARM}
- {$setc __arm__ := 1}
- {$elsec}
- {$setc __arm__ := 0}
- {$endc}
- {$ifc not defined __arm64__ and defined CPUAARCH64}
- {$setc __arm64__ := 1}
- {$elsec}
- {$setc __arm64__ := 0}
- {$endc}
- {$ifc defined cpu64}
- {$setc __LP64__ := 1}
- {$elsec}
- {$setc __LP64__ := 0}
- {$endc}
- {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
- {$error Conflicting definitions for __ppc__ and __i386__}
- {$endc}
- {$ifc defined __ppc__ and __ppc__}
- {$setc TARGET_CPU_PPC := TRUE}
- {$setc TARGET_CPU_PPC64 := FALSE}
- {$setc TARGET_CPU_X86 := FALSE}
- {$setc TARGET_CPU_X86_64 := FALSE}
- {$setc TARGET_CPU_ARM := FALSE}
- {$setc TARGET_CPU_ARM64 := FALSE}
- {$setc TARGET_OS_MAC := TRUE}
- {$setc TARGET_OS_IPHONE := FALSE}
- {$setc TARGET_IPHONE_SIMULATOR := FALSE}
- {$setc TARGET_OS_EMBEDDED := FALSE}
- {$elifc defined __ppc64__ and __ppc64__}
- {$setc TARGET_CPU_PPC := FALSE}
- {$setc TARGET_CPU_PPC64 := TRUE}
- {$setc TARGET_CPU_X86 := FALSE}
- {$setc TARGET_CPU_X86_64 := FALSE}
- {$setc TARGET_CPU_ARM := FALSE}
- {$setc TARGET_CPU_ARM64 := FALSE}
- {$setc TARGET_OS_MAC := TRUE}
- {$setc TARGET_OS_IPHONE := FALSE}
- {$setc TARGET_IPHONE_SIMULATOR := FALSE}
- {$setc TARGET_OS_EMBEDDED := FALSE}
- {$elifc defined __i386__ and __i386__}
- {$setc TARGET_CPU_PPC := FALSE}
- {$setc TARGET_CPU_PPC64 := FALSE}
- {$setc TARGET_CPU_X86 := TRUE}
- {$setc TARGET_CPU_X86_64 := FALSE}
- {$setc TARGET_CPU_ARM := FALSE}
- {$setc TARGET_CPU_ARM64 := FALSE}
- {$ifc defined iphonesim}
- {$setc TARGET_OS_MAC := FALSE}
- {$setc TARGET_OS_IPHONE := TRUE}
- {$setc TARGET_IPHONE_SIMULATOR := TRUE}
- {$elsec}
- {$setc TARGET_OS_MAC := TRUE}
- {$setc TARGET_OS_IPHONE := FALSE}
- {$setc TARGET_IPHONE_SIMULATOR := FALSE}
- {$endc}
- {$setc TARGET_OS_EMBEDDED := FALSE}
- {$elifc defined __x86_64__ and __x86_64__}
- {$setc TARGET_CPU_PPC := FALSE}
- {$setc TARGET_CPU_PPC64 := FALSE}
- {$setc TARGET_CPU_X86 := FALSE}
- {$setc TARGET_CPU_X86_64 := TRUE}
- {$setc TARGET_CPU_ARM := FALSE}
- {$setc TARGET_CPU_ARM64 := FALSE}
- {$ifc defined iphonesim}
- {$setc TARGET_OS_MAC := FALSE}
- {$setc TARGET_OS_IPHONE := TRUE}
- {$setc TARGET_IPHONE_SIMULATOR := TRUE}
- {$elsec}
- {$setc TARGET_OS_MAC := TRUE}
- {$setc TARGET_OS_IPHONE := FALSE}
- {$setc TARGET_IPHONE_SIMULATOR := FALSE}
- {$endc}
- {$setc TARGET_OS_EMBEDDED := FALSE}
- {$elifc defined __arm__ and __arm__}
- {$setc TARGET_CPU_PPC := FALSE}
- {$setc TARGET_CPU_PPC64 := FALSE}
- {$setc TARGET_CPU_X86 := FALSE}
- {$setc TARGET_CPU_X86_64 := FALSE}
- {$setc TARGET_CPU_ARM := TRUE}
- {$setc TARGET_CPU_ARM64 := FALSE}
- {$setc TARGET_OS_MAC := FALSE}
- {$setc TARGET_OS_IPHONE := TRUE}
- {$setc TARGET_IPHONE_SIMULATOR := FALSE}
- {$setc TARGET_OS_EMBEDDED := TRUE}
- {$elifc defined __arm64__ and __arm64__}
- {$setc TARGET_CPU_PPC := FALSE}
- {$setc TARGET_CPU_PPC64 := FALSE}
- {$setc TARGET_CPU_X86 := FALSE}
- {$setc TARGET_CPU_X86_64 := FALSE}
- {$setc TARGET_CPU_ARM := FALSE}
- {$setc TARGET_CPU_ARM64 := TRUE}
- {$ifc defined ios}
- {$setc TARGET_OS_MAC := FALSE}
- {$setc TARGET_OS_IPHONE := TRUE}
- {$setc TARGET_OS_EMBEDDED := TRUE}
- {$elsec}
- {$setc TARGET_OS_MAC := TRUE}
- {$setc TARGET_OS_IPHONE := FALSE}
- {$setc TARGET_OS_EMBEDDED := FALSE}
- {$endc}
- {$setc TARGET_IPHONE_SIMULATOR := FALSE}
- {$elsec}
- {$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
- {$endc}
- {$ifc defined __LP64__ and __LP64__ }
- {$setc TARGET_CPU_64 := TRUE}
- {$elsec}
- {$setc TARGET_CPU_64 := FALSE}
- {$endc}
- {$ifc defined FPC_BIG_ENDIAN}
- {$setc TARGET_RT_BIG_ENDIAN := TRUE}
- {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
- {$elifc defined FPC_LITTLE_ENDIAN}
- {$setc TARGET_RT_BIG_ENDIAN := FALSE}
- {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
- {$elsec}
- {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
- {$endc}
- {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
- {$setc CALL_NOT_IN_CARBON := FALSE}
- {$setc OLDROUTINENAMES := FALSE}
- {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
- {$setc OPAQUE_UPP_TYPES := TRUE}
- {$setc OTCARBONAPPLICATION := TRUE}
- {$setc OTKERNEL := FALSE}
- {$setc PM_USE_SESSION_APIS := TRUE}
- {$setc TARGET_API_MAC_CARBON := TRUE}
- {$setc TARGET_API_MAC_OS8 := FALSE}
- {$setc TARGET_API_MAC_OSX := TRUE}
- {$setc TARGET_CARBON := TRUE}
- {$setc TARGET_CPU_68K := FALSE}
- {$setc TARGET_CPU_MIPS := FALSE}
- {$setc TARGET_CPU_SPARC := FALSE}
- {$setc TARGET_OS_UNIX := FALSE}
- {$setc TARGET_OS_WIN32 := FALSE}
- {$setc TARGET_RT_MAC_68881 := FALSE}
- {$setc TARGET_RT_MAC_CFM := FALSE}
- {$setc TARGET_RT_MAC_MACHO := TRUE}
- {$setc TYPED_FUNCTION_POINTERS := TRUE}
- {$setc TYPE_BOOL := FALSE}
- {$setc TYPE_EXTENDED := FALSE}
- {$setc TYPE_LONGLONG := TRUE}
- {$IFDEF FPC_DOTTEDUNITS}
- uses MacOsApi.MacTypes,MacOsApi.Movies,MacOsApi.QuickTimeVR;
- {$ELSE FPC_DOTTEDUNITS}
- uses MacTypes,Movies,QuickTimeVR;
- {$ENDIF FPC_DOTTEDUNITS}
- {$endc} {not MACOSALLINCLUDE}
- {$ifc TARGET_OS_MAC}
- {$ALIGN MAC68K}
- { QuickTime is not available to 64-bit clients }
- {$ifc not TARGET_CPU_64}
- { File Format Version numbers }
- const
- kQTVRMajorVersion = 2;
- const
- kQTVRMinorVersion = 0;
- { User data type for the Movie Controller type specifier}
- const
- kQTControllerType = kQTVRControllerSubType; { Atom & ID of where our}
- kQTControllerID = 1; { ...controller name is stored}
- { VRWorld atom types}
- const
- kQTVRWorldHeaderAtomType = FourCharCode('vrsc');
- kQTVRImagingParentAtomType = FourCharCode('imgp');
- kQTVRPanoImagingAtomType = FourCharCode('impn');
- kQTVRObjectImagingAtomType = FourCharCode('imob');
- kQTVRNodeParentAtomType = FourCharCode('vrnp');
- kQTVRNodeIDAtomType = FourCharCode('vrni');
- kQTVRNodeLocationAtomType = FourCharCode('nloc');
- kQTVRCursorParentAtomType = FourCharCode('vrcp'); { New with 2.1}
- kQTVRCursorAtomType = FourCharCode('CURS'); { New with 2.1}
- kQTVRColorCursorAtomType = FourCharCode('crsr'); { New with 2.1}
- { NodeInfo atom types}
- const
- kQTVRNodeHeaderAtomType = FourCharCode('ndhd');
- kQTVRHotSpotParentAtomType = FourCharCode('hspa');
- kQTVRHotSpotAtomType = FourCharCode('hots');
- kQTVRHotSpotInfoAtomType = FourCharCode('hsin');
- kQTVRLinkInfoAtomType = FourCharCode('link');
- { Miscellaneous atom types}
- const
- kQTVRStringAtomType = FourCharCode('vrsg');
- kQTVRStringEncodingAtomType = FourCharCode('vrse'); { New with 2.1}
- kQTVRPanoSampleDataAtomType = FourCharCode('pdat');
- kQTVRObjectInfoAtomType = FourCharCode('obji');
- kQTVRImageTrackRefAtomType = FourCharCode('imtr'); { Parent is kQTVRObjectInfoAtomType. Required if track ref is not 1 as required by 2.0 format.}
- kQTVRHotSpotTrackRefAtomType = FourCharCode('hstr'); { Parent is kQTVRObjectInfoAtomType. Required if track ref is not 1 as required by 2.0 format.}
- kQTVRAngleRangeAtomType = FourCharCode('arng');
- kQTVRTrackRefArrayAtomType = FourCharCode('tref');
- kQTVRPanConstraintAtomType = FourCharCode('pcon');
- kQTVRTiltConstraintAtomType = FourCharCode('tcon');
- kQTVRFOVConstraintAtomType = FourCharCode('fcon');
- kQTVRCubicViewAtomType = FourCharCode('cuvw'); { New with 5.0}
- kQTVRCubicFaceDataAtomType = FourCharCode('cufa'); { New with 5.0}
- const
- kQTVRObjectInfoAtomID = 1;
- kQTVRObjectImageTrackRefAtomID = 1; { New with 2.1, it adds a track reference to select between multiple image tracks}
- kQTVRObjectHotSpotTrackRefAtomID = 1; { New with 2.1, it adds a track reference to select between multiple hotspot tracks}
- { Track reference types}
- const
- kQTVRImageTrackRefType = FourCharCode('imgt');
- kQTVRHotSpotTrackRefType = FourCharCode('hott');
- { Old hot spot types}
- const
- kQTVRHotSpotNavigableType = FourCharCode('navg');
- { Valid bits used in QTVRLinkHotSpotAtom}
- const
- kQTVRValidPan = 1 shl 0;
- kQTVRValidTilt = 1 shl 1;
- kQTVRValidFOV = 1 shl 2;
- kQTVRValidViewCenter = 1 shl 3;
- { Values for flags field in QTVRPanoSampleAtom}
- const
- kQTVRPanoFlagHorizontal = 1 shl 0;
- kQTVRPanoFlagLast = 1 shl 31;
- { Values for locationFlags field in QTVRNodeLocationAtom}
- const
- kQTVRSameFile = 0;
- {$endc} {not TARGET_CPU_64}
- { Header for QTVR track's Sample Description record (vrWorld atom container is appended)}
- type
- QTVRSampleDescription = record
- descSize: UInt32; { total size of the QTVRSampleDescription}
- descType: UInt32; { must be 'qtvr'}
- reserved1: UInt32; { must be zero}
- reserved2: UInt16; { must be zero}
- dataRefIndex: UInt16; { must be zero}
- data: UInt32; { Will be extended to hold vrWorld QTAtomContainer}
- end;
- QTVRSampleDescriptionPtr = ^QTVRSampleDescription;
- type
- QTVRSampleDescriptionHandle = ^QTVRSampleDescriptionPtr;
- {$ifc not TARGET_CPU_64}
- {
- =================================================================================================
- Definitions and structures used in the VRWorld QTAtomContainer
- -------------------------------------------------------------------------------------------------
- }
- type
- QTVRStringAtom = record
- stringUsage: UInt16;
- stringLength: UInt16;
- theString: packed array [0..3] of UInt8; { field previously named "string" }
- end;
- QTVRStringAtomPtr = ^QTVRStringAtom;
- type
- QTVRWorldHeaderAtom = record
- majorVersion: UInt16;
- minorVersion: UInt16;
- nameAtomID: QTAtomID;
- defaultNodeID: UInt32;
- vrWorldFlags: UInt32;
- reserved1: UInt32;
- reserved2: UInt32;
- end;
- QTVRWorldHeaderAtomPtr = ^QTVRWorldHeaderAtom;
- { Valid bits used in QTVRPanoImagingAtom}
- const
- kQTVRValidCorrection = 1 shl 0;
- kQTVRValidQuality = 1 shl 1;
- kQTVRValidDirectDraw = 1 shl 2;
- kQTVRValidFirstExtraProperty = 1 shl 3;
- type
- QTVRPanoImagingAtom = record
- majorVersion: UInt16;
- minorVersion: UInt16;
- imagingMode: UInt32;
- imagingValidFlags: UInt32;
- correction: UInt32;
- quality: UInt32;
- directDraw: UInt32;
- imagingProperties: array [0..5] of UInt32; { for future properties}
- reserved1: UInt32;
- reserved2: UInt32;
- end;
- QTVRPanoImagingAtomPtr = ^QTVRPanoImagingAtom;
- type
- QTVRNodeLocationAtom = record
- majorVersion: UInt16;
- minorVersion: UInt16;
- nodeType: OSType;
- locationFlags: UInt32;
- locationData: UInt32;
- reserved1: UInt32;
- reserved2: UInt32;
- end;
- QTVRNodeLocationAtomPtr = ^QTVRNodeLocationAtom;
- {
- =================================================================================================
- Definitions and structures used in the Nodeinfo QTAtomContainer
- -------------------------------------------------------------------------------------------------
- }
- type
- QTVRNodeHeaderAtom = record
- majorVersion: UInt16;
- minorVersion: UInt16;
- nodeType: OSType;
- nodeID: QTAtomID;
- nameAtomID: QTAtomID;
- commentAtomID: QTAtomID;
- reserved1: UInt32;
- reserved2: UInt32;
- end;
- QTVRNodeHeaderAtomPtr = ^QTVRNodeHeaderAtom;
- type
- QTVRAngleRangeAtom = record
- minimumAngle: Float32;
- maximumAngle: Float32;
- end;
- QTVRAngleRangeAtomPtr = ^QTVRAngleRangeAtom;
- type
- QTVRHotSpotInfoAtom = record
- majorVersion: UInt16;
- minorVersion: UInt16;
- hotSpotType: OSType;
- nameAtomID: QTAtomID;
- commentAtomID: QTAtomID;
- cursorID: array [0..2] of SInt32;
- { canonical view for this hot spot}
- bestPan: Float32;
- bestTilt: Float32;
- bestFOV: Float32;
- bestViewCenter: QTVRFloatPoint;
- { Bounding box for this hot spot}
- hotSpotRect: Rect;
- flags: UInt32;
- reserved1: UInt32;
- reserved2: UInt32;
- end;
- QTVRHotSpotInfoAtomPtr = ^QTVRHotSpotInfoAtom;
- type
- QTVRLinkHotSpotAtom = record
- majorVersion: UInt16;
- minorVersion: UInt16;
- toNodeID: UInt32;
- fromValidFlags: UInt32;
- fromPan: Float32;
- fromTilt: Float32;
- fromFOV: Float32;
- fromViewCenter: QTVRFloatPoint;
- toValidFlags: UInt32;
- toPan: Float32;
- toTilt: Float32;
- toFOV: Float32;
- toViewCenter: QTVRFloatPoint;
- distance: Float32;
- flags: UInt32;
- reserved1: UInt32;
- reserved2: UInt32;
- end;
- QTVRLinkHotSpotAtomPtr = ^QTVRLinkHotSpotAtom;
- {
- =================================================================================================
- Definitions and structures used in Panorama and Object tracks
- -------------------------------------------------------------------------------------------------
- }
- type
- QTVRPanoSampleAtom = record
- majorVersion: UInt16;
- minorVersion: UInt16;
- imageRefTrackIndex: UInt32; { track reference index of the full res image track}
- hotSpotRefTrackIndex: UInt32; { track reference index of the full res hot spot track}
- minPan: Float32;
- maxPan: Float32;
- minTilt: Float32;
- maxTilt: Float32;
- minFieldOfView: Float32;
- maxFieldOfView: Float32;
- defaultPan: Float32;
- defaultTilt: Float32;
- defaultFieldOfView: Float32;
- { Info for highest res version of image track}
- imageSizeX: UInt32; { pixel width of the panorama (e.g. 768)}
- imageSizeY: UInt32; { pixel height of the panorama (e.g. 2496)}
- imageNumFramesX: UInt16; { diced frames wide (e.g. 1)}
- imageNumFramesY: UInt16; { diced frames high (e.g. 24)}
- { Info for highest res version of hotSpot track}
- hotSpotSizeX: UInt32; { pixel width of the hot spot panorama (e.g. 768)}
- hotSpotSizeY: UInt32; { pixel height of the hot spot panorama (e.g. 2496)}
- hotSpotNumFramesX: UInt16; { diced frames wide (e.g. 1)}
- hotSpotNumFramesY: UInt16; { diced frames high (e.g. 24)}
- flags: UInt32;
- panoType: OSType;
- reserved2: UInt32;
- end;
- QTVRPanoSampleAtomPtr = ^QTVRPanoSampleAtom;
- {
- View atom for cubes (since same fields in QTVRPanoSampleAtom are set to special
- values for backwards compatibility and hence are ignored by the cubic engine)
- }
- type
- QTVRCubicViewAtom = record
- minPan: Float32;
- maxPan: Float32;
- minTilt: Float32;
- maxTilt: Float32;
- minFieldOfView: Float32;
- maxFieldOfView: Float32;
- defaultPan: Float32;
- defaultTilt: Float32;
- defaultFieldOfView: Float32;
- end;
- QTVRCubicViewAtomPtr = ^QTVRCubicViewAtom;
- type
- QTVRCubicFaceData = record
- orientation: array [0..4-1] of Float32; { WXYZ quaternion of absolute orientation}
- center: array [0..2-1] of Float32; { Center of image relative to center of projection (default = (0,0)) in normalized units}
- aspect: Float32; { aspect>1 => tall pixels; aspect <1 => squat pixels (default = 1)}
- skew: Float32; { skew x by y (default = 0)}
- end;
- QTVRCubicFaceDataPtr = ^QTVRCubicFaceData;
- { Special resolution values for the Image Track Reference Atoms. Use only one value per track reference.}
- const
- kQTVRFullTrackRes = kQTVRFullRes;
- kQTVRHalfTrackRes = kQTVRHalfRes;
- kQTVRQuarterTrackRes = kQTVRQuarterRes;
- kQTVRPreviewTrackRes = $8000;
- type
- QTVRTrackRefEntryPtr = ^QTVRTrackRefEntry;
- QTVRTrackRefEntry = record
- trackRefType: UInt32;
- trackResolution: UInt16;
- trackRefIndex: UInt32;
- end;
- {
- =================================================================================================
- Object File format 2.0
- -------------------------------------------------------------------------------------------------
- }
- const
- kQTVRObjectAnimateViewFramesOn = 1 shl 0;
- kQTVRObjectPalindromeViewFramesOn = 1 shl 1;
- kQTVRObjectStartFirstViewFrameOn = 1 shl 2;
- kQTVRObjectAnimateViewsOn = 1 shl 3;
- kQTVRObjectPalindromeViewsOn = 1 shl 4;
- kQTVRObjectSyncViewToFrameRate = 1 shl 5;
- kQTVRObjectDontLoopViewFramesOn = 1 shl 6;
- kQTVRObjectPlayEveryViewFrameOn = 1 shl 7;
- kQTVRObjectStreamingViewsOn = 1 shl 8;
- const
- kQTVRObjectWrapPanOn = 1 shl 0;
- kQTVRObjectWrapTiltOn = 1 shl 1;
- kQTVRObjectCanZoomOn = 1 shl 2;
- kQTVRObjectReverseHControlOn = 1 shl 3;
- kQTVRObjectReverseVControlOn = 1 shl 4;
- kQTVRObjectSwapHVControlOn = 1 shl 5;
- kQTVRObjectTranslationOn = 1 shl 6;
- const
- kGrabberScrollerUI = 1; { "Object" }
- kOldJoyStickUI = 2; { "1.0 Object as Scene" }
- kJoystickUI = 3; { "Object In Scene"}
- kGrabberUI = 4; { "Grabber only"}
- kAbsoluteUI = 5; { "Absolute pointer"}
- type
- QTVRObjectSampleAtom = record
- majorVersion: UInt16; { kQTVRMajorVersion}
- minorVersion: UInt16; { kQTVRMinorVersion}
- movieType: UInt16; { ObjectUITypes}
- viewStateCount: UInt16; { The number of view states 1 based}
- defaultViewState: UInt16; { The default view state number. The number must be 1 to viewStateCount}
- mouseDownViewState: UInt16; { The mouse down view state. The number must be 1 to viewStateCount}
- viewDuration: UInt32; { The duration of each view including all animation frames in a view}
- columns: UInt32; { Number of columns in movie}
- rows: UInt32; { Number rows in movie}
- mouseMotionScale: Float32; { 180.0 for kStandardObject or kQTVRObjectInScene, actual degrees for kOldNavigableMovieScene.}
- minPan: Float32; { Start horizontal pan angle in degrees}
- maxPan: Float32; { End horizontal pan angle in degrees}
- defaultPan: Float32; { Initial horizontal pan angle in degrees (poster view)}
- minTilt: Float32; { Start vertical pan angle in degrees}
- maxTilt: Float32; { End vertical pan angle in degrees}
- defaultTilt: Float32; { Initial vertical pan angle in degrees (poster view) }
- minFieldOfView: Float32; { minimum field of view setting (appears as the maximum zoom effect) must be >= 1}
- fieldOfView: Float32; { the field of view range must be >= 1}
- defaultFieldOfView: Float32; { must be in minFieldOfView and maxFieldOfView range inclusive}
- defaultViewCenterH: Float32;
- defaultViewCenterV: Float32;
- viewRate: Float32;
- frameRate: Float32;
- animationSettings: UInt32; { 32 reserved bit fields}
- controlSettings: UInt32; { 32 reserved bit fields}
- end;
- QTVRObjectSampleAtomPtr = ^QTVRObjectSampleAtom;
- {
- =================================================================================================
- QuickTime VR Authoring Components
- -------------------------------------------------------------------------------------------------
- }
- {
- ComponentDescription constants for QTVR Export components
- (componentType = MovieExportType; componentSubType = MovieFileType)
- }
- const
- kQTVRFlattenerManufacturer = FourCharCode('vrwe'); { aka QTVRFlattenerType}
- kQTVRSplitterManufacturer = FourCharCode('vrsp');
- kQTVRObjExporterManufacturer = FourCharCode('vrob');
- { QuickTime VR Flattener atom types}
- const
- kQTVRFlattenerSettingsParentAtomType = FourCharCode('VRWe'); { parent of settings atoms (other than compression)}
- kQTVRFlattenerPreviewResAtomType = FourCharCode('PRes'); { preview resolution Int16}
- kQTVRFlattenerImportSpecAtomType = FourCharCode('ISpe'); { import file spec FSSpec}
- kQTVRFlattenerCreatePreviewAtomType = FourCharCode('Prev'); { Boolean}
- kQTVRFlattenerImportPreviewAtomType = FourCharCode('IPre'); { Boolean}
- kQTVRFlattenerBlurPreviewAtomType = FourCharCode('Blur'); { Boolean}
- { QuickTime VR Splitter atom types}
- const
- kQTVRSplitterSettingsParentAtomType = FourCharCode('VRSp'); { parent of settings atoms (other than compression)}
- kQTVRSplitterGenerateHTMLAtomType = FourCharCode('Ghtm'); { Boolean}
- kQTVRSplitterOverwriteFilesAtomType = FourCharCode('Owfi'); { Boolean}
- kQTVRSplitterUseFlattenerAtomType = FourCharCode('Usef'); { Boolean}
- kQTVRSplitterShowControllerAtomType = FourCharCode('Shco'); { Boolean}
- kQTVRSplitterTargetMyselfAtomType = FourCharCode('Tgtm'); { Boolean}
- { QuickTime VR Object Exporter atom types}
- const
- kQTVRObjExporterSettingsBlockSize = FourCharCode('bsiz'); { block size for compression}
- kQTVRObjExporterSettingsTargetSize = FourCharCode('tsiz'); { target file size}
- {$endc} {not TARGET_CPU_64}
- {$endc} {TARGET_OS_MAC}
- {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
- end.
- {$endc} {not MACOSALLINCLUDE}
|