[Scummvm-git-logs] scummvm master -> f3f8f52001ce9c69518b363354900ac147b7d490
sev-
noreply at scummvm.org
Sun Sep 29 14:14:50 UTC 2024
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:
b668795f34 QDENGINE: Added debug output for text rendering
f3f8f52001 QDENGINE: Added more text rendering debug output
Commit: b668795f341d5cf157046cce066a4980ac8507c1
https://github.com/scummvm/scummvm/commit/b668795f341d5cf157046cce066a4980ac8507c1
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-09-29T16:14:32+02:00
Commit Message:
QDENGINE: Added debug output for text rendering
Changed paths:
engines/qdengine/detection.cpp
engines/qdengine/qdcore/qd_screen_text.cpp
engines/qdengine/qdengine.h
engines/qdengine/system/graphics/gr_dispatcher.cpp
diff --git a/engines/qdengine/detection.cpp b/engines/qdengine/detection.cpp
index 376c25f7e7c..2f8db368b8a 100644
--- a/engines/qdengine/detection.cpp
+++ b/engines/qdengine/detection.cpp
@@ -45,6 +45,7 @@ static const DebugChannelDef debugFlagList[] = {
{ QDEngine::kDebugTemp, "temp", "Enable temporary tracing" },
{ QDEngine::kDebugQuant, "quant", "Enable quant tracing"},
{ QDEngine::kDebugMinigames, "minigames", "Enable minigames tracing"},
+ { QDEngine::kDebugText, "text", "Enable text tracing"},
DEBUG_CHANNEL_END
};
diff --git a/engines/qdengine/qdcore/qd_screen_text.cpp b/engines/qdengine/qdcore/qd_screen_text.cpp
index bebd5d77285..536520ab370 100644
--- a/engines/qdengine/qdcore/qd_screen_text.cpp
+++ b/engines/qdengine/qdcore/qd_screen_text.cpp
@@ -20,6 +20,7 @@
*/
#include "common/stream.h"
+#include "common/debug.h"
#include "qdengine/qd_fwd.h"
#include "qdengine/xmath.h"
@@ -164,6 +165,8 @@ void qdScreenText::redraw(const Vect2i &owner_pos) const {
const grFont *font = qdGameDispatcher::get_dispatcher()->find_font(_text_format.font_type());
+ debugC(1, kDebugText, "qdScreenText::redraw([%d, %d]): '%s'", x, y, transCyrillic(data()));
+
grDispatcher::instance()->drawAlignedText(x, y, _size.x, _size.y, col, data(), grTextAlign(_text_format.alignment()), 0, 0, font);
if (g_engine->_debugDraw)
grDispatcher::instance()->rectangle(x, y, _size.x, _size.y, col, 0, GR_OUTLINED);
diff --git a/engines/qdengine/qdengine.h b/engines/qdengine/qdengine.h
index b8805fea6ed..bb7d5418228 100644
--- a/engines/qdengine/qdengine.h
+++ b/engines/qdengine/qdengine.h
@@ -55,7 +55,8 @@ enum QDEngineDebugChannels {
kDebugTemp,
kDebugQuant,
kDebugMinigames,
- kDebugMovement
+ kDebugMovement,
+ kDebugText,
};
class QDEngineEngine : public Engine {
diff --git a/engines/qdengine/system/graphics/gr_dispatcher.cpp b/engines/qdengine/system/graphics/gr_dispatcher.cpp
index b966250d1cf..dfd075960e4 100644
--- a/engines/qdengine/system/graphics/gr_dispatcher.cpp
+++ b/engines/qdengine/system/graphics/gr_dispatcher.cpp
@@ -901,6 +901,8 @@ bool grDispatcher::drawAlignedText(int x, int y, int sx, int sy, uint32 color, c
if (!font || !font->alpha_buffer())
return false;
+ debugC(4, kDebugText, "grDispatcher::drawAlignedText([%d, %d], [%d, %d], color: %d, '%s', align: %d, ...", x, y, sx, sy, color, transCyrillic(str), align);
+
const byte *str_buf = reinterpret_cast<const byte *>(str);
if (!sx)
Commit: f3f8f52001ce9c69518b363354900ac147b7d490
https://github.com/scummvm/scummvm/commit/f3f8f52001ce9c69518b363354900ac147b7d490
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2024-09-29T16:14:36+02:00
Commit Message:
QDENGINE: Added more text rendering debug output
Changed paths:
engines/qdengine/qdcore/qd_interface_screen.cpp
engines/qdengine/qdcore/qd_screen_text_dispatcher.cpp
engines/qdengine/qdcore/qd_screen_text_set.cpp
diff --git a/engines/qdengine/qdcore/qd_interface_screen.cpp b/engines/qdengine/qdcore/qd_interface_screen.cpp
index d8adf3b5985..c3c19255bcb 100644
--- a/engines/qdengine/qdcore/qd_interface_screen.cpp
+++ b/engines/qdengine/qdcore/qd_interface_screen.cpp
@@ -58,6 +58,8 @@ qdInterfaceScreen::~qdInterfaceScreen() {
}
bool qdInterfaceScreen::redraw(int dx, int dy) const {
+ debugC(5, kDebugText, "qdInterfaceScreen::redraw(): %d elements", _sorted_elements.size());
+
for (sorted_element_list_t::const_reverse_iterator it = _sorted_elements.rbegin(); it != _sorted_elements.rend(); ++it)
(*it)->redraw();
diff --git a/engines/qdengine/qdcore/qd_screen_text_dispatcher.cpp b/engines/qdengine/qdcore/qd_screen_text_dispatcher.cpp
index 2ff4659e0ab..0da148e0659 100644
--- a/engines/qdengine/qdcore/qd_screen_text_dispatcher.cpp
+++ b/engines/qdengine/qdcore/qd_screen_text_dispatcher.cpp
@@ -19,9 +19,12 @@
*
*/
+#include "common/debug.h"
+
#include "qdengine/qd_fwd.h"
#include "qdengine/qdcore/qd_game_scene.h"
#include "qdengine/qdcore/qd_game_dispatcher.h"
+#include "qdengine/qdcore/qd_game_object_state.h"
#include "qdengine/qdcore/qd_screen_text_dispatcher.h"
@@ -45,9 +48,13 @@ static bool operator == (const qdScreenTextSet &set, int id) {
qdScreenText *qdScreenTextDispatcher::add_text(int set_ID, const qdScreenText &txt) {
Std::vector<qdScreenTextSet>::iterator it = Common::find(_text_sets.begin(), _text_sets.end(), set_ID);
+ debugC(1, kDebugText, "qdScreenTextDispatcher::add_text(%d, '%s') for '%s'", set_ID, transCyrillic(txt.data()),
+ txt.owner() ? txt.owner()->toString().c_str() : "<none>");
+
if (it != _text_sets.end())
return it->add_text(txt);
+ debugC(1, kDebugText, "qdScreenTextDispatcher::add_text(): return NULL!");
return NULL;
}
@@ -58,6 +65,8 @@ void qdScreenTextDispatcher::clear_texts() {
}
void qdScreenTextDispatcher::clear_texts(qdNamedObject *p) {
+ debugC(5, kDebugText, "qdScreenTextDispatcher::clear_texts('%s')", p->toString().c_str());
+
for (auto &it : _text_sets) {
it.clear_texts(p);
}
diff --git a/engines/qdengine/qdcore/qd_screen_text_set.cpp b/engines/qdengine/qdcore/qd_screen_text_set.cpp
index f100995ab0b..3c7a667a568 100644
--- a/engines/qdengine/qdcore/qd_screen_text_set.cpp
+++ b/engines/qdengine/qdcore/qd_screen_text_set.cpp
@@ -19,12 +19,15 @@
*
*/
+#include "common/debug.h"
+
#include "qdengine/qd_fwd.h"
#include "qdengine/system/graphics/gr_dispatcher.h"
#include "qdengine/parser/qdscr_parser.h"
#include "qdengine/parser/xml_tag_buffer.h"
#include "qdengine/qdcore/qd_screen_text_set.h"
#include "qdengine/qdcore/qd_game_dispatcher.h"
+#include "qdengine/qdcore/qd_game_object_state.h"
namespace QDEngine {
@@ -141,6 +144,8 @@ qdScreenText *qdScreenTextSet::get_text(int x, int y) {
void qdScreenTextSet::clear_texts(qdNamedObject *owner) {
bool ret = false;
+ debugC(4, kDebugText, "qdScreenTextSet::clear_texts('%s')", owner->toString().c_str());
+
// Equivalent of
// texts_container_t::iterator it = std::remove_if(_texts.begin(), _texts.end(), std::bind2nd(std::mem_fun_ref(&qdScreenText::is_owned_by), owner));
@@ -238,6 +243,9 @@ bool qdScreenTextSet::save_script(Common::WriteStream &fh, int indent) const {
qdScreenText *qdScreenTextSet::add_text(const qdScreenText &txt) {
int sy = _size.y;
+ debugC(2, kDebugText, "qdScreenTextSet::add_text('%s') for '%s'", transCyrillic(txt.data()),
+ txt.owner() ? txt.owner()->toString().c_str() : "<none>");
+
_texts.push_back(txt);
if (_max_text_width)
@@ -263,4 +271,5 @@ void qdScreenTextSet::format_texts() {
for (texts_container_t::iterator it = _texts.begin(); it != _texts.end(); ++it)
it->format_text(_max_text_width);
}
+
} // namespace QDEngine
More information about the Scummvm-git-logs
mailing list