[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