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

aquadran noreply at scummvm.org
Thu Oct 31 21:00:17 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:
b89295b0c2 WINTERMUTE: More sync with original for renderer


Commit: b89295b0c28f258f5834cbbe954440faadba5d54
    https://github.com/scummvm/scummvm/commit/b89295b0c28f258f5834cbbe954440faadba5d54
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2024-10-31T22:00:12+01:00

Commit Message:
WINTERMUTE: More sync with original for renderer

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 c53aa024c52..b890aef2f5e 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
@@ -291,10 +291,17 @@ bool BaseRenderOpenGL3D::setupLines() {
 	if (_state != RSTATE_LINES) {
 		_state = RSTATE_LINES;
 
+		float value[] = { 0, 0, 0, 0 };
+
+		glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
 		glDisable(GL_LIGHTING);
 		glDisable(GL_DEPTH_TEST);
+		glFrontFace(GL_CW);
+		glEnable(GL_CULL_FACE);
 		glEnable(GL_BLEND);
 		glEnable(GL_ALPHA_TEST);
+		glLightModelfv(GL_LIGHT_MODEL_AMBIENT, value);
+
 		glDisable(GL_TEXTURE_2D);
 		glBindTexture(GL_TEXTURE_2D, 0);
 		_lastTexture = nullptr;
@@ -528,6 +535,11 @@ bool BaseRenderOpenGL3D::setProjection() {
 }
 
 bool BaseRenderOpenGL3D::drawLine(int x1, int y1, int x2, int y2, uint32 color) {
+	x1 += _drawOffsetX;
+	x2 += _drawOffsetX;
+	y1 += _drawOffsetY;
+	y2 += _drawOffsetY;
+
 	byte a = RGBCOLGetA(color);
 	byte r = RGBCOLGetR(color);
 	byte g = RGBCOLGetG(color);
@@ -771,15 +783,18 @@ void BaseRenderOpenGL3D::renderSceneGeometry(const BaseArray<AdWalkplane *> &pla
 
 	setWorldTransform(matIdentity);
 
+	glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
 	glDisable(GL_LIGHTING);
 	glDisable(GL_DEPTH_TEST);
 	glFrontFace(GL_CW);
-	glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+	glEnable(GL_BLEND);
+	glDisable(GL_ALPHA_TEST);
+	glDisable(GL_TEXTURE_2D);
+	glBindTexture(GL_TEXTURE_2D, 0);
+
 	glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
 	glEnable(GL_COLOR_MATERIAL);
 
-	glDisable(GL_TEXTURE_2D);
-	glBindTexture(GL_TEXTURE_2D, 0);
 
 	// render walk planes
 	for (uint i = 0; i < planes.size(); i++) {
@@ -849,10 +864,13 @@ void BaseRenderOpenGL3D::renderShadowGeometry(const BaseArray<AdWalkplane *> &pl
 	setSpriteBlendMode(Graphics::BLEND_UNKNOWN);
 	glBlendFunc(GL_ZERO, GL_ONE);
 
-	glFrontFace(GL_CW);
+	// no texture
+	_lastTexture = nullptr;
 	glDisable(GL_TEXTURE_2D);
 	glBindTexture(GL_TEXTURE_2D, 0);
 
+	glFrontFace(GL_CW);
+
 	// render blocks
 	for (uint i = 0; i < blocks.size(); i++) {
 		if (blocks[i]->_active && blocks[i]->_receiveShadows) {
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 74db48588fb..97c59c48272 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
@@ -281,7 +281,11 @@ bool BaseRenderOpenGL3DShader::setupLines() {
 		_state = RSTATE_LINES;
 
 		glDisable(GL_DEPTH_TEST);
+		glFrontFace(GL_CW);
+		glEnable(GL_CULL_FACE);
 		glEnable(GL_BLEND);
+		glEnable(GL_ALPHA_TEST);
+
 		glBindTexture(GL_TEXTURE_2D, 0);
 	}
 
@@ -699,9 +703,12 @@ void BaseRenderOpenGL3DShader::renderShadowGeometry(const BaseArray<AdWalkplane
 	setSpriteBlendMode(Graphics::BLEND_UNKNOWN);
 	glBlendFunc(GL_ZERO, GL_ONE);
 
-	glFrontFace(GL_CW);
+	// no texture
+	_lastTexture = nullptr;
 	glBindTexture(GL_TEXTURE_2D, 0);
 
+	glFrontFace(GL_CW);
+
 	// render blocks
 	for (uint i = 0; i < blocks.size(); i++) {
 		if (blocks[i]->_active && blocks[i]->_receiveShadows) {




More information about the Scummvm-git-logs mailing list