[Scummvm-git-logs] scummvm master -> 5674b27f8352951f1a5c825ab21d33c272856f7d
sev-
noreply at scummvm.org
Fri Feb 7 12:11:22 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
5674b27f83 VIDEO: QTVR: Allow wrap around for full 360 degrees panoramas
Commit: 5674b27f8352951f1a5c825ab21d33c272856f7d
https://github.com/scummvm/scummvm/commit/5674b27f8352951f1a5c825ab21d33c272856f7d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-07T13:10:55+01:00
Commit Message:
VIDEO: QTVR: Allow wrap around for full 360 degrees panoramas
Changed paths:
video/qtvr_decoder.cpp
diff --git a/video/qtvr_decoder.cpp b/video/qtvr_decoder.cpp
index 7b2ae425d3e..d6b9c5d80f5 100644
--- a/video/qtvr_decoder.cpp
+++ b/video/qtvr_decoder.cpp
@@ -294,11 +294,13 @@ Common::Rational QuickTimeDecoder::PanoTrackHandler::getScaledHeight() const {
void QuickTimeDecoder::PanoTrackHandler::setPanAngle(float angle) {
PanoSampleDesc *desc = (PanoSampleDesc *)_parent->sampleDescs[0];
- if (angle < desc->_hPanStart + _decoder->_hfov / 2)
- angle = desc->_hPanStart + _decoder->_hfov / 2;
+ if (desc->_hPanStart != desc->_hPanStart && (desc->_hPanStart != 0.0 || desc->_hPanStart != 360.0)) {
+ if (angle < desc->_hPanStart + _decoder->_hfov / 2)
+ angle = desc->_hPanStart + _decoder->_hfov / 2;
- if (angle > desc->_hPanEnd - _decoder->_hfov / 2)
- angle = desc->_hPanEnd - _decoder->_hfov / 2;
+ if (angle > desc->_hPanEnd - _decoder->_hfov / 2)
+ angle = desc->_hPanStart - _decoder->_hfov / 2;
+ }
if (_curPanAngle != angle) {
_curPanAngle = angle;
@@ -892,6 +894,7 @@ void QuickTimeDecoder::updateQTVRCursor(int16 x, int16 y) {
} else {
int res = 0;
PanoSampleDesc *desc = (PanoSampleDesc *)_panoTrack->sampleDescs[0];
+ bool pano360 = !(desc->_hPanStart != desc->_hPanStart && (desc->_hPanStart != 0.0 || desc->_hPanStart != 360.0));
// left
if (x < _mouseDrag.x - sensitivity) {
@@ -899,7 +902,7 @@ void QuickTimeDecoder::updateQTVRCursor(int16 x, int16 y) {
res <<= 1;
// left stop
- if (_panAngle <= desc->_hPanStart + _hfov / 2)
+ if (!pano360 && _panAngle <= desc->_hPanStart + _hfov / 2)
res |= 1;
res <<= 1;
} else {
@@ -912,7 +915,7 @@ void QuickTimeDecoder::updateQTVRCursor(int16 x, int16 y) {
res <<= 1;
// right stop
- if (_panAngle >= desc->_hPanEnd - _hfov / 2)
+ if (!pano360 && _panAngle >= desc->_hPanEnd - _hfov / 2)
res |= 1;
res <<= 1;
} else {
More information about the Scummvm-git-logs
mailing list