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

aquadran noreply at scummvm.org
Mon Jul 27 19:38:56 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:
b3974fa9f0 WINTERMUTE: Make brightness support for Oknytt separated


Commit: b3974fa9f0235536f354af61514ffcc213233897
    https://github.com/scummvm/scummvm/commit/b3974fa9f0235536f354af61514ffcc213233897
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2026-07-27T21:38:42+02:00

Commit Message:
WINTERMUTE: Make brightness support for Oknytt separated

Changed paths:
  A engines/wintermute/base/gfx/opengl/shaders/wme_brightness_oknytt.fragment
  A engines/wintermute/base/gfx/opengl/shaders/wme_brightness_oknytt.vertex
  R engines/wintermute/base/gfx/opengl/shaders/wme_gamma.fragment
  R engines/wintermute/base/gfx/opengl/shaders/wme_gamma.vertex
    dists/scummvm.rc
    engines/wintermute/base/base_game.cpp
    engines/wintermute/base/gfx/base_renderer3d.cpp
    engines/wintermute/base/gfx/base_renderer3d.h
    engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
    engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
    engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.h


diff --git a/dists/scummvm.rc b/dists/scummvm.rc
index 5dc58c37415..866e401e665 100644
--- a/dists/scummvm.rc
+++ b/dists/scummvm.rc
@@ -100,12 +100,12 @@ shaders/stark_shadow.fragment        FILE    "engines/stark/shaders/stark_shadow
 shaders/stark_shadow.vertex          FILE    "engines/stark/shaders/stark_shadow.vertex"
 #endif
 #if PLUGIN_ENABLED_STATIC(WINTERMUTE)
+shaders/wme_brightness_oknytt.fragment  FILE    "engines/wintermute/base/gfx/opengl/shaders/wme_brightness_oknytt.fragment"
+shaders/wme_brightness_oknytt.vertex    FILE    "engines/wintermute/base/gfx/opengl/shaders/wme_brightness_oknytt.vertex"
 shaders/wme_fade.fragment               FILE    "engines/wintermute/base/gfx/opengl/shaders/wme_fade.fragment"
 shaders/wme_fade.vertex                 FILE    "engines/wintermute/base/gfx/opengl/shaders/wme_fade.vertex"
 shaders/wme_flat_shadow_modelx.fragment FILE    "engines/wintermute/base/gfx/opengl/shaders/wme_flat_shadow_modelx.fragment"
 shaders/wme_flat_shadow_modelx.vertex   FILE    "engines/wintermute/base/gfx/opengl/shaders/wme_flat_shadow_modelx.vertex"
-shaders/wme_gamma.fragment              FILE    "engines/wintermute/base/gfx/opengl/shaders/wme_gamma.fragment"
-shaders/wme_gamma.vertex                FILE    "engines/wintermute/base/gfx/opengl/shaders/wme_gamma.vertex"
 shaders/wme_geometry.fragment           FILE    "engines/wintermute/base/gfx/opengl/shaders/wme_geometry.fragment"
 shaders/wme_geometry.vertex             FILE    "engines/wintermute/base/gfx/opengl/shaders/wme_geometry.vertex"
 shaders/wme_line.fragment               FILE    "engines/wintermute/base/gfx/opengl/shaders/wme_line.fragment"
diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp
index 13a5eea7673..431139d6795 100644
--- a/engines/wintermute/base/base_game.cpp
+++ b/engines/wintermute/base/base_game.cpp
@@ -2884,7 +2884,7 @@ bool BaseGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 
 #ifdef ENABLE_WME3D
 		if (_renderer3D)
-			_renderer3D->setGamma(gamma);
+			_renderer3D->setBrightnessOknytt(gamma);
 #endif
 		stack->pushNULL();
 
@@ -2900,7 +2900,7 @@ bool BaseGame::scCallMethod(ScScript *script, ScStack *stack, ScStack *thisStack
 		int32 gamma = 0;
 #ifdef ENABLE_WME3D
 		if (_renderer3D)
-			gamma = _renderer3D->getGamma();
+			gamma = _renderer3D->getBrightnessOknytt();
 #endif
 		stack->pushInt(gamma);
 
diff --git a/engines/wintermute/base/gfx/base_renderer3d.cpp b/engines/wintermute/base/gfx/base_renderer3d.cpp
index 14b3d2b878e..7ce53f0ce50 100644
--- a/engines/wintermute/base/gfx/base_renderer3d.cpp
+++ b/engines/wintermute/base/gfx/base_renderer3d.cpp
@@ -45,7 +45,7 @@ BaseRenderer3D::BaseRenderer3D(Wintermute::BaseGame *inGame) : BaseRenderer(inGa
 	DXMatrixIdentity(&_viewMatrix);
 	DXMatrixIdentity(&_projectionMatrix);
 
-	_gamma = -1;
+	_brightnessOknytt = -1;
 }
 
 BaseRenderer3D::~BaseRenderer3D() {
diff --git a/engines/wintermute/base/gfx/base_renderer3d.h b/engines/wintermute/base/gfx/base_renderer3d.h
index 0074116a2ef..a89ed16e3e8 100644
--- a/engines/wintermute/base/gfx/base_renderer3d.h
+++ b/engines/wintermute/base/gfx/base_renderer3d.h
@@ -155,11 +155,12 @@ public:
 
 	void endSaveLoad() override;
 
-	void setGamma(int32 gamma) {
-		_gamma = gamma;
+	void setBrightnessOknytt(int32 brightness) {
+		_brightnessOknytt = brightness;
+	}
+	float getBrightnessOknytt() {
+		return _brightnessOknytt;
 	}
-	float getGamma() {
-		return _gamma;
 	}
 
 	// ScummVM specific methods <--
@@ -175,7 +176,7 @@ protected:
 	TRendererState _state;
 	PostFilter _postFilterMode;
 	bool _flipInProgress;
-	int32 _gamma;
+	int32 _brightnessOknytt;
 
 	virtual void setAmbientLightRenderState() = 0;
 };
diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
index e57241f5340..a51977c3c8a 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
@@ -1060,7 +1060,7 @@ void BaseRenderOpenGL3D::postfilter() {
 	};
 
 	// This is for game 'Oknytt'
-	if (_gamma != -1) {
+	if (_brightnessOknytt != -1) {
 		setup2D();
 		glViewport(0, 0, _width, _height);
 
@@ -1088,15 +1088,15 @@ void BaseRenderOpenGL3D::postfilter() {
 		glVertexPointer(2, GL_FLOAT, 0, vertices);
 		glTexCoordPointer(2, GL_FLOAT, 0, texCoords);
 
-		if (_gamma <= 140) {
-			float factor = 1.0f - (140.0f - _gamma) / 50.0f;
+		if (_brightnessOknytt <= 140) {
+			float factor = 1.0f - (140.0f - _brightnessOknytt) / 50.0f;
 			glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 			glColor4f(factor, factor, factor, 1.0f);
 			glDrawArrays(GL_QUADS, 0, 4);
 		} else {
 			glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
 			glDrawArrays(GL_QUADS, 0, 4);
-			float alpha = (_gamma - 140.0f) / 200.0f;
+			float alpha = (_brightnessOknytt - 140.0f) / 200.0f;
 			glDisable(GL_TEXTURE_2D);
 			glEnable(GL_BLEND);
 			glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
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 70916a22190..b440e5a7639 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
@@ -63,7 +63,7 @@ BaseRenderOpenGL3DShader::~BaseRenderOpenGL3DShader() {
 	glDeleteBuffers(1, &_rectangleVBO);
 	glDeleteBuffers(1, &_simpleShadowVBO);
 	glDeleteBuffers(1, &_postfilterVBO);
-	glDeleteBuffers(1, &_gammaVBO);
+	glDeleteBuffers(1, &_brightnessVBO);
 }
 
 bool BaseRenderOpenGL3DShader::initRenderer(int width, int height, bool windowed) {
@@ -185,15 +185,15 @@ bool BaseRenderOpenGL3DShader::initRenderer(int width, int height, bool windowed
 	_postfilterShader->enableVertexAttribute("position", _postfilterVBO, 2, GL_FLOAT, false, 4 * sizeof(GLfloat), 0);
 	_postfilterShader->enableVertexAttribute("texcoord", _postfilterVBO, 2, GL_FLOAT, false, 4 * sizeof(GLfloat), 8);
 
-	glGenBuffers(1, &_gammaVBO);
-	glBindBuffer(GL_ARRAY_BUFFER, _gammaVBO);
+	glGenBuffers(1, &_brightnessVBO);
+	glBindBuffer(GL_ARRAY_BUFFER, _brightnessVBO);
 	glBufferData(GL_ARRAY_BUFFER, 16 * sizeof(GLfloat), quadVertices, GL_STATIC_DRAW);
 	glBindBuffer(GL_ARRAY_BUFFER, 0);
 
-	static const char *gammaAttributes[] = { "position", "texcoord", nullptr };
-	_gammaShader = OpenGL::Shader::fromFiles("wme_gamma", gammaAttributes);
-	_gammaShader->enableVertexAttribute("position", _gammaVBO, 2, GL_FLOAT, false, 4 * sizeof(GLfloat), 0);
-	_gammaShader->enableVertexAttribute("texcoord", _gammaVBO, 2, GL_FLOAT, false, 4 * sizeof(GLfloat), 8);
+	static const char *brightnessAttributes[] = { "position", "texcoord", nullptr };
+	_brightnessShader = OpenGL::Shader::fromFiles("wme_brightness_oknytt", brightnessAttributes);
+	_brightnessShader->enableVertexAttribute("position", _brightnessVBO, 2, GL_FLOAT, false, 4 * sizeof(GLfloat), 0);
+	_brightnessShader->enableVertexAttribute("texcoord", _brightnessVBO, 2, GL_FLOAT, false, 4 * sizeof(GLfloat), 8);
 
 	glGenTextures(1, &_postfilterTexture);
 	glBindTexture(GL_TEXTURE_2D, _postfilterTexture);
@@ -1165,18 +1165,18 @@ bool BaseRenderOpenGL3DShader::setProjectionTransform(const DXMatrix &transform)
 
 void BaseRenderOpenGL3DShader::postfilter() {
 	// This is for game 'Oknytt'
-	if (_gamma != -1) {
+	if (_brightnessOknytt != -1) {
 		setup2D();
 		glViewport(0, 0, _width, _height);
 		glDisable(GL_BLEND);
 		glDisable(GL_CULL_FACE);
 
-		_gammaShader->use();
+		_brightnessShader->use();
 
 		glActiveTexture(GL_TEXTURE0);
 		glBindTexture(GL_TEXTURE_2D, _postfilterTexture);
-		glUniform1i(_gammaShader->getUniformLocation("tex"), 0);
-		_gammaShader->setUniform1f("gammaValue", _gamma);
+		glUniform1i(_brightnessShader->getUniformLocation("tex"), 0);
+		_brightnessShader->setUniform1f("brightnessValue", _brightnessOknytt);
 
 		g_system->presentBuffer();
 		glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, _width, _height, 0);
diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.h b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.h
index 043bddfd256..d4d9099a012 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.h
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.h
@@ -181,7 +181,7 @@ private:
 	GLuint _rectangleVBO{};
 	GLuint _simpleShadowVBO{};
 	GLuint _postfilterVBO{};
-	GLuint _gammaVBO{};
+	GLuint _brightnessVBO{};
 	OpenGL::Shader *_spriteShader{};
 	OpenGL::Shader *_fadeShader{};
 	OpenGL::Shader *_xmodelShader{};
@@ -191,7 +191,7 @@ private:
 	OpenGL::Shader *_shadowVolumeShader{};
 	OpenGL::Shader *_lineShader{};
 	OpenGL::Shader *_postfilterShader{};
-	OpenGL::Shader *_gammaShader{};
+	OpenGL::Shader *_brightnessShader{};
 	GLuint _postfilterTexture;
 };
 
diff --git a/engines/wintermute/base/gfx/opengl/shaders/wme_brightness_oknytt.fragment b/engines/wintermute/base/gfx/opengl/shaders/wme_brightness_oknytt.fragment
new file mode 100644
index 00000000000..3a29dc0cc9f
--- /dev/null
+++ b/engines/wintermute/base/gfx/opengl/shaders/wme_brightness_oknytt.fragment
@@ -0,0 +1,13 @@
+varying vec2 texPos;
+
+uniform sampler2D tex;
+uniform float brightnessValue;
+
+OUTPUT
+
+void main() {
+	vec4 color = texture2D(tex, texPos);
+	float t = (brightnessValue - 140.0) / 15.0;
+	float brightness = exp2(t * 0.5);
+	outColor = vec4(pow(color.rgb, vec3(1.0 / brightness)), 1.0);
+}
diff --git a/engines/wintermute/base/gfx/opengl/shaders/wme_gamma.vertex b/engines/wintermute/base/gfx/opengl/shaders/wme_brightness_oknytt.vertex
similarity index 100%
rename from engines/wintermute/base/gfx/opengl/shaders/wme_gamma.vertex
rename to engines/wintermute/base/gfx/opengl/shaders/wme_brightness_oknytt.vertex
diff --git a/engines/wintermute/base/gfx/opengl/shaders/wme_gamma.fragment b/engines/wintermute/base/gfx/opengl/shaders/wme_gamma.fragment
deleted file mode 100644
index 554754e8a4a..00000000000
--- a/engines/wintermute/base/gfx/opengl/shaders/wme_gamma.fragment
+++ /dev/null
@@ -1,13 +0,0 @@
-varying vec2 texPos;
-
-uniform sampler2D tex;
-uniform float gammaValue;
-
-OUTPUT
-
-void main() {
-	vec4 color = texture2D(tex, texPos);
-	float t = (gammaValue - 140.0) / 15.0;
-	float gamma = exp2(t * 0.5);
-	outColor = vec4(pow(color.rgb, vec3(1.0 / gamma)), 1.0);
-}




More information about the Scummvm-git-logs mailing list