[Scummvm-git-logs] scummvm master -> c0b4f9abcf2819024df162a757658215d471c40c
aquadran
noreply at scummvm.org
Thu Jul 10 08:25:33 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
c0b4f9abcf WINTERMUTE: Synced with original code - fixed shadow mask size and position
Commit: c0b4f9abcf2819024df162a757658215d471c40c
https://github.com/scummvm/scummvm/commit/c0b4f9abcf2819024df162a757658215d471c40c
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2025-07-10T10:25:28+02:00
Commit Message:
WINTERMUTE: Synced with original code - fixed shadow mask size and position
Changed paths:
engines/wintermute/base/gfx/opengl/shadow_volume_opengl.cpp
engines/wintermute/base/gfx/opengl/shadow_volume_opengl_shader.cpp
diff --git a/engines/wintermute/base/gfx/opengl/shadow_volume_opengl.cpp b/engines/wintermute/base/gfx/opengl/shadow_volume_opengl.cpp
index becf4d1d312..766f70c1b53 100644
--- a/engines/wintermute/base/gfx/opengl/shadow_volume_opengl.cpp
+++ b/engines/wintermute/base/gfx/opengl/shadow_volume_opengl.cpp
@@ -156,23 +156,27 @@ bool ShadowVolumeOpenGL::renderToScene() {
//////////////////////////////////////////////////////////////////////////
bool ShadowVolumeOpenGL::initMask() {
- DXViewport viewport = _gameRef->_renderer3D->getViewPort();
-
- _shadowMask[0].x = viewport._x;
- _shadowMask[0].y = viewport._height;
- _shadowMask[0].z = 0.0f;
-
- _shadowMask[1].x = viewport._x;
- _shadowMask[1].y = viewport._y;
- _shadowMask[1].z = 0.0f;
-
- _shadowMask[2].x = viewport._width;
- _shadowMask[2].y = viewport._height;
- _shadowMask[2].z = 0.0f;
-
- _shadowMask[3].x = viewport._width;
- _shadowMask[3].y = viewport._y;
- _shadowMask[3].z = 0.0f;
+ auto *rend = _gameRef->_renderer3D;
+
+ // bottom left
+ _shadowMask[0].x = 0.0f;
+ _shadowMask[0].y = rend->getHeight();
+ _shadowMask[0].z = 1.0f;
+
+ // top left
+ _shadowMask[1].x = 0.0f;
+ _shadowMask[1].y = 0.0f;
+ _shadowMask[1].z = 1.0f;
+
+ // bottom right
+ _shadowMask[2].x = rend->getWidth();
+ _shadowMask[2].y = rend->getHeight();
+ _shadowMask[2].z = 1.0f;
+
+ // top right
+ _shadowMask[3].x = rend->getWidth();
+ _shadowMask[3].y = 0.0f;
+ _shadowMask[3].z = 1.0f;
byte a = RGBCOLGetA(_color);
byte r = RGBCOLGetR(_color);
diff --git a/engines/wintermute/base/gfx/opengl/shadow_volume_opengl_shader.cpp b/engines/wintermute/base/gfx/opengl/shadow_volume_opengl_shader.cpp
index 1974a0af7c4..953fe697db5 100644
--- a/engines/wintermute/base/gfx/opengl/shadow_volume_opengl_shader.cpp
+++ b/engines/wintermute/base/gfx/opengl/shadow_volume_opengl_shader.cpp
@@ -45,25 +45,11 @@ struct ShadowVertexShader {
//////////////////////////////////////////////////////////////////////////
ShadowVolumeOpenGLShader::ShadowVolumeOpenGLShader(BaseGame *inGame, OpenGL::Shader *volumeShader, OpenGL::Shader *maskShader)
: ShadowVolume(inGame), _volumeShader(volumeShader), _maskShader(maskShader) {
- ShadowVertexShader shadowMask[4];
_shadowVolumeVertexBuffer = 0;
- DXViewport viewport = _gameRef->_renderer3D->getViewPort();
-
- shadowMask[0].x = viewport._x;
- shadowMask[0].y = viewport._height;
-
- shadowMask[1].x = viewport._x;
- shadowMask[1].y = viewport._y;
-
- shadowMask[2].x = viewport._width;
- shadowMask[2].y = viewport._height;
-
- shadowMask[3].x = viewport._width;
- shadowMask[3].y = viewport._y;
glGenBuffers(1, &_shadowMaskVertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _shadowMaskVertexBuffer);
- glBufferData(GL_ARRAY_BUFFER, 4 * sizeof(ShadowVertexShader), shadowMask, GL_DYNAMIC_DRAW);
+ glBufferData(GL_ARRAY_BUFFER, 4 * sizeof(ShadowVertexShader), nullptr, GL_DYNAMIC_DRAW);
}
//////////////////////////////////////////////////////////////////////////
@@ -182,21 +168,24 @@ bool ShadowVolumeOpenGLShader::renderToScene() {
//////////////////////////////////////////////////////////////////////////
bool ShadowVolumeOpenGLShader::initMask() {
- DXViewport viewport = _gameRef->_renderer3D->getViewPort();
-
+ auto *rend = _gameRef->_renderer3D;
ShadowVertexShader shadowMask[4];
- shadowMask[0].x = viewport._x;
- shadowMask[0].y = viewport._height;
+ // bottom left
+ shadowMask[0].x = 0.0f;
+ shadowMask[0].y = rend->getHeight();
- shadowMask[1].x = viewport._x;
- shadowMask[1].y = viewport._y;
+ // top left
+ shadowMask[1].x = 0.0f;
+ shadowMask[1].y = 0.0f;
- shadowMask[2].x = viewport._width;
- shadowMask[2].y = viewport._height;
+ // bottom right
+ shadowMask[2].x = rend->getWidth();
+ shadowMask[2].y = rend->getHeight();
- shadowMask[3].x = viewport._width;
- shadowMask[3].y = viewport._y;
+ // top right
+ shadowMask[3].x = rend->getWidth();
+ shadowMask[3].y = 0.0f;
glBindBuffer(GL_ARRAY_BUFFER, _shadowMaskVertexBuffer);
glBufferSubData(GL_ARRAY_BUFFER, 0, 4 * sizeof(ShadowVertexShader), shadowMask);
More information about the Scummvm-git-logs
mailing list