[Scummvm-git-logs] scummvm master -> 3413d16275f5be458097cf3bf002e661bf9b2f20
aquadran
noreply at scummvm.org
Wed May 14 16:04:44 UTC 2025
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:
3413d16275 WINTERMUTE: Drop not implemented batch mode, not real benefit for opengl
Commit: 3413d16275f5be458097cf3bf002e661bf9b2f20
https://github.com/scummvm/scummvm/commit/3413d16275f5be458097cf3bf002e661bf9b2f20
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2025-05-14T18:04:40+02:00
Commit Message:
WINTERMUTE: Drop not implemented batch mode, not real benefit for opengl
Changed paths:
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
diff --git a/engines/wintermute/base/gfx/base_renderer3d.cpp b/engines/wintermute/base/gfx/base_renderer3d.cpp
index 9babae9c260..1e348d80287 100644
--- a/engines/wintermute/base/gfx/base_renderer3d.cpp
+++ b/engines/wintermute/base/gfx/base_renderer3d.cpp
@@ -37,13 +37,6 @@ BaseRenderer3D::BaseRenderer3D(Wintermute::BaseGame *inGame) : BaseRenderer(inGa
_lastTexture = nullptr;
- _blendMode = Graphics::BLEND_UNKNOWN;
-
- _spriteBatchMode = false;
- _batchBlendMode = Graphics::BLEND_UNKNOWN;
- _batchAlphaDisable = false;
- _batchTexture = nullptr;
-
_ambientLightColor = 0x00000000;
_ambientLightOverride = false;
diff --git a/engines/wintermute/base/gfx/base_renderer3d.h b/engines/wintermute/base/gfx/base_renderer3d.h
index 0f8936fefe2..87064ea8407 100644
--- a/engines/wintermute/base/gfx/base_renderer3d.h
+++ b/engines/wintermute/base/gfx/base_renderer3d.h
@@ -182,10 +182,6 @@ protected:
float _nearClipPlane;
float _farClipPlane;
TRendererState _state;
- bool _spriteBatchMode;
- Graphics::TSpriteBlendMode _batchBlendMode;
- bool _batchAlphaDisable;
- BaseSurfaceOpenGL3D *_batchTexture;
PostFilter _postFilterMode;
// NOT declared in sub class: HRESULT CreateShaderQuad();
diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
index 149720c4905..16c432cb018 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
@@ -307,12 +307,6 @@ bool BaseRenderOpenGL3D::drawSpriteEx(BaseSurface *tex, const Wintermute::Rect32
if (!texture)
return false;
- if (_spriteBatchMode) {
- _batchTexture = texture;
- _batchAlphaDisable = alphaDisable;
- _batchBlendMode = blendMode;
- }
-
if (_forceAlphaColor != 0) {
color = _forceAlphaColor;
}
@@ -338,12 +332,6 @@ bool BaseRenderOpenGL3D::drawSpriteEx(BaseSurface *tex, const Wintermute::Rect32
SpriteVertex vertices[4] = {};
- // batch mode
- if (_spriteBatchMode) {
- // TODO
- commitSpriteBatch();
- }
-
// Convert to OpenGL origin space
SWAP(texTop, texBottom);
@@ -399,68 +387,41 @@ bool BaseRenderOpenGL3D::drawSpriteEx(BaseSurface *tex, const Wintermute::Rect32
transformVertices(vertices, &rotation, &sc, degToRad(-angle));
}
- if (_spriteBatchMode) {
- // TODO
- } else {
- setSpriteBlendMode(blendMode);
- if (alphaDisable) {
- glDisable(GL_ALPHA_TEST);
- glDisable(GL_BLEND);
- }
-
- if (_lastTexture != texture) {
- _lastTexture = texture;
- glBindTexture(GL_TEXTURE_2D, texture->getTextureName());
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- // for sprites we clamp to the edge, to avoid line fragments at the edges
- // this is not done by wme, though
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- glEnable(GL_TEXTURE_2D);
- }
-
- setProjection2D();
-
- glEnableClientState(GL_COLOR_ARRAY);
- glEnableClientState(GL_VERTEX_ARRAY);
- glEnableClientState(GL_TEXTURE_COORD_ARRAY);
- glDisableClientState(GL_NORMAL_ARRAY);
-
- glVertexPointer(3, GL_FLOAT, sizeof(SpriteVertex), &vertices[0].x);
- glTexCoordPointer(2, GL_FLOAT, sizeof(SpriteVertex), &vertices[0].u);
- glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(SpriteVertex), &vertices[0].r);
-
- glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
-
- glDisableClientState(GL_COLOR_ARRAY);
- glDisableClientState(GL_VERTEX_ARRAY);
- glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-
- if (alphaDisable) {
- glEnable(GL_ALPHA_TEST);
- glEnable(GL_BLEND);
- }
- }
-
- return true;
-}
-
-bool BaseRenderOpenGL3D::commitSpriteBatch() {
- // render
- setSpriteBlendMode(_batchBlendMode);
- if (_batchAlphaDisable) {
+ setSpriteBlendMode(blendMode);
+ if (alphaDisable) {
glDisable(GL_ALPHA_TEST);
glDisable(GL_BLEND);
}
- if (_lastTexture != _batchTexture) {
- _lastTexture = _batchTexture;
- glBindTexture(GL_TEXTURE_2D, _batchTexture->getTextureName());
+ if (_lastTexture != texture) {
+ _lastTexture = texture;
+ glBindTexture(GL_TEXTURE_2D, texture->getTextureName());
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ // for sprites we clamp to the edge, to avoid line fragments at the edges
+ // this is not done by wme, though
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glEnable(GL_TEXTURE_2D);
}
- // TODO
+ setProjection2D();
- if (_batchAlphaDisable) {
+ glEnableClientState(GL_COLOR_ARRAY);
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+ glDisableClientState(GL_NORMAL_ARRAY);
+
+ glVertexPointer(3, GL_FLOAT, sizeof(SpriteVertex), &vertices[0].x);
+ glTexCoordPointer(2, GL_FLOAT, sizeof(SpriteVertex), &vertices[0].u);
+ glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(SpriteVertex), &vertices[0].r);
+
+ glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
+
+ glDisableClientState(GL_COLOR_ARRAY);
+ glDisableClientState(GL_VERTEX_ARRAY);
+ glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+
+ if (alphaDisable) {
glEnable(GL_ALPHA_TEST);
glEnable(GL_BLEND);
}
@@ -468,17 +429,19 @@ bool BaseRenderOpenGL3D::commitSpriteBatch() {
return true;
}
+bool BaseRenderOpenGL3D::commitSpriteBatch() {
+ // nothing to implement
+ return true;
+}
+
bool BaseRenderOpenGL3D::startSpriteBatch() {
- //_spriteBatchMode = true;
+ // nothing to implement
return true;
}
bool BaseRenderOpenGL3D::endSpriteBatch() {
- if (!_spriteBatchMode)
- return false;
-
- _spriteBatchMode = false;
- return commitSpriteBatch();
+ // nothing to implement
+ return true;
}
DXMatrix *BaseRenderOpenGL3D::buildMatrix(DXMatrix* out, const DXVector2 *centre, const DXVector2 *scaling, float angle) {
@@ -751,8 +714,6 @@ int BaseRenderOpenGL3D::getMaxActiveLights() {
bool BaseRenderOpenGL3D::invalidateTexture(BaseSurfaceOpenGL3D *texture) {
if (_lastTexture == texture)
_lastTexture = nullptr;
- if (_batchTexture == texture)
- _batchTexture = nullptr;
return true;
}
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 330570c22b1..83f62c05b10 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
@@ -333,12 +333,6 @@ bool BaseRenderOpenGL3DShader::drawSpriteEx(BaseSurface *tex, const Wintermute::
if (!texture)
return false;
- if (_spriteBatchMode) {
- _batchTexture = texture;
- _batchAlphaDisable = alphaDisable;
- _batchBlendMode = blendMode;
- }
-
if (_forceAlphaColor != 0) {
color = _forceAlphaColor;
}
@@ -364,12 +358,6 @@ bool BaseRenderOpenGL3DShader::drawSpriteEx(BaseSurface *tex, const Wintermute::
SpriteVertex vertices[4] = {};
- // batch mode
- if (_spriteBatchMode) {
- // TODO
- commitSpriteBatch();
- }
-
// Convert to OpenGL origin space
SWAP(texTop, texBottom);
@@ -425,58 +413,31 @@ bool BaseRenderOpenGL3DShader::drawSpriteEx(BaseSurface *tex, const Wintermute::
transformVertices(vertices, &rotation, &sc, degToRad(-angle));
}
- if (_spriteBatchMode) {
- // TODO
- } else {
- setSpriteBlendMode(blendMode);
- if (alphaDisable) {
- _spriteShader->setUniform("alphaTest", false);
- glDisable(GL_BLEND);
- }
-
- if (_lastTexture != texture) {
- _lastTexture = texture;
- glBindTexture(GL_TEXTURE_2D, texture->getTextureName());
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- // for sprites we clamp to the edge, to avoid line fragments at the edges
- // this is not done by wme, though
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- glEnable(GL_TEXTURE_2D);
- }
-
- glBindBuffer(GL_ARRAY_BUFFER, _spriteVBO);
- glBufferSubData(GL_ARRAY_BUFFER, 0, 4 * sizeof(SpriteVertex), vertices);
-
- setProjection2D(_spriteShader);
-
- glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
-
- if (alphaDisable) {
- _spriteShader->setUniform("alphaTest", true);
- glEnable(GL_BLEND);
- }
- }
-
- return true;
-}
-
-bool BaseRenderOpenGL3DShader::commitSpriteBatch() {
- // render
- setSpriteBlendMode(_batchBlendMode);
- if (_batchAlphaDisable) {
+ setSpriteBlendMode(blendMode);
+ if (alphaDisable) {
_spriteShader->setUniform("alphaTest", false);
glDisable(GL_BLEND);
}
- if (_lastTexture != _batchTexture) {
- _lastTexture = _batchTexture;
- glBindTexture(GL_TEXTURE_2D, _batchTexture->getTextureName());
+ if (_lastTexture != texture) {
+ _lastTexture = texture;
+ glBindTexture(GL_TEXTURE_2D, texture->getTextureName());
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ // for sprites we clamp to the edge, to avoid line fragments at the edges
+ // this is not done by wme, though
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glEnable(GL_TEXTURE_2D);
}
- // TODO
+ glBindBuffer(GL_ARRAY_BUFFER, _spriteVBO);
+ glBufferSubData(GL_ARRAY_BUFFER, 0, 4 * sizeof(SpriteVertex), vertices);
+
+ setProjection2D(_spriteShader);
+
+ glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
- if (_batchAlphaDisable) {
+ if (alphaDisable) {
_spriteShader->setUniform("alphaTest", true);
glEnable(GL_BLEND);
}
@@ -484,17 +445,19 @@ bool BaseRenderOpenGL3DShader::commitSpriteBatch() {
return true;
}
+bool BaseRenderOpenGL3DShader::commitSpriteBatch() {
+ // nothing to implement
+ return true;
+}
+
bool BaseRenderOpenGL3DShader::startSpriteBatch() {
- //_spriteBatchMode = true;
+ // nothing to implement
return true;
}
bool BaseRenderOpenGL3DShader::endSpriteBatch() {
- if (!_spriteBatchMode)
- return false;
-
- _spriteBatchMode = false;
- return commitSpriteBatch();
+ // nothing to implement
+ return true;
}
DXMatrix *BaseRenderOpenGL3DShader::buildMatrix(DXMatrix* out, const DXVector2 *centre, const DXVector2 *scaling, float angle) {
@@ -708,8 +671,6 @@ int BaseRenderOpenGL3DShader::getMaxActiveLights() {
bool BaseRenderOpenGL3DShader::invalidateTexture(BaseSurfaceOpenGL3D *texture) {
if (_lastTexture == texture)
_lastTexture = nullptr;
- if (_batchTexture == texture)
- _batchTexture = nullptr;
return true;
}
More information about the Scummvm-git-logs
mailing list