[Scummvm-git-logs] scummvm master -> c0b89d8bc16007e31eadeae78ced5360abcd3a25

aquadran noreply at scummvm.org
Tue Aug 4 12:12:43 UTC 2026


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:
c0b89d8bc1 WINTERMUTE: Corrected access to attributes array when there is no attributes


Commit: c0b89d8bc16007e31eadeae78ced5360abcd3a25
    https://github.com/scummvm/scummvm/commit/c0b89d8bc16007e31eadeae78ced5360abcd3a25
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2026-08-04T14:12:31+02:00

Commit Message:
WINTERMUTE: Corrected access to attributes array when there is no attributes

Changed paths:
    engines/wintermute/base/gfx/opengl/meshx_opengl.cpp
    engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp
    engines/wintermute/base/gfx/tinygl/meshx_tinygl.cpp


diff --git a/engines/wintermute/base/gfx/opengl/meshx_opengl.cpp b/engines/wintermute/base/gfx/opengl/meshx_opengl.cpp
index 108a5ea9c88..42a54ee1974 100644
--- a/engines/wintermute/base/gfx/opengl/meshx_opengl.cpp
+++ b/engines/wintermute/base/gfx/opengl/meshx_opengl.cpp
@@ -136,7 +136,7 @@ bool XMeshOpenGL::render(XModel *model) {
 		if (textureEnable)
 			glTexCoordPointer(2, GL_FLOAT, vertexSize * sizeof(float), vertexData + textureOffset);
 
-		glDrawElements(GL_TRIANGLES, attrsTable->_ptr[i]._faceCount * 3, GL_UNSIGNED_INT, indexData + attrsTable->_ptr[i]._faceStart * 3);
+		glDrawElements(GL_TRIANGLES, attrs[i]._faceCount * 3, GL_UNSIGNED_INT, indexData + attrs[i]._faceStart * 3);
 
 		glDisableClientState(GL_VERTEX_ARRAY);
 		glDisableClientState(GL_NORMAL_ARRAY);
@@ -213,7 +213,7 @@ bool XMeshOpenGL::renderFlatShadowModel(uint32 shadowColor) {
 
 		glVertexPointer(3, GL_FLOAT, vertexSize * sizeof(float), vertexData);
 
-		glDrawElements(GL_TRIANGLES, attrsTable->_ptr[i]._faceCount * 3, GL_UNSIGNED_INT, indexData + attrsTable->_ptr[i]._faceStart * 3);
+		glDrawElements(GL_TRIANGLES, attrs[i]._faceCount * 3, GL_UNSIGNED_INT, indexData + attrs[i]._faceStart * 3);
 
 		glDisableClientState(GL_VERTEX_ARRAY);
 	}
@@ -234,7 +234,7 @@ bool XMeshOpenGL::renderFlatShadowModel(uint32 shadowColor) {
 
 		glVertexPointer(3, GL_FLOAT, vertexSize * sizeof(float), vertexData);
 
-		glDrawElements(GL_TRIANGLES, attrsTable->_ptr[i]._faceCount * 3, GL_UNSIGNED_INT, indexData + attrsTable->_ptr[i]._faceStart * 3);
+		glDrawElements(GL_TRIANGLES, attrs[i]._faceCount * 3, GL_UNSIGNED_INT, indexData + attrs[i]._faceStart * 3);
 
 		glDisableClientState(GL_VERTEX_ARRAY);
 	}
diff --git a/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp b/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp
index 452e210f47f..13c7972f63f 100644
--- a/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp
+++ b/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp
@@ -154,12 +154,12 @@ bool XMeshOpenGLShader::render(XModel *model) {
 		_shader->setUniform("effectId", 0);
 
 		setupEffect(mat, false);
-		size_t offsetFace = 4 * attrsTable->_ptr[i]._faceStart * 3;
-		glDrawElements(GL_TRIANGLES, attrsTable->_ptr[i]._faceCount * 3, GL_UNSIGNED_INT, (void *)offsetFace);
+		size_t offsetFace = 4 * attrs[i]._faceStart * 3;
+		glDrawElements(GL_TRIANGLES, attrs[i]._faceCount * 3, GL_UNSIGNED_INT, (void *)offsetFace);
 		if (setupEffect(mat, true)) {
 			GLboolean stateCullFace;
 			glGetBooleanv(GL_CULL_FACE, &stateCullFace);
-			glDrawElements(GL_TRIANGLES, attrsTable->_ptr[i]._faceCount * 3, GL_UNSIGNED_INT, (void *)offsetFace);
+			glDrawElements(GL_TRIANGLES, attrs[i]._faceCount * 3, GL_UNSIGNED_INT, (void *)offsetFace);
 			if (stateCullFace)
 				glEnable(GL_CULL_FACE);
 			else
@@ -240,8 +240,8 @@ bool XMeshOpenGLShader::renderFlatShadowModel(uint32 shadowColor) {
 	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _indexBuffer);
 
 	for (uint32 i = 0; i < numAttrs; i++) {
-		size_t offsetFace = 4 * attrsTable->_ptr[i]._faceStart * 3;
-		glDrawElements(GL_TRIANGLES, attrsTable->_ptr[i]._faceCount * 3, GL_UNSIGNED_INT, (void *)offsetFace);
+		size_t offsetFace = 4 * attrs[i]._faceStart * 3;
+		glDrawElements(GL_TRIANGLES, attrs[i]._faceCount * 3, GL_UNSIGNED_INT, (void *)offsetFace);
 	}
 
 	glStencilFunc(GL_EQUAL, 1, (GLuint)~0);
@@ -255,8 +255,8 @@ bool XMeshOpenGLShader::renderFlatShadowModel(uint32 shadowColor) {
 	glDepthMask(GL_TRUE);
 
 	for (uint32 i = 0; i < numAttrs; i++) {
-		size_t offsetFace = 4 * attrsTable->_ptr[i]._faceStart * 3;
-		glDrawElements(GL_TRIANGLES, attrsTable->_ptr[i]._faceCount * 3, GL_UNSIGNED_INT, (void *)offsetFace);
+		size_t offsetFace = 4 * attrs[i]._faceStart * 3;
+		glDrawElements(GL_TRIANGLES, attrs[i]._faceCount * 3, GL_UNSIGNED_INT, (void *)offsetFace);
 	}
 
 	glBindBuffer(GL_ARRAY_BUFFER, 0);
diff --git a/engines/wintermute/base/gfx/tinygl/meshx_tinygl.cpp b/engines/wintermute/base/gfx/tinygl/meshx_tinygl.cpp
index f42a4e33156..bb9e6fbef24 100644
--- a/engines/wintermute/base/gfx/tinygl/meshx_tinygl.cpp
+++ b/engines/wintermute/base/gfx/tinygl/meshx_tinygl.cpp
@@ -133,7 +133,7 @@ bool XMeshTinyGL::render(XModel *model) {
 		if (textureEnable)
 			tglTexCoordPointer(2, TGL_FLOAT, vertexSize * sizeof(float), vertexData + textureOffset);
 
-		tglDrawElements(TGL_TRIANGLES, attrsTable->_ptr[i]._faceCount * 3, TGL_UNSIGNED_INT, indexData + attrsTable->_ptr[i]._faceStart * 3);
+		tglDrawElements(TGL_TRIANGLES, attrs[i]._faceCount * 3, TGL_UNSIGNED_INT, indexData + attrs[i]._faceStart * 3);
 
 		tglDisableClientState(TGL_VERTEX_ARRAY);
 		tglDisableClientState(TGL_NORMAL_ARRAY);
@@ -210,7 +210,7 @@ bool XMeshTinyGL::renderFlatShadowModel(uint32 shadowColor) {
 
 		tglVertexPointer(3, TGL_FLOAT, vertexSize * sizeof(float), vertexData);
 
-		tglDrawElements(TGL_TRIANGLES, attrsTable->_ptr[i]._faceCount * 3, TGL_UNSIGNED_INT, indexData + attrsTable->_ptr[i]._faceStart * 3);
+		tglDrawElements(TGL_TRIANGLES, attrs[i]._faceCount * 3, TGL_UNSIGNED_INT, indexData + attrs[i]._faceStart * 3);
 
 		tglDisableClientState(TGL_VERTEX_ARRAY);
 	}
@@ -231,7 +231,7 @@ bool XMeshTinyGL::renderFlatShadowModel(uint32 shadowColor) {
 
 		tglVertexPointer(3, TGL_FLOAT, vertexSize * sizeof(float), vertexData);
 
-		tglDrawElements(TGL_TRIANGLES, attrsTable->_ptr[i]._faceCount * 3, TGL_UNSIGNED_INT, indexData + attrsTable->_ptr[i]._faceStart * 3);
+		tglDrawElements(TGL_TRIANGLES, attrs[i]._faceCount * 3, TGL_UNSIGNED_INT, indexData + attrs[i]._faceStart * 3);
 
 		tglDisableClientState(TGL_VERTEX_ARRAY);
 	}




More information about the Scummvm-git-logs mailing list