[Scummvm-git-logs] scummvm master -> d4cea997f8bd210dae541842ba02fcbb1d1e3aef
sev-
noreply at scummvm.org
Mon Oct 30 00:26:20 UTC 2023
This automated email contains information about 7 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
ca299d7ae1 GRAPHICS: MACGUI: Fix MacTexCanvas rendereing debug output
0652a4c246 GRAPHICS: MACGUI: Do not add extra line at end of the text when splitting MacText
526c116bbe GRAPHICS: MACGUI: Break infinite loop triggered in some cases
3d237bccf1 GRAPHCS: MACGUI: Made MacText::setMaxWidth() use reshuffleParagraph()
ad5fe9f2bc GRAPHICS: MACGUI: Factored out MacTextCanvas::setMaxWidth()
85ea0aa22e GRAPHICS: MACGUI: Wrap MaxTexCanvas table cell contents
d4cea997f8 GRAPHICS: MACGUI: Hid noisy debug output in table rendering
Commit: ca299d7ae1749888f12cdb0dae5a548516da1022
https://github.com/scummvm/scummvm/commit/ca299d7ae1749888f12cdb0dae5a548516da1022
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-10-30T00:28:05+01:00
Commit Message:
GRAPHICS: MACGUI: Fix MacTexCanvas rendereing debug output
Changed paths:
graphics/macgui/mactext-canvas.cpp
diff --git a/graphics/macgui/mactext-canvas.cpp b/graphics/macgui/mactext-canvas.cpp
index dd668cfd5b4..36135c481e9 100644
--- a/graphics/macgui/mactext-canvas.cpp
+++ b/graphics/macgui/mactext-canvas.cpp
@@ -26,12 +26,14 @@
namespace Graphics {
-#define DEBUG 0
+#define DEBUG 1
#if DEBUG
#define D(...) debug(__VA_ARGS__)
+#define DN(...) debugN(__VA_ARGS__)
#else
#define D(...) ;
+#define DN(...) ;
#endif
// Adds the given string to the end of the last line/chunk
@@ -1144,23 +1146,23 @@ void MacTextCanvas::processTable(int line, int maxWidth) {
}
void MacFontRun::debugPrint() {
- D(8, "{%d}[%d (%d)] \"%s\" ", text.size(), fontId, textSlant, Common::toPrintable(text.encode()).c_str());
+ DN(8, "{%d}[%d (%d)] \"%s\" ", text.size(), fontId, textSlant, Common::toPrintable(text.encode()).c_str());
}
void MacTextCanvas::debugPrint(const char *prefix) {
for (uint i = 0; i < _text.size(); i++) {
if (prefix)
- D(8, "%s: ", prefix);
- D(8, "%2d, %c fi: %d, i: %d ", i, _text[i].paragraphEnd ? '$' : '.', _text[i].firstLineIndent, _text[i].indent);
+ DN(8, "%s: ", prefix);
+ DN(8, "%2d, %c fi: %d, i: %d ", i, _text[i].paragraphEnd ? '$' : '.', _text[i].firstLineIndent, _text[i].indent);
for (uint j = 0; j < _text[i].chunks.size(); j++)
_text[i].chunks[j].debugPrint();
- D(8, "\n");
+ DN(8, "\n");
}
if (prefix)
- D(8, "%s: ", prefix);
+ DN(8, "%s: ", prefix);
D(8, "[done]");
}
Commit: 0652a4c246e367f1e99a8a094cc1df727eae1843
https://github.com/scummvm/scummvm/commit/0652a4c246e367f1e99a8a094cc1df727eae1843
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-10-30T00:33:47+01:00
Commit Message:
GRAPHICS: MACGUI: Do not add extra line at end of the text when splitting MacText
Changed paths:
graphics/macgui/mactext-canvas.cpp
diff --git a/graphics/macgui/mactext-canvas.cpp b/graphics/macgui/mactext-canvas.cpp
index 36135c481e9..ac455a67813 100644
--- a/graphics/macgui/mactext-canvas.cpp
+++ b/graphics/macgui/mactext-canvas.cpp
@@ -463,11 +463,13 @@ const Common::U32String::value_type *MacTextCanvas::splitString(const Common::U3
curTextLine->chunks.push_back(defaultFormatting);
}
- curLine++;
- _text.insert_at(curLine, MacTextLine());
- _text[curLine].chunks.push_back(chunk);
+ if (*s) {
+ curLine++;
+ _text.insert_at(curLine, MacTextLine());
+ _text[curLine].chunks.push_back(chunk);
- curTextLine = &_text[curLine];
+ curTextLine = &_text[curLine];
+ }
}
#if DEBUG
Commit: 526c116bbea146ca139d01de386b9b91d937c003
https://github.com/scummvm/scummvm/commit/526c116bbea146ca139d01de386b9b91d937c003
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-10-30T00:40:21+01:00
Commit Message:
GRAPHICS: MACGUI: Break infinite loop triggered in some cases
Triggered in wage:afm on attempt to go to the shop
Changed paths:
graphics/macgui/mactext.cpp
diff --git a/graphics/macgui/mactext.cpp b/graphics/macgui/mactext.cpp
index 1999e106fe4..3cda1149794 100644
--- a/graphics/macgui/mactext.cpp
+++ b/graphics/macgui/mactext.cpp
@@ -320,6 +320,10 @@ void MacText::setMaxWidth(int maxWidth) {
_cursorRow = 0;
while (ppos > _canvas.getLineCharWidth(_cursorRow, true)) {
ppos -= _canvas.getLineCharWidth(_cursorRow, true);
+
+ if (_cursorRow == (int)_canvas._text.size() - 1)
+ break;
+
_cursorRow++;
}
_cursorCol = ppos;
@@ -1722,6 +1726,10 @@ void MacText::insertTextFromClipboard() {
while (ppos > _canvas.getLineCharWidth(_cursorRow, true)) {
ppos -= _canvas.getLineCharWidth(_cursorRow, true);
+
+ if (_cursorRow == (int)_canvas._text.size() - 1)
+ break;
+
_cursorRow++;
}
_cursorCol = ppos;
Commit: 3d237bccf13686e72aa2153c4ec6e36d14f20e22
https://github.com/scummvm/scummvm/commit/3d237bccf13686e72aa2153c4ec6e36d14f20e22
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-10-30T01:08:40+01:00
Commit Message:
GRAPHCS: MACGUI: Made MacText::setMaxWidth() use reshuffleParagraph()
This preserves all formatting
Changed paths:
graphics/macgui/mactext.cpp
diff --git a/graphics/macgui/mactext.cpp b/graphics/macgui/mactext.cpp
index 3cda1149794..480b0b9eaf1 100644
--- a/graphics/macgui/mactext.cpp
+++ b/graphics/macgui/mactext.cpp
@@ -303,8 +303,6 @@ void MacText::setMaxWidth(int maxWidth) {
return;
}
- Common::U32String str = _canvas.getTextChunk(0, 0, -1, -1, true, true);
-
// keep the cursor pos
int ppos = 0;
for (int i = 0; i < _cursorRow; i++)
@@ -312,16 +310,23 @@ void MacText::setMaxWidth(int maxWidth) {
ppos += _cursorCol;
_canvas._maxWidth = maxWidth;
- _canvas._text.clear();
- _canvas.splitString(str, -1, _defaultFormatting);
+ int row, col = 0;
+
+ for (uint i = 0; i < _canvas._text.size(); i++) {
+ row = i;
+ _canvas.reshuffleParagraph(&row, &col, _defaultFormatting);
+
+ while (i < _canvas._text.size() - 1 && !_canvas._text[i].paragraphEnd)
+ i++;
+ }
// restore the cursor pos
_cursorRow = 0;
while (ppos > _canvas.getLineCharWidth(_cursorRow, true)) {
ppos -= _canvas.getLineCharWidth(_cursorRow, true);
- if (_cursorRow == (int)_canvas._text.size() - 1)
+ if (_cursorRow >= (int)_canvas._text.size() - 1)
break;
_cursorRow++;
Commit: ad5fe9f2bc2df8aa3c816be159aef48ab8c0b7a1
https://github.com/scummvm/scummvm/commit/ad5fe9f2bc2df8aa3c816be159aef48ab8c0b7a1
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-10-30T01:14:29+01:00
Commit Message:
GRAPHICS: MACGUI: Factored out MacTextCanvas::setMaxWidth()
Changed paths:
graphics/macgui/mactext-canvas.cpp
graphics/macgui/mactext-canvas.h
graphics/macgui/mactext.cpp
diff --git a/graphics/macgui/mactext-canvas.cpp b/graphics/macgui/mactext-canvas.cpp
index ac455a67813..024c9c897db 100644
--- a/graphics/macgui/mactext-canvas.cpp
+++ b/graphics/macgui/mactext-canvas.cpp
@@ -993,6 +993,28 @@ void MacTextCanvas::reshuffleParagraph(int *row, int *col, MacFontRun &defaultFo
*col = ppos;
}
+void MacTextCanvas::setMaxWidth(int maxWidth, MacFontRun &defaultFormatting) {
+ if (maxWidth == _maxWidth)
+ return;
+
+ if (maxWidth < 0) {
+ warning("MacTextCanvas::setMaxWidth(): trying to set maxWidth to %d", maxWidth);
+ return;
+ }
+
+ _maxWidth = maxWidth;
+
+ int row, col = 0;
+
+ for (uint i = 0; i < _text.size(); i++) {
+ row = i;
+ reshuffleParagraph(&row, &col, defaultFormatting);
+
+ while (i < _text.size() - 1 && !_text[i].paragraphEnd)
+ i++;
+ }
+}
+
void MacTextCanvas::processTable(int line, int maxWidth) {
Common::Array<MacTextTableRow> *table = _text[line].table;
uint numCols = table->front().cells.size();
diff --git a/graphics/macgui/mactext-canvas.h b/graphics/macgui/mactext-canvas.h
index 21e0541ea74..00f3372a456 100644
--- a/graphics/macgui/mactext-canvas.h
+++ b/graphics/macgui/mactext-canvas.h
@@ -160,6 +160,7 @@ public:
* other paragraphs. Also, cursor position is returned in the arguments
*/
void reshuffleParagraph(int *row, int *col, MacFontRun &defaultFormatting);
+ void setMaxWidth(int maxWidth, MacFontRun &defaultFormatting);
void processTable(int line, int maxWidth);
diff --git a/graphics/macgui/mactext.cpp b/graphics/macgui/mactext.cpp
index 480b0b9eaf1..f3a5dd575fd 100644
--- a/graphics/macgui/mactext.cpp
+++ b/graphics/macgui/mactext.cpp
@@ -309,17 +309,7 @@ void MacText::setMaxWidth(int maxWidth) {
ppos += _canvas.getLineCharWidth(i);
ppos += _cursorCol;
- _canvas._maxWidth = maxWidth;
-
- int row, col = 0;
-
- for (uint i = 0; i < _canvas._text.size(); i++) {
- row = i;
- _canvas.reshuffleParagraph(&row, &col, _defaultFormatting);
-
- while (i < _canvas._text.size() - 1 && !_canvas._text[i].paragraphEnd)
- i++;
- }
+ _canvas.setMaxWidth(maxWidth, _defaultFormatting);
// restore the cursor pos
_cursorRow = 0;
Commit: 85ea0aa22eadcb2848a54d51410aedeec55ab90f
https://github.com/scummvm/scummvm/commit/85ea0aa22eadcb2848a54d51410aedeec55ab90f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-10-30T01:22:30+01:00
Commit Message:
GRAPHICS: MACGUI: Wrap MaxTexCanvas table cell contents
Changed paths:
graphics/macgui/mactext-canvas.cpp
graphics/macgui/mactext-canvas.h
diff --git a/graphics/macgui/mactext-canvas.cpp b/graphics/macgui/mactext-canvas.cpp
index 024c9c897db..d596be3b514 100644
--- a/graphics/macgui/mactext-canvas.cpp
+++ b/graphics/macgui/mactext-canvas.cpp
@@ -376,7 +376,7 @@ const Common::U32String::value_type *MacTextCanvas::splitString(const Common::U3
inTable = false;
D(9, "** splitString[body end]");
- processTable(curLine, _maxWidth);
+ processTable(curLine, _maxWidth, defaultFormatting);
continue;
} else if (cmd == 'r') { // Row
@@ -1015,7 +1015,7 @@ void MacTextCanvas::setMaxWidth(int maxWidth, MacFontRun &defaultFormatting) {
}
}
-void MacTextCanvas::processTable(int line, int maxWidth) {
+void MacTextCanvas::processTable(int line, int maxWidth, MacFontRun &defaultFormatting) {
Common::Array<MacTextTableRow> *table = _text[line].table;
uint numCols = table->front().cells.size();
uint numRows = table->size();
@@ -1109,7 +1109,7 @@ void MacTextCanvas::processTable(int line, int maxWidth) {
int c = 0;
rowH[r] = 0;
for (auto &cell : row.cells) {
- cell._maxWidth = colW[c];
+ cell.setMaxWidth(colW[c], defaultFormatting);
cell.recalcDims();
cell.reallocSurface();
diff --git a/graphics/macgui/mactext-canvas.h b/graphics/macgui/mactext-canvas.h
index 00f3372a456..fd2079fe23a 100644
--- a/graphics/macgui/mactext-canvas.h
+++ b/graphics/macgui/mactext-canvas.h
@@ -162,7 +162,7 @@ public:
void reshuffleParagraph(int *row, int *col, MacFontRun &defaultFormatting);
void setMaxWidth(int maxWidth, MacFontRun &defaultFormatting);
- void processTable(int line, int maxWidth);
+ void processTable(int line, int maxWidth, MacFontRun &defaultFormatting);
void debugPrint(const char *prefix = nullptr);
};
Commit: d4cea997f8bd210dae541842ba02fcbb1d1e3aef
https://github.com/scummvm/scummvm/commit/d4cea997f8bd210dae541842ba02fcbb1d1e3aef
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-10-30T01:25:41+01:00
Commit Message:
GRAPHICS: MACGUI: Hid noisy debug output in table rendering
Changed paths:
graphics/macgui/mactext-canvas.cpp
diff --git a/graphics/macgui/mactext-canvas.cpp b/graphics/macgui/mactext-canvas.cpp
index d596be3b514..461403f1e3e 100644
--- a/graphics/macgui/mactext-canvas.cpp
+++ b/graphics/macgui/mactext-canvas.cpp
@@ -26,7 +26,7 @@
namespace Graphics {
-#define DEBUG 1
+#define DEBUG 0
#if DEBUG
#define D(...) debug(__VA_ARGS__)
@@ -1045,7 +1045,7 @@ void MacTextCanvas::processTable(int line, int maxWidth, MacFontRun &defaultForm
}
for (uint i = 0; i < numCols; i++) {
- warning("%d: %d - %d", i, maxL[i], maxW[i]);
+ D(8, "cell #%d: width range: %d - %d", i, maxL[i], maxW[i]);
wrap[i] = (maxW[i] != maxL[i]);
}
@@ -1101,7 +1101,7 @@ void MacTextCanvas::processTable(int line, int maxWidth, MacFontRun &defaultForm
}
for (uint i = 0; i < numCols; i++) {
- warning("%d: %d", i, colW[i]);
+ D(8, "Table cell #%d: width: %d", i, colW[i]);
}
int r = 0;
More information about the Scummvm-git-logs
mailing list