[Scummvm-git-logs] scummvm master -> 7a033455bc7f96a3deb9c35f74b0a874333f386f
aquadran
noreply at scummvm.org
Sat Oct 19 23:53:51 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:
7a033455bc WINTERMUTE: Use DX for BaseRenderOpenGL3DShader::setWorldTransform()
Commit: 7a033455bc7f96a3deb9c35f74b0a874333f386f
https://github.com/scummvm/scummvm/commit/7a033455bc7f96a3deb9c35f74b0a874333f386f
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2024-10-20T01:53:46+02:00
Commit Message:
WINTERMUTE: Use DX for BaseRenderOpenGL3DShader::setWorldTransform()
Changed paths:
engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
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 e455776f52b..babd7be4987 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
@@ -505,22 +505,22 @@ bool BaseRenderOpenGL3DShader::setProjection2D() {
bool BaseRenderOpenGL3DShader::setWorldTransform(const DXMatrix &transform) {
_worldMatrix = transform;
- Math::Matrix4 tmp;
- tmp.setData(transform);
- tmp.transpose();
+ DXMatrix newInvertedTranspose, world = transform;
+ DXMatrixTranspose(&world, &world);
+ DXMatrixMultiply(&newInvertedTranspose, &world, &_viewMatrix);
+ DXMatrixInverse(&newInvertedTranspose, nullptr, &newInvertedTranspose);
+ DXMatrixTranspose(&newInvertedTranspose, &newInvertedTranspose);
- Math::Matrix4 viewMatrix;
- viewMatrix.setData(_viewMatrix);
- Math::Matrix4 newInvertedTranspose = tmp * viewMatrix;
- newInvertedTranspose.inverse();
- newInvertedTranspose.transpose();
+ Math::Matrix4 modelMatrix, normalMatrix;
+ modelMatrix.setData(world);
+ normalMatrix.setData(newInvertedTranspose);
_xmodelShader->use();
- _xmodelShader->setUniform("modelMatrix", tmp);
- _xmodelShader->setUniform("normalMatrix", newInvertedTranspose);
+ _xmodelShader->setUniform("modelMatrix", modelMatrix);
+ _xmodelShader->setUniform("normalMatrix", normalMatrix);
_shadowVolumeShader->use();
- _shadowVolumeShader->setUniform("modelMatrix", tmp);
+ _shadowVolumeShader->setUniform("modelMatrix", modelMatrix);
return true;
}
More information about the Scummvm-git-logs
mailing list