[Scummvm-git-logs] scummvm master -> 6d3c8407346cb474576d009a8c2df30502a5d390

sev- noreply at scummvm.org
Sun Feb 16 23:04:40 UTC 2025


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
fefa5f0de1 VIDEO: QTVR: Fixing setting pan/tilt programmatically
f07189afb7 DIRECTOR: XTRAS: Fix PassMouseDown logic in QTVR Xtra
6d3c840734 VIDEO: QTVR: Hid noisy warning


Commit: fefa5f0de1c906e2e55ed0fbc1b72eaae0169d8f
    https://github.com/scummvm/scummvm/commit/fefa5f0de1c906e2e55ed0fbc1b72eaae0169d8f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-17T00:03:25+01:00

Commit Message:
VIDEO: QTVR: Fixing setting pan/tilt programmatically

Changed paths:
    video/qt_decoder.h
    video/qtvr_decoder.cpp


diff --git a/video/qt_decoder.h b/video/qt_decoder.h
index c06b8360e02..b1048f7537b 100644
--- a/video/qt_decoder.h
+++ b/video/qt_decoder.h
@@ -83,9 +83,9 @@ public:
 	void handleKey(Common::KeyState &state, bool down, bool repeat = false);
 
 	float getPanAngle() const { return _panAngle; }
-	void setPanAngle(float panAngle) { _panAngle = panAngle; }
+	void setPanAngle(float panAngle);
 	float getTiltAngle() const { return _tiltAngle; }
-	void setTiltAngle(float tiltAngle) { _tiltAngle = tiltAngle; }
+	void setTiltAngle(float tiltAngle);
 	float getFOV() const { return _fov; }
 	bool setFOV(float fov);
 	int getCurrentNodeID() { return _currentSample == -1 ? 0 : _panoTrack->panoSamples[_currentSample].hdr.nodeID; }
@@ -361,11 +361,6 @@ private:
 
 		int lookupHotspot(int16 x, int16 y);
 
-		float getPanAngle() { return _curPanAngle; }
-		void setPanAngle(float angle);
-		float getTiltAngle() { return _curTiltAngle; }
-		void setTiltAngle(float angle);
-
 		void setDirty() { _dirty = true; }
 
 	private:
@@ -383,9 +378,6 @@ private:
 
 		bool _isPanoConstructed;
 
-		float _curPanAngle;
-		float _curTiltAngle;
-
 		bool _dirty;
 	};
 };
diff --git a/video/qtvr_decoder.cpp b/video/qtvr_decoder.cpp
index 494b432bfd3..27471529caf 100644
--- a/video/qtvr_decoder.cpp
+++ b/video/qtvr_decoder.cpp
@@ -163,6 +163,42 @@ void QuickTimeDecoder::setTargetSize(uint16 w, uint16 h) {
 	}
 }
 
+void QuickTimeDecoder::setPanAngle(float angle) {
+	PanoSampleDesc *desc = (PanoSampleDesc *)_panoTrack->sampleDescs[0];
+
+	if (desc->_hPanStart != desc->_hPanStart && (desc->_hPanStart != 0.0 || desc->_hPanStart != 360.0)) {
+		if (angle < desc->_hPanStart)
+			angle = desc->_hPanStart + _hfov / 2;
+
+		if (angle > desc->_hPanEnd - _hfov / 2)
+			angle = desc->_hPanStart - _hfov / 2;
+	}
+
+	if (_panAngle != angle) {
+		_panAngle = angle;
+
+		PanoTrackHandler *track = (PanoTrackHandler *)getTrack(_panoTrack->targetTrack);
+		track->setDirty();
+	}
+}
+
+void QuickTimeDecoder::setTiltAngle(float angle) {
+	PanoSampleDesc *desc = (PanoSampleDesc *)_panoTrack->sampleDescs[0];
+
+	if (angle < desc->_vPanBottom + _fov / 2)
+		angle = desc->_vPanBottom + _fov / 2;
+
+	if (angle > desc->_vPanTop - _fov / 2)
+		angle = desc->_vPanTop - _fov / 2;
+
+	if (_tiltAngle != angle) {
+		_tiltAngle = angle;
+
+		PanoTrackHandler *track = (PanoTrackHandler *)getTrack(_panoTrack->targetTrack);
+		track->setDirty();
+	}
+}
+
 bool QuickTimeDecoder::setFOV(float fov) {
 	PanoSampleDesc *desc = (PanoSampleDesc *)_panoTrack->sampleDescs[0];
 	bool success = true;
@@ -307,9 +343,6 @@ QuickTimeDecoder::PanoTrackHandler::PanoTrackHandler(QuickTimeDecoder *decoder,
 	_projectedPano = nullptr;
 	_planarProjection = nullptr;
 
-	_curPanAngle = 0.0f;
-	_curTiltAngle = 0.0f;
-
 	_dirty = true;
 
 	_decoder->updateQTVRCursor(0, 0); // Initialize all things for cursor
@@ -356,44 +389,6 @@ Common::Rational QuickTimeDecoder::PanoTrackHandler::getScaledHeight() const {
 	return Common::Rational(_parent->height) / _parent->scaleFactorY;
 }
 
-void QuickTimeDecoder::PanoTrackHandler::setPanAngle(float angle) {
-	PanoSampleDesc *desc = (PanoSampleDesc *)_parent->sampleDescs[0];
-
-	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->_hPanStart - _decoder->_hfov / 2;
-	}
-
-	if (_curPanAngle != angle) {
-		_curPanAngle = angle;
-
-		_decoder->setPanAngle(_curPanAngle);
-
-		_dirty = true;
-	}
-}
-
-void QuickTimeDecoder::PanoTrackHandler::setTiltAngle(float angle) {
-	PanoSampleDesc *desc = (PanoSampleDesc *)_parent->sampleDescs[0];
-
-	if (angle < desc->_vPanBottom + _decoder->_fov / 2)
-		angle = desc->_vPanBottom + _decoder->_fov / 2;
-
-	if (angle > desc->_vPanTop - _decoder->_fov / 2)
-		angle = desc->_vPanTop - _decoder->_fov / 2;
-
-	if (_curTiltAngle != angle) {
-		_curTiltAngle = angle;
-
-		_decoder->setTiltAngle(_curTiltAngle);
-
-		_dirty = true;
-	}
-}
-
 const Graphics::Surface *QuickTimeDecoder::PanoTrackHandler::decodeNextFrame() {
 	if (!_isPanoConstructed)
 		return nullptr;
@@ -503,8 +498,8 @@ void QuickTimeDecoder::PanoTrackHandler::constructPanorama() {
 
 	_isPanoConstructed = true;
 
-	_curPanAngle = desc->_hPanStart;
-	_curTiltAngle = 0.0f;
+	_decoder->_panAngle = desc->_hPanStart;
+	_decoder->_tiltAngle = 0.0f;
 }
 
 int QuickTimeDecoder::PanoTrackHandler::lookupHotspot(int16 mx, int16 my) {
@@ -530,8 +525,8 @@ int QuickTimeDecoder::PanoTrackHandler::lookupHotspot(int16 mx, int16 my) {
 	topRightVector[2] = bottomRightVector[2];
 
 	// Apply pitch (tilt) rotation
-	float cosTilt = cos(_curTiltAngle * M_PI / 180.0);
-	float sinTilt = sin(_curTiltAngle * M_PI / 180.0);
+	float cosTilt = cos(_decoder->_tiltAngle * M_PI / 180.0);
+	float sinTilt = sin(_decoder->_tiltAngle * M_PI / 180.0);
 
 	for (int v = 0; v < 2; v++) {
 		float y = cornerVectors[v][1];
@@ -563,7 +558,7 @@ int QuickTimeDecoder::PanoTrackHandler::lookupHotspot(int16 mx, int16 my) {
 	float yawAngle = atan2(mousePixelVector[0], mousePixelVector[2]);
 
 	// panorama is turned 90 degrees, width is height
-	int hotX = (1.0f - (yawAngle / (2.0 * M_PI) + _curPanAngle / 360.0f)) * (float)_constructedHotspots->h;
+	int hotX = (1.0f - (yawAngle / (2.0 * M_PI) + _decoder->_panAngle / 360.0f)) * (float)_constructedHotspots->h;
 
 	hotX = hotX % _constructedHotspots->h;
 	if (hotX < 0)
@@ -621,8 +616,8 @@ void QuickTimeDecoder::PanoTrackHandler::projectPanorama() {
 	topRightVector[2] = bottomRightVector[2];
 
 	// Apply pitch (tilt) rotation
-	float cosTilt = cos(_curTiltAngle * M_PI / 180.0);
-	float sinTilt = sin(_curTiltAngle * M_PI / 180.0);
+	float cosTilt = cos(_decoder->_tiltAngle * M_PI / 180.0);
+	float sinTilt = sin(_decoder->_tiltAngle * M_PI / 180.0);
 
 	for (int v = 0; v < 2; v++) {
 		float y = cornerVectors[v][1];
@@ -708,7 +703,7 @@ void QuickTimeDecoder::PanoTrackHandler::projectPanorama() {
 		cylinderAngleOffsets[x] = atan(xCoord) * 0.5f / M_PI;
 	}
 
-	float angleT = fmod(_curPanAngle / 360.0, 1.0);
+	float angleT = fmod(_decoder->_panAngle / 360.0, 1.0);
 	if (angleT < 0.0f)
 		angleT += 1.0f;
 
@@ -951,8 +946,6 @@ void QuickTimeDecoder::handlePanoMouseButton(bool isDown, int16 x, int16 y, bool
 	if (!repeat)
 		return;
 
-	PanoTrackHandler *track = (PanoTrackHandler *)getTrack(_panoTrack->targetTrack);
-
 	// HACK: FIXME: Hard coded for now
 	const int sensitivity = 5;
 	const float speedFactor = 0.1f;
@@ -964,10 +957,10 @@ void QuickTimeDecoder::handlePanoMouseButton(bool isDown, int16 x, int16 y, bool
 	float speedY = (float)mouseDeltaY * speedFactor;
 
 	if (ABS(mouseDeltaX) >= sensitivity)
-		track->setPanAngle(track->getPanAngle() + speedX);
+		setPanAngle(getPanAngle() + speedX);
 
 	if (ABS(mouseDeltaY) >= sensitivity)
-		track->setTiltAngle(track->getTiltAngle() + speedY);
+		setTiltAngle(getTiltAngle() + speedY);
 }
 
 void QuickTimeDecoder::handleKey(Common::KeyState &state, bool down, bool repeat) {


Commit: f07189afb757b3505624fc6bbc44f2ef8be90dcb
    https://github.com/scummvm/scummvm/commit/f07189afb757b3505624fc6bbc44f2ef8be90dcb
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-17T00:03:25+01:00

Commit Message:
DIRECTOR: XTRAS: Fix PassMouseDown logic in QTVR Xtra

Changed paths:
    engines/director/lingo/xtras/qtvrxtra.cpp


diff --git a/engines/director/lingo/xtras/qtvrxtra.cpp b/engines/director/lingo/xtras/qtvrxtra.cpp
index aaa2053a37a..eb743f2e7a0 100644
--- a/engines/director/lingo/xtras/qtvrxtra.cpp
+++ b/engines/director/lingo/xtras/qtvrxtra.cpp
@@ -906,6 +906,7 @@ bool QtvrxtraWidget::processEvent(Common::Event &event) {
 	switch (event.type) {
 	case Common::EVENT_LBUTTONDOWN:
 		if (_xtra->_mouseDownHandler.empty()) {
+			_xtra->_passMouseDown = true;
 			_xtra->_video->handleMouseButton(true, event.mouse.x - _xtra->_rect.left, event.mouse.y - _xtra->_rect.top);
 		} else {
 			_xtra->_passMouseDown = false;


Commit: 6d3c8407346cb474576d009a8c2df30502a5d390
    https://github.com/scummvm/scummvm/commit/6d3c8407346cb474576d009a8c2df30502a5d390
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-02-17T00:04:20+01:00

Commit Message:
VIDEO: QTVR: Hid noisy warning

Changed paths:
    video/qtvr_decoder.cpp


diff --git a/video/qtvr_decoder.cpp b/video/qtvr_decoder.cpp
index 27471529caf..2faa7ad87a0 100644
--- a/video/qtvr_decoder.cpp
+++ b/video/qtvr_decoder.cpp
@@ -1172,7 +1172,7 @@ void QuickTimeDecoder::updateQTVRCursor(int16 x, int16 y) {
 
 		default:
 			if (hsType != HotSpotType::undefined)
-				warning("Hotspot type: %s", tag2str((uint32)hsType));
+				debug(3, "Hotspot type: %s", tag2str((uint32)hsType));
 			hsOver = kCursorPanoObjOver;
 			hsDown = kCursorPanoObjDown;
 			hsUp = kCursorPanoObjUp;




More information about the Scummvm-git-logs mailing list