From 3b7978b84d647c444ecfc85c147e52038a4104e6 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Mon, 13 Mar 2023 01:16:07 -0500 Subject: [PATCH] feat(gx): add conditional shrink of proj matrix in d3d backend --- src/gx/d3d/CGxDeviceD3d.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/gx/d3d/CGxDeviceD3d.cpp b/src/gx/d3d/CGxDeviceD3d.cpp index 4137cd9..f92ff21 100644 --- a/src/gx/d3d/CGxDeviceD3d.cpp +++ b/src/gx/d3d/CGxDeviceD3d.cpp @@ -1713,7 +1713,16 @@ void CGxDeviceD3d::IXformSetProjection(const C44Matrix& matrix) { projNative._43 = v9 / (v9 - v10); } - // TODO shrink + if (!this->MasterEnable(GxMasterEnable_NormalProjection) && projNative._44 != 1.0f) { + DirectX::XMMATRIX shrink = { + 0.2f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.2f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.2f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + }; + + projNative *= shrink; + } this->m_xforms[GxXform_Projection].m_dirty = 1; memcpy(&this->m_projNative, &projNative, sizeof(this->m_projNative));