[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