[Scummvm-git-logs] scummvm master -> b3eb2268e1b92540d71dc156417a9beebdca2a9e
aquadran
noreply at scummvm.org
Fri Nov 1 21:29:16 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:
b3eb2268e1 WINTERMUTE: Adedd conversion depth range from DX to OGL in perspective matrix
Commit: b3eb2268e1b92540d71dc156417a9beebdca2a9e
https://github.com/scummvm/scummvm/commit/b3eb2268e1b92540d71dc156417a9beebdca2a9e
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2024-11-01T22:29:09+01:00
Commit Message:
WINTERMUTE: Adedd conversion depth range from DX to OGL in perspective matrix
Changed paths:
engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
index 4bc4c751490..fbb4688031c 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
@@ -531,6 +531,10 @@ bool BaseRenderOpenGL3D::setProjection() {
matProj.matrix._31 = -(offsetX + (mleft - mright) / 2 - modWidth) / viewportWidth * 2.0f;
matProj.matrix._32 = (offsetY + (mtop - mbottom) / 2 - modHeight) / viewportHeight * 2.0f;
+ // convert DX [0, 1] depth range to OpenGL [-1, 1] depth range.
+ matProj.matrix._33 = (matProj.matrix._33 * 2.0f) - 1.0f;
+ matProj.matrix._43 *= 2.0f;
+
return setProjectionTransform(matProj);
}
diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
index 52c8111860a..290c9ae58b7 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
@@ -488,6 +488,10 @@ bool BaseRenderOpenGL3DShader::setProjection() {
matProj.matrix._31 = -(offsetX + (mleft - mright) / 2 - modWidth) / viewportWidth * 2.0f;
matProj.matrix._32 = (offsetY + (mtop - mbottom) / 2 - modHeight) / viewportHeight * 2.0f;
+ // convert DX [0, 1] depth range to OpenGL [-1, 1] depth range.
+ matProj.matrix._33 = (matProj.matrix._33 * 2.0f) - 1.0f;
+ matProj.matrix._43 *= 2.0f;
+
return setProjectionTransform(matProj);
}
More information about the Scummvm-git-logs
mailing list