[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