aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2018-10-30 19:45:16 -0700
committerPaul Gilbert2018-12-08 19:05:59 -0800
commit7ebbcc87dc5f53a66092b34975f16e4c0629590b (patch)
treeca623645ca5186e845da9708750a4290314f897a
parentc5668d9300a78fb7d459b53fb2f9d03a418fd63b (diff)
downloadscummvm-rg350-7ebbcc87dc5f53a66092b34975f16e4c0629590b.tar.gz
scummvm-rg350-7ebbcc87dc5f53a66092b34975f16e4c0629590b.tar.bz2
scummvm-rg350-7ebbcc87dc5f53a66092b34975f16e4c0629590b.zip
GLK: Fix rendering text in text grid windows
-rw-r--r--engines/gargoyle/conf.cpp13
-rw-r--r--engines/gargoyle/fonts.cpp13
-rw-r--r--engines/gargoyle/window_text_grid.cpp16
3 files changed, 18 insertions, 24 deletions
diff --git a/engines/gargoyle/conf.cpp b/engines/gargoyle/conf.cpp
index 7e11a2f295..31e2c5fb05 100644
--- a/engines/gargoyle/conf.cpp
+++ b/engines/gargoyle/conf.cpp
@@ -69,6 +69,8 @@ Conf::Conf() {
_imageW = g_system->getWidth();
_imageH = g_system->getHeight();
_cellW = _cellH = 8;
+ _leading = 8;
+ _baseLine = 0;
get("moreprompt", _morePrompt, "\207 more \207");
get("morecolor", _moreColor);
@@ -89,11 +91,18 @@ Conf::Conf() {
get("propi", _propI);
get("propz", _propZ);
get("propfont", _propFont, "Linux Libertine O");
- get("leading", _leading, 8);
- get("baseline", _baseLine, 15);
get("rows", _rows, 25);
get("cols", _cols, 60);
+ /* Disabled for now, since Fonts constructor resets them
+ if (ConfMan.hasKey("leading"))
+ _leading = atof(ConfMan.get("leading").c_str()) + 0.5;
+ if (ConfMan.hasKey("baseline"))
+ _baseLine = atof(ConfMan.get("baseline").c_str()) + 0.5;
+ if (!_baseLine)
+ _baseLine = _propSize + 0.5;
+ */
+
if (ConfMan.hasKey("minrows"))
_rows = MAX(_rows, strToInt(ConfMan.get("minrows").c_str()));
if (ConfMan.hasKey("maxrows"))
diff --git a/engines/gargoyle/fonts.cpp b/engines/gargoyle/fonts.cpp
index 307144b1b2..7aaf27b696 100644
--- a/engines/gargoyle/fonts.cpp
+++ b/engines/gargoyle/fonts.cpp
@@ -38,18 +38,6 @@ const char *gli_conf_monob = "GoMono-Bold";
const char *gli_conf_monoi = "GoMono-Italic";
const char *gli_conf_monoz = "GoMono-BoldItalic";
-#ifdef BUNDLED_FONTS
-const char *gli_conf_monofont = "";
-const char *gli_conf_propfont = "";
-const double gli_conf_monosize = 12.5; ///< good size for GoMono
-const double gli_conf_propsize = 13.4; ///< good size for NotoSerif
-#else
-const char *gli_conf_monofont = "Liberation Mono";
-const char *gli_conf_propfont = "Linux Libertine O";
-const double gli_conf_monosize = 12.5; ///< good size for LiberationMono
-const double gli_conf_propsize = 15.5; ///< good size for Libertine
-#endif
-
Fonts::Fonts(Graphics::ManagedSurface *surface) : _surface(surface) {
double monoAspect = g_conf->_monoAspect;
double propAspect = g_conf->_propAspect;
@@ -68,6 +56,7 @@ Fonts::Fonts(Graphics::ManagedSurface *surface) : _surface(surface) {
g_conf->_cellW = _fontTable[0]->getStringWidth("0");
g_conf->_cellH = _fontTable[0]->getFontHeight();
+ g_conf->_leading = g_conf->_baseLine = g_conf->_cellH;
}
Fonts::~Fonts() {
diff --git a/engines/gargoyle/window_text_grid.cpp b/engines/gargoyle/window_text_grid.cpp
index 6945aca751..455655f6e6 100644
--- a/engines/gargoyle/window_text_grid.cpp
+++ b/engines/gargoyle/window_text_grid.cpp
@@ -588,7 +588,7 @@ void TextGridWindow::redraw() {
for (i = 0; i < _height; i++) {
ln = &_lines[i];
if (ln->dirty || Windows::_forceRedraw) {
- ln->dirty = 0;
+ ln->dirty = false;
x = x0;
y = y0 + i * g_conf->_leading;
@@ -607,16 +607,15 @@ void TextGridWindow::redraw() {
screen.fillRect(Rect::fromXYWH(x, y, w, g_conf->_leading), bgcolor);
o = x;
- for (k = a; k < b; k++) {
- screen.drawStringUni(Point(o * GLI_SUBPIX, y + g_conf->_baseLine),
- font, fgcolor, Common::U32String(&ln->_chars[k], 1), -1);
- o += g_conf->_cellW;
+ for (k = a, o = x; k < b; k++, o += g_conf->_cellW) {
+ screen.drawStringUni(Point(o, y), font, fgcolor, Common::U32String(&ln->_chars[k], 1), -1);
}
if (link) {
screen.fillRect(Rect::fromXYWH(x, y + g_conf->_baseLine + 1, w,
g_conf->_linkStyle), g_conf->_linkColor);
g_vm->_windowMask->putHyperlink(link, x, y, x + w, y + g_conf->_leading);
}
+
x += w;
a = b;
}
@@ -629,11 +628,8 @@ void TextGridWindow::redraw() {
w += _bbox.right - (x + w);
screen.fillRect(Rect::fromXYWH(x, y, w, g_conf->_leading), bgcolor);
- o = x;
- for (k = a; k < b; k++) {
- screen.drawStringUni(Point(o * GLI_SUBPIX, y + g_conf->_baseLine),
- font, fgcolor, Common::U32String(&ln->_chars[k], 1));
- o += g_conf->_cellW;
+ for (k = a, o = x; k < b; k++, o += g_conf->_cellW) {
+ screen.drawStringUni(Point(o, y), font, fgcolor, Common::U32String(&ln->_chars[k], 1));
}
if (link) {
screen.fillRect(Rect::fromXYWH(x, y + g_conf->_baseLine + 1, w, g_conf->_linkStyle),