[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