[Scummvm-git-logs] scummvm master -> e32006cc3be10557a6486f2a4d2b54f9c4d5bb55
aquadran
noreply at scummvm.org
Thu Oct 17 12:49:09 UTC 2024
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:
e32006cc3b WINTERMUTE: Synced with original code for convert3DTo2D()
Commit: e32006cc3be10557a6486f2a4d2b54f9c4d5bb55
https://github.com/scummvm/scummvm/commit/e32006cc3be10557a6486f2a4d2b54f9c4d5bb55
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2024-10-17T14:49:03+02:00
Commit Message:
WINTERMUTE: Synced with original code for convert3DTo2D()
Changed paths:
engines/wintermute/ad/ad_object_3d.cpp
diff --git a/engines/wintermute/ad/ad_object_3d.cpp b/engines/wintermute/ad/ad_object_3d.cpp
index febc4470e65..3146201ef5a 100644
--- a/engines/wintermute/ad/ad_object_3d.cpp
+++ b/engines/wintermute/ad/ad_object_3d.cpp
@@ -127,8 +127,23 @@ bool AdObject3D::update() {
//////////////////////////////////////////////////////////////////////////
bool AdObject3D::convert3DTo2D(Math::Matrix4 *worldMat, int32 *posX, int32 *posY) {
- Math::Vector3d origin(0.0f, 0.0f, 0.0f);
- _gameRef->_renderer3D->project(*worldMat, origin, *posX, *posY);
+ DXMatrix viewMat, projMat, world;
+ DXVector3 vec2d(0.0f, 0.0f, 0.0f);
+ DXVector3 origin(0.0f, 0.0f, 0.0f);
+ Math::Matrix4 view, proj;
+ _gameRef->_renderer3D->getViewTransform(view);
+ _gameRef->_renderer3D->getProjectionTransform(proj);
+ viewMat = DXMatrix(view.getData());
+ projMat = DXMatrix(proj.getData());
+ world = DXMatrix(worldMat->getData());
+ DXMatrixTranspose(&world, &world);
+
+ Rect32 viewport = _gameRef->_renderer3D->getViewPort();
+
+ DXVec3Project(&vec2d, &origin, &viewport, &projMat, &viewMat, &world);
+
+ *posX = vec2d._x + _gameRef->_offsetX - _gameRef->_renderer3D->_drawOffsetX;
+ *posY = vec2d._y + _gameRef->_offsetY - _gameRef->_renderer3D->_drawOffsetY;
return true;
}
More information about the Scummvm-git-logs
mailing list