[Scummvm-git-logs] scummvm master -> 314de12b0526256bf2c71b289815d1d3c94de422
bluegr
noreply at scummvm.org
Wed Jun 21 06:44:10 UTC 2023
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
1fb6489072 GRIM: Add runtime introspection of renderer type used via `get_renderer` console command.
314de12b05 GRIM: Rename `[gs]et_renderer` console commands into `renderer_[gs]et`.
Commit: 1fb6489072f3c10716c2dabaad525a029e704c1e
https://github.com/scummvm/scummvm/commit/1fb6489072f3c10716c2dabaad525a029e704c1e
Author: KOLANICH (kolan_n at mail.ru)
Date: 2023-06-21T09:44:05+03:00
Commit Message:
GRIM: Add runtime introspection of renderer type used via `get_renderer` console command.
Changed paths:
engines/grim/debugger.cpp
engines/grim/debugger.h
engines/grim/gfx_base.cpp
engines/grim/gfx_base.h
engines/grim/gfx_opengl.cpp
engines/grim/gfx_opengl_shaders.cpp
engines/grim/gfx_tinygl.cpp
engines/grim/grim.cpp
engines/grim/grim.h
diff --git a/engines/grim/debugger.cpp b/engines/grim/debugger.cpp
index 51200329b37..9e07d614c8c 100644
--- a/engines/grim/debugger.cpp
+++ b/engines/grim/debugger.cpp
@@ -36,6 +36,7 @@ Debugger::Debugger() :
registerCmd("lua_do", WRAP_METHOD(Debugger, cmd_lua_do));
registerCmd("jump", WRAP_METHOD(Debugger, cmd_jump));
registerCmd("set_renderer", WRAP_METHOD(Debugger, cmd_set_renderer));
+ registerCmd("get_renderer", WRAP_METHOD(Debugger, cmd_get_renderer));
registerCmd("save", WRAP_METHOD(Debugger, cmd_save));
registerCmd("load", WRAP_METHOD(Debugger, cmd_load));
}
@@ -107,6 +108,12 @@ bool Debugger::cmd_set_renderer(int argc, const char **argv) {
return false;
}
+bool Debugger::cmd_get_renderer(int argc, const char **argv) {
+ auto rendererCodeStr = Graphics::Renderer::getTypeCode(g_grim->getRendererType());
+ debugPrintf("%s\n", rendererCodeStr.c_str());
+ return true;
+}
+
bool Debugger::cmd_save(int argc, const char **argv) {
if (argc < 2) {
debugPrintf("Usage: save <save name>\n");
diff --git a/engines/grim/debugger.h b/engines/grim/debugger.h
index 465e1c19b9c..9557a5eb5f6 100644
--- a/engines/grim/debugger.h
+++ b/engines/grim/debugger.h
@@ -36,6 +36,7 @@ public:
bool cmd_checkFiles(int argc, const char **argv);
bool cmd_lua_do(int argc, const char **argv);
bool cmd_jump(int argc, const char **argv);
+ bool cmd_get_renderer(int argc, const char **argv);
bool cmd_set_renderer(int argc, const char **argv);
bool cmd_save(int argc, const char **argv);
bool cmd_load(int argc, const char **argv);
diff --git a/engines/grim/gfx_base.cpp b/engines/grim/gfx_base.cpp
index 27454463c2c..6b9f0e725ea 100644
--- a/engines/grim/gfx_base.cpp
+++ b/engines/grim/gfx_base.cpp
@@ -46,6 +46,7 @@
namespace Grim {
GfxBase::GfxBase() :
+ type(Graphics::RendererType::kRendererTypeDefault),
_renderBitmaps(true), _renderZBitmaps(true), _shadowModeActive(false),
_currentPos(0, 0, 0), _dimLevel(0.0f),
_screenWidth(0), _screenHeight(0),
diff --git a/engines/grim/gfx_base.h b/engines/grim/gfx_base.h
index 7287c8d6532..d8c2cd2c4bd 100644
--- a/engines/grim/gfx_base.h
+++ b/engines/grim/gfx_base.h
@@ -28,6 +28,8 @@
#include "common/str.h"
#include "common/rect.h"
+#include "graphics/renderer.h"
+
#include "engines/grim/material.h"
namespace Graphics {
@@ -266,6 +268,8 @@ public:
virtual void createSpecialtyTexture(uint id, const uint8 *data, int width, int height);
virtual void createSpecialtyTextureFromScreen(uint id, uint8 *data, int x, int y, int width, int height) = 0;
+ Graphics::RendererType type;
+
static Math::Matrix4 makeLookMatrix(const Math::Vector3d& pos, const Math::Vector3d& interest, const Math::Vector3d& up);
static Math::Matrix4 makeProjMatrix(float fov, float nclip, float fclip);
Texture *getSpecialtyTexturePtr(uint id) { if (id >= _numSpecialtyTextures) return nullptr; return &_specialtyTextures[id]; };
diff --git a/engines/grim/gfx_opengl.cpp b/engines/grim/gfx_opengl.cpp
index 8b6a9a823c7..9c4c3acbff4 100644
--- a/engines/grim/gfx_opengl.cpp
+++ b/engines/grim/gfx_opengl.cpp
@@ -80,6 +80,7 @@ GfxOpenGL::GfxOpenGL() : _smushNumTex(0),
_useDepthShader(false), _fragmentProgram(0), _useDimShader(0),
_dimFragProgram(0), _maxLights(0), _storedDisplay(nullptr),
_emergFont(0), _alpha(1.f) {
+ type = Graphics::RendererType::kRendererTypeOpenGL;
// GL_LEQUAL as glDepthFunc ensures that subsequent drawing attempts for
// the same triangles are not ignored by the depth test.
// That's necessary for EMI where some models have multiple faces which
diff --git a/engines/grim/gfx_opengl_shaders.cpp b/engines/grim/gfx_opengl_shaders.cpp
index d8151121e86..9feeab40aae 100644
--- a/engines/grim/gfx_opengl_shaders.cpp
+++ b/engines/grim/gfx_opengl_shaders.cpp
@@ -205,6 +205,7 @@ GfxBase *CreateGfxOpenGLShader() {
}
GfxOpenGLS::GfxOpenGLS() {
+ type = Graphics::RendererType::kRendererTypeOpenGLShaders;
_smushTexId = 0;
_matrixStack.push(Math::Matrix4());
_fov = -1.0;
diff --git a/engines/grim/gfx_tinygl.cpp b/engines/grim/gfx_tinygl.cpp
index 05c9747ddd9..ef563fcf096 100644
--- a/engines/grim/gfx_tinygl.cpp
+++ b/engines/grim/gfx_tinygl.cpp
@@ -50,6 +50,7 @@ GfxTinyGL::GfxTinyGL() :
_alpha(1.f),
_currentActor(nullptr), _smushImage(nullptr),
_storedDisplay(nullptr) {
+ type = Graphics::RendererType::kRendererTypeTinyGL;
// TGL_LEQUAL as tglDepthFunc ensures that subsequent drawing attempts for
// the same triangles are not ignored by the depth test.
// That's necessary for EMI where some models have multiple faces which
diff --git a/engines/grim/grim.cpp b/engines/grim/grim.cpp
index 5a079197bc7..62430a8c39e 100644
--- a/engines/grim/grim.cpp
+++ b/engines/grim/grim.cpp
@@ -1716,6 +1716,10 @@ void GrimEngine::enableCutscene(uint32 number) {
_cutsceneEnabled[number] = true;
}
+Graphics::RendererType GrimEngine::getRendererType() {
+ return g_driver->type;
+}
+
void GrimEngine::setSaveMetaData(const char *meta1, int meta2, const char *meta3) {
_saveMeta1 = meta1;
_saveMeta2 = meta2;
diff --git a/engines/grim/grim.h b/engines/grim/grim.h
index 701f1657f1c..4263c12cb00 100644
--- a/engines/grim/grim.h
+++ b/engines/grim/grim.h
@@ -29,6 +29,8 @@
#include "common/hashmap.h"
#include "common/events.h"
+#include "graphics/renderer.h"
+
#include "engines/grim/textobject.h"
#include "engines/grim/iris.h"
#include "engines/grim/detection.h"
@@ -173,6 +175,8 @@ public:
Commentary *getCommentary() { return _commentary; }
+ Graphics::RendererType getRendererType();
+
// TODO: Refactor.
void setSaveMetaData(const char*, int, const char*);
Commit: 314de12b0526256bf2c71b289815d1d3c94de422
https://github.com/scummvm/scummvm/commit/314de12b0526256bf2c71b289815d1d3c94de422
Author: KOLANICH (kolan_n at mail.ru)
Date: 2023-06-21T09:44:05+03:00
Commit Message:
GRIM: Rename `[gs]et_renderer` console commands into `renderer_[gs]et`.
Changed paths:
engines/grim/debugger.cpp
engines/grim/debugger.h
diff --git a/engines/grim/debugger.cpp b/engines/grim/debugger.cpp
index 9e07d614c8c..450921a1812 100644
--- a/engines/grim/debugger.cpp
+++ b/engines/grim/debugger.cpp
@@ -35,8 +35,8 @@ Debugger::Debugger() :
registerCmd("check_gamedata", WRAP_METHOD(Debugger, cmd_checkFiles));
registerCmd("lua_do", WRAP_METHOD(Debugger, cmd_lua_do));
registerCmd("jump", WRAP_METHOD(Debugger, cmd_jump));
- registerCmd("set_renderer", WRAP_METHOD(Debugger, cmd_set_renderer));
- registerCmd("get_renderer", WRAP_METHOD(Debugger, cmd_get_renderer));
+ registerCmd("renderer_set", WRAP_METHOD(Debugger, cmd_renderer_set));
+ registerCmd("renderer_get", WRAP_METHOD(Debugger, cmd_renderer_get));
registerCmd("save", WRAP_METHOD(Debugger, cmd_save));
registerCmd("load", WRAP_METHOD(Debugger, cmd_load));
}
@@ -90,9 +90,9 @@ bool Debugger::cmd_jump(int argc, const char **argv) {
return true;
}
-bool Debugger::cmd_set_renderer(int argc, const char **argv) {
+bool Debugger::cmd_renderer_set(int argc, const char **argv) {
if (argc < 2) {
- debugPrintf("Usage: set_renderer <renderer>\n");
+ debugPrintf("Usage: renderer_set <renderer>\n");
debugPrintf("Where <renderer> is 'software', 'opengl' or 'opengl_shaders'\n");
return true;
}
@@ -108,7 +108,7 @@ bool Debugger::cmd_set_renderer(int argc, const char **argv) {
return false;
}
-bool Debugger::cmd_get_renderer(int argc, const char **argv) {
+bool Debugger::cmd_renderer_get(int argc, const char **argv) {
auto rendererCodeStr = Graphics::Renderer::getTypeCode(g_grim->getRendererType());
debugPrintf("%s\n", rendererCodeStr.c_str());
return true;
diff --git a/engines/grim/debugger.h b/engines/grim/debugger.h
index 9557a5eb5f6..7c4f4120b5a 100644
--- a/engines/grim/debugger.h
+++ b/engines/grim/debugger.h
@@ -36,8 +36,8 @@ public:
bool cmd_checkFiles(int argc, const char **argv);
bool cmd_lua_do(int argc, const char **argv);
bool cmd_jump(int argc, const char **argv);
- bool cmd_get_renderer(int argc, const char **argv);
- bool cmd_set_renderer(int argc, const char **argv);
+ bool cmd_renderer_get(int argc, const char **argv);
+ bool cmd_renderer_set(int argc, const char **argv);
bool cmd_save(int argc, const char **argv);
bool cmd_load(int argc, const char **argv);
};
More information about the Scummvm-git-logs
mailing list