[Scummvm-git-logs] scummvm master -> ea011b437b36a530a1db468a4d7e9c3ea30e8534
aquadran
noreply at scummvm.org
Thu Oct 31 16:24:55 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:
ea011b437b WINTERMUTE: Cleanup renderer init() function
Commit: ea011b437b36a530a1db468a4d7e9c3ea30e8534
https://github.com/scummvm/scummvm/commit/ea011b437b36a530a1db468a4d7e9c3ea30e8534
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2024-10-31T17:24:50+01:00
Commit Message:
WINTERMUTE: Cleanup renderer init() function
Changed paths:
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
engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp
engines/wintermute/base/gfx/opengl/meshx_opengl_shader.h
diff --git a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
index 3d77aa19675..9b949386548 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d.cpp
@@ -68,23 +68,10 @@ BaseRenderOpenGL3D::BaseRenderOpenGL3D(BaseGame *inGame) : BaseRenderer3D(inGame
}
BaseRenderOpenGL3D::~BaseRenderOpenGL3D() {
- _camera = nullptr;
+ _camera = nullptr; // ref only
}
bool BaseRenderOpenGL3D::initRenderer(int width, int height, bool windowed) {
- _windowed = !ConfMan.getBool("fullscreen");
- _width = width;
- _height = height;
-
- _nearClipPlane = 90.0f;
- _farClipPlane = 10000.0f;
-
- setViewport(0, 0, width, height);
-
- _active = true;
- // setup a proper state
- setup2D(true);
-
_simpleShadow[0].x = -1.0f;
_simpleShadow[0].y = 0.0f;
_simpleShadow[0].z = 1.0f;
@@ -121,8 +108,18 @@ bool BaseRenderOpenGL3D::initRenderer(int width, int height, bool windowed) {
_simpleShadow[3].u = 1.0f;
_simpleShadow[3].v = 0.0f;
+
+
+ _windowed = !ConfMan.getBool("fullscreen");
+ _width = width;
+ _height = height;
+
+ setViewport(0, 0, width, height);
+
setProjection();
+ _active = true;
+
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 7abad24c687..2b55d58664b 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.cpp
@@ -58,19 +58,16 @@ BaseRenderer3D *makeOpenGL3DShaderRenderer(BaseGame *inGame) {
}
BaseRenderOpenGL3DShader::BaseRenderOpenGL3DShader(BaseGame *inGame) : BaseRenderer3D(inGame) {
- _flatShadowMaskShader = nullptr;
+ _spriteVBO = 0;
}
BaseRenderOpenGL3DShader::~BaseRenderOpenGL3DShader() {
- _camera = nullptr;
-
+ _camera = nullptr; // ref only
glDeleteBuffers(1, &_spriteVBO);
- glDeleteTextures(1, &_flatShadowRenderTexture);
- glDeleteRenderbuffers(1, &_flatShadowDepthBuffer);
- glDeleteFramebuffers(1, &_flatShadowFrameBuffer);
}
bool BaseRenderOpenGL3DShader::initRenderer(int width, int height, bool windowed) {
+
glGenBuffers(1, &_spriteVBO);
glBindBuffer(GL_ARRAY_BUFFER, _spriteVBO);
glBufferData(GL_ARRAY_BUFFER, 4 * sizeof(SpriteVertexShader), nullptr, GL_DYNAMIC_DRAW);
@@ -106,25 +103,16 @@ bool BaseRenderOpenGL3DShader::initRenderer(int width, int height, bool windowed
lightEnable(i, false);
}
- _windowed = !ConfMan.getBool("fullscreen");
- _width = width;
- _height = height;
-
- _nearClipPlane = 90.0f;
- _farClipPlane = 10000.0f;
-
- setViewport(0, 0, width, height);
-
float fadeVertexCoords[8];
- fadeVertexCoords[0 * 2 + 0] = _viewportRect.left;
- fadeVertexCoords[0 * 2 + 1] = _viewportRect.bottom;
- fadeVertexCoords[1 * 2 + 0] = _viewportRect.left;
- fadeVertexCoords[1 * 2 + 1] = _viewportRect.top;
- fadeVertexCoords[2 * 2 + 0] = _viewportRect.right;
- fadeVertexCoords[2 * 2 + 1] = _viewportRect.bottom;
- fadeVertexCoords[3 * 2 + 0] = _viewportRect.right;
- fadeVertexCoords[3 * 2 + 1] = _viewportRect.top;
+ fadeVertexCoords[0 * 2 + 0] = 0;
+ fadeVertexCoords[0 * 2 + 1] = height;
+ fadeVertexCoords[1 * 2 + 0] = 0;
+ fadeVertexCoords[1 * 2 + 1] = 0;
+ fadeVertexCoords[2 * 2 + 0] = width;
+ fadeVertexCoords[2 * 2 + 1] = height;
+ fadeVertexCoords[3 * 2 + 0] = width;
+ fadeVertexCoords[3 * 2 + 1] = 0;
glGenBuffers(1, &_fadeVBO);
glBindBuffer(GL_ARRAY_BUFFER, _fadeVBO);
@@ -144,13 +132,18 @@ bool BaseRenderOpenGL3DShader::initRenderer(int width, int height, bool windowed
_lineShader = OpenGL::Shader::fromFiles("wme_line", lineAttributes);
_lineShader->enableVertexAttribute("position", _lineVBO, 2, GL_FLOAT, false, 8, 0);
- static const char *flatShadowXModelAttributes[] = { "position", nullptr };
- _flatShadowXModelShader = OpenGL::Shader::fromFiles("wme_flat_shadow_modelx", flatShadowXModelAttributes);
- _active = true;
+
+ _windowed = !ConfMan.getBool("fullscreen");
+ _width = width;
+ _height = height;
+
+ setViewport(0, 0, width, height);
setProjection();
+ _active = true;
+
return true;
}
@@ -761,7 +754,7 @@ Mesh3DS *BaseRenderOpenGL3DShader::createMesh3DS() {
}
XMesh *BaseRenderOpenGL3DShader::createXMesh() {
- return new XMeshOpenGLShader(_gameRef, _xmodelShader, _flatShadowXModelShader);
+ return new XMeshOpenGLShader(_gameRef, _xmodelShader);
}
ShadowVolume *BaseRenderOpenGL3DShader::createShadowVolume() {
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 6ea6005eb23..99eeb7c416a 100644
--- a/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.h
+++ b/engines/wintermute/base/gfx/opengl/base_render_opengl3d_shader.h
@@ -130,9 +130,6 @@ private:
GLuint _spriteVBO;
GLuint _fadeVBO;
GLuint _lineVBO;
- GLuint _flatShadowFrameBuffer;
- GLuint _flatShadowRenderTexture;
- GLuint _flatShadowDepthBuffer;
OpenGL::Shader *_spriteShader;
OpenGL::Shader *_fadeShader;
OpenGL::Shader *_xmodelShader;
@@ -140,8 +137,6 @@ private:
OpenGL::Shader *_shadowVolumeShader;
OpenGL::Shader *_shadowMaskShader;
OpenGL::Shader *_lineShader;
- OpenGL::Shader *_flatShadowXModelShader;
- OpenGL::Shader *_flatShadowMaskShader;
};
} // namespace Wintermute
diff --git a/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp b/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp
index ad84baa1c4e..12de425b9a3 100644
--- a/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp
+++ b/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp
@@ -38,8 +38,8 @@
namespace Wintermute {
//////////////////////////////////////////////////////////////////////////
-XMeshOpenGLShader::XMeshOpenGLShader(BaseGame *inGame, OpenGL::Shader *shader, OpenGL::Shader *flatShadowShader) :
- XMesh(inGame), _shader(shader), _flatShadowShader(flatShadowShader) {
+XMeshOpenGLShader::XMeshOpenGLShader(BaseGame *inGame, OpenGL::Shader *shader) :
+ XMesh(inGame), _shader(shader) {
glGenBuffers(1, &_vertexBuffer);
glGenBuffers(1, &_indexBuffer);
}
diff --git a/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.h b/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.h
index 3b664af7923..4d84e8b39cb 100644
--- a/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.h
+++ b/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.h
@@ -38,7 +38,7 @@ namespace Wintermute {
class XMeshOpenGLShader : public XMesh {
public:
- XMeshOpenGLShader(BaseGame *inGame, OpenGL::Shader *shader, OpenGL::Shader *flatShadowShader);
+ XMeshOpenGLShader(BaseGame *inGame, OpenGL::Shader *shader);
~XMeshOpenGLShader() override;
bool loadFromXData(const Common::String &filename, XFileData *xobj) override;
More information about the Scummvm-git-logs
mailing list