[Scummvm-git-logs] scummvm master -> 30c11071c4abc13383db399ad42a4fb367edfc48
sev-
sev at scummvm.org
Sat Oct 19 17:44:35 CEST 2019
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:
2d1dc5d1c4 GRAPHICS: MACGUI: Added default font for MacText
30c11071c4 PINK: Enable text rendering for localized versions
Commit: 2d1dc5d1c4a2de31e925ecff45e177ff1c6a7f7c
https://github.com/scummvm/scummvm/commit/2d1dc5d1c4a2de31e925ecff45e177ff1c6a7f7c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-10-19T17:43:47+02:00
Commit Message:
GRAPHICS: MACGUI: Added default font for MacText
Changed paths:
graphics/macgui/macfontmanager.cpp
graphics/macgui/macfontmanager.h
graphics/macgui/mactext.cpp
diff --git a/graphics/macgui/macfontmanager.cpp b/graphics/macgui/macfontmanager.cpp
index 259fd15..ac58b80 100644
--- a/graphics/macgui/macfontmanager.cpp
+++ b/graphics/macgui/macfontmanager.cpp
@@ -99,6 +99,11 @@ MacFontManager::MacFontManager(uint32 mode) : _mode(mode) {
}
}
+MacFontManager::~MacFontManager() {
+ for(Common::HashMap<int, const Graphics::Font *>::iterator it = _uniFonts.begin(); it != _uniFonts.end(); it++)
+ delete it->_value;
+}
+
void MacFontManager::loadFontsBDF() {
Common::Archive *dat;
@@ -287,7 +292,17 @@ const Font *MacFontManager::getFont(MacFont macFont) {
#ifdef USE_FREETYPE2
if (!font) {
if (_mode & kWMModeUnicode) {
- font = Graphics::loadTTFFontFromArchive("FreeSans.ttf", 16, Graphics::kTTFSizeModeCell, 0, Graphics::kTTFRenderModeMonochrome);
+ if (macFont.getSize() <= 0) {
+ debug(1, "MacFontManager::getFont() - Font size <= 0!");
+ }
+ Common::HashMap<int, const Graphics::Font *>::iterator pFont = _uniFonts.find(macFont.getSize());
+
+ if (pFont != _uniFonts.end()) {
+ font = pFont->_value;
+ } else {
+ font = Graphics::loadTTFFontFromArchive("FreeSans.ttf", macFont.getSize(), Graphics::kTTFSizeModeCharacter, 0, Graphics::kTTFRenderModeMonochrome);
+ _uniFonts[macFont.getSize()] = font;
+ }
}
}
#endif
diff --git a/graphics/macgui/macfontmanager.h b/graphics/macgui/macfontmanager.h
index d274657..a8a3e3a 100644
--- a/graphics/macgui/macfontmanager.h
+++ b/graphics/macgui/macfontmanager.h
@@ -103,6 +103,7 @@ private:
class MacFontManager {
public:
MacFontManager(uint32 mode);
+ ~MacFontManager();
/**
* Accessor method to check the presence of built-in fonts.
@@ -154,6 +155,9 @@ private:
Common::HashMap<Common::String, int> _extraFontIds;
int parseFontSlant(Common::String slant);
+
+ /* Unicode font */
+ Common::HashMap<int, const Graphics::Font *> _uniFonts;
};
} // End of namespace Graphics
diff --git a/graphics/macgui/mactext.cpp b/graphics/macgui/mactext.cpp
index fa2b92f..6dfdee3 100644
--- a/graphics/macgui/mactext.cpp
+++ b/graphics/macgui/mactext.cpp
@@ -66,6 +66,7 @@ MacText::MacText(Common::U32String s, MacWindowManager *wm, const MacFont *macFo
_interLinear = interlinear;
if (macFont) {
+ _defaultFormatting = MacFontRun(_wm, macFont->getId(), macFont->getSlant(), macFont->getSize(), 0, 0, 0);
_defaultFormatting.font = wm->_fontMan->getFont(*macFont);
} else {
_defaultFormatting.font = NULL;
@@ -97,6 +98,7 @@ MacText::MacText(const Common::String &s, MacWindowManager *wm, const MacFont *m
_interLinear = interlinear;
if (macFont) {
+ _defaultFormatting = MacFontRun(_wm, macFont->getId(), macFont->getSlant(), macFont->getSize(), 0, 0, 0);
_defaultFormatting.font = wm->_fontMan->getFont(*macFont);
} else {
_defaultFormatting.font = NULL;
@@ -310,7 +312,7 @@ void MacText::render(int from, int to) {
// TODO: _textMaxWidth, when -1, was not rendering ANY text.
for (uint j = 0; j < _textLines[i].chunks.size(); j++) {
- debug(5, "line %d[%d]/%d at %d,%d (%s)", i, j, xOffset, _textLines[i].chunks[j].fontId, _textLines[i].y, _textLines[i].chunks[j].text.c_str());
+ debug(5, "line %d[%d]/%d at %d,%d (%s)", i, j, xOffset, _textLines[i].chunks[j].fontId, _textLines[i].y, _textLines[i].chunks[j].text.encode().c_str());
if (_textLines[i].chunks[j].text.empty())
continue;
@@ -324,7 +326,7 @@ void MacText::render(int from, int to) {
debugN(4, "%2d ", i);
for (uint j = 0; j < _textLines[i].chunks.size(); j++)
- debugN(4, "[%d (%d)] \"%s\" ", _textLines[i].chunks[j].fontId, _textLines[i].chunks[j].textSlant, _textLines[i].chunks[j].text.c_str());
+ debugN(4, "[%d (%d)] \"%s\" ", _textLines[i].chunks[j].fontId, _textLines[i].chunks[j].textSlant, _textLines[i].chunks[j].text.encode().c_str());
debug(4, "%s", "");
}
Commit: 30c11071c4abc13383db399ad42a4fb367edfc48
https://github.com/scummvm/scummvm/commit/30c11071c4abc13383db399ad42a4fb367edfc48
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-10-19T17:44:05+02:00
Commit Message:
PINK: Enable text rendering for localized versions
Changed paths:
engines/pink/objects/actions/action_text.cpp
engines/pink/objects/actions/action_text.h
diff --git a/engines/pink/objects/actions/action_text.cpp b/engines/pink/objects/actions/action_text.cpp
index 4ee9cf6..70aef5b 100644
--- a/engines/pink/objects/actions/action_text.cpp
+++ b/engines/pink/objects/actions/action_text.cpp
@@ -91,6 +91,22 @@ void ActionText::start() {
stream->read(str, stream->size());
delete stream;
+ switch(_actor->getPage()->getGame()->getLanguage()) {
+ case Common::RU_RUS:
+ _text = Common::String(str).decode(Common::kWindows1251);
+ break;
+
+ case Common::EN_ANY:
+ default:
+ _text = Common::String(str);
+ break;
+ }
+
+ delete[] str;
+
+ while ( _text.size() > 0 && (_text[ _text.size() - 1 ] == '\n' || _text[ _text.size() - 1 ] == '\r') )
+ _text.deleteLastChar();
+
if (_scrollBar) {
Graphics::MacFont *font = new Graphics::MacFont;
_txtWnd = director->getWndManager().addTextWindow(font, _textColorIndex, _backgroundColorIndex,
@@ -114,12 +130,11 @@ void ActionText::start() {
Graphics::TransparentSurface *noborder2 = new Graphics::TransparentSurface(*noborder, true);
_txtWnd->setBorder(noborder2, false);
- if (_actor->getPage()->getGame()->getLanguage() == Common::EN_ANY)
- _txtWnd->appendText(str, font);
+ _txtWnd->appendText(_text, font);
+
} else {
director->addTextAction(this);
}
- delete[] str;
}
void ActionText::end() {
@@ -134,12 +149,11 @@ void ActionText::end() {
void ActionText::draw(Graphics::ManagedSurface *surface) {
// not working
- /*Graphics::TextAlign alignment = _centered ? Graphics::kTextAlignCenter : Graphics::kTextAlignLeft;
- Graphics::MacFont *font = new Graphics::MacFont;
+ Graphics::TextAlign alignment = _centered ? Graphics::kTextAlignCenter : Graphics::kTextAlignLeft;
+ Graphics::MacFont *font = new Graphics::MacFont();
Director *director = _actor->getPage()->getGame()->getDirector();
- Graphics::MacText text("", &director->getWndManager(), font, _textColorIndex, _backgroundColorIndex, _xRight - _xLeft, alignment);
- text.appendText("TESTING", font->getId(), font->getSize(), font->getSlant(), 0);
- text.draw(surface, _xLeft, _yTop, _xRight - _xLeft, _yBottom - _yTop, 0, 0);*/
+ Graphics::MacText text(_text, &director->getWndManager(), font, _textColorIndex, _backgroundColorIndex, _xRight - _xLeft, alignment);
+ text.draw(surface, 0, 0, _xRight - _xLeft, _yBottom - _yTop, _xLeft, _yTop);
}
#define RED(rgb) ((rgb) & 0xFF)
diff --git a/engines/pink/objects/actions/action_text.h b/engines/pink/objects/actions/action_text.h
index 6a3a966..0b6e78c 100644
--- a/engines/pink/objects/actions/action_text.h
+++ b/engines/pink/objects/actions/action_text.h
@@ -52,6 +52,7 @@ private:
private:
Common::String _fileName;
+ Common::U32String _text;
Graphics::MacTextWindow *_txtWnd;
uint32 _xLeft;
More information about the Scummvm-git-logs
mailing list