Previous approach used two Surface Objects to store the 1D and 2D
upscaled panorama used while projecting the panorama in higher
quailty respectively causing higher memory usage
Instead use only one Surface object to store the upscaled panorama
which stores both 1D and 2D upscaled panorama as and if needed.
Minor fixes and formatting
Add the swing Transition functionality using the transitionMode
variable as described in the original QTVR Xtra documentation
provided by Apple.
In the swing transition mode, make the video decoder internally
handle the animation of "swinging" panorama video from the
current position (described by _fov, _tiltAngle, _panAngle)
to the new position while taking the shortest path
Add the quality mode stubbed functionality using the
as described in the original QTVR Xtra documentation
provided by Apple.
Add two new functions:
upscalePanorama(): Upscales the original panorama movie
to 2x width or 2x width and 2x height, these upscaled
panorama are named (_1D/_2D)UpscaledConstructedPano and
used for projecting in quality mode 2.0f and 4.0f
boxAverage(): The panorama is rendered with 2x or 3x the
target size and then averaged to target size by averaging
in 2x2 or 3x3 box to apply anti-aliasing
Set three quality modes in the QTVR decoder
- Mode 1.0f: No quality upscaling, already present,
low quality
- Mode 2.0f: 1 dimensional upscaling and 2 times scaled
rendering followed by 2x2 box average, medium quality
- Mode 4.0f: 2 dimensinoal upscaling and 3 times scaled
rendering followed by 3x3 box average, high quality
- Mode 0: Dynamic quality mode, change between low
quality and high quality based on whether the user is
actively interacting with the panorama
Add the warping functionality using the warpMode variable
as described in the original QTVR Xtra documentation
provided by Apple.
Set three modes of warping in the qtvr decoder
- Mode 2: Already there, applies both planar projection as
well as perspective correction for perspectively correct
image
- Mode 1: Only apply planar projection, image becomes more
distorted as we move up or down from the midpoint
- Mode 0: No projection, blit the image as it is, exact
copy of the original QTVR movie
We want to stop timers here, so the potential cursor update is not
referring to a freed object. Prevents crashing when quitting
Director movies with QTVR panoramas