diff options
author | Johannes Schickel | 2010-08-01 19:31:37 +0000 |
---|---|---|
committer | Johannes Schickel | 2010-08-01 19:31:37 +0000 |
commit | c8aabe77e8858b68c5458888a01e5aeb3f5ffb2d (patch) | |
tree | abd1d24fad67c912c2681e353dc56acc133fa22c | |
parent | 2095ce31bde18f6b3a153d7479467eb13ed009ff (diff) | |
download | scummvm-rg350-c8aabe77e8858b68c5458888a01e5aeb3f5ffb2d.tar.gz scummvm-rg350-c8aabe77e8858b68c5458888a01e5aeb3f5ffb2d.tar.bz2 scummvm-rg350-c8aabe77e8858b68c5458888a01e5aeb3f5ffb2d.zip |
GUI: Fix font cache.
The bounding boxes of the glyphs use signed coordinates. We stored only
unsigned coordinates, which resulted in incorrect glyph positioning.
Conrecte example: the bounding box of the glyphs for clR6x12-iso-8859-5.bdf
used:
x y w h
0 -3 6 12
We on the other hand interpreted that as:
x y w h
0 65533 6 12
when loading the font from our font cache.
svn-id: r51586
-rw-r--r-- | graphics/font.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/graphics/font.cpp b/graphics/font.cpp index 629f2f4b82..74247d4da1 100644 --- a/graphics/font.cpp +++ b/graphics/font.cpp @@ -609,8 +609,8 @@ bool NewFont::cacheFontData(const NewFont &font, const Common::String &filename) cacheFile.writeUint16BE(font.desc.height); cacheFile.writeUint16BE(font.desc.fbbw); cacheFile.writeUint16BE(font.desc.fbbh); - cacheFile.writeUint16BE(font.desc.fbbx); - cacheFile.writeUint16BE(font.desc.fbby); + cacheFile.writeSint16BE(font.desc.fbbx); + cacheFile.writeSint16BE(font.desc.fbby); cacheFile.writeUint16BE(font.desc.ascent); cacheFile.writeUint16BE(font.desc.firstchar); cacheFile.writeUint16BE(font.desc.size); @@ -667,8 +667,8 @@ NewFont *NewFont::loadFromCache(Common::SeekableReadStream &stream) { data->height = stream.readUint16BE(); data->fbbw = stream.readUint16BE(); data->fbbh = stream.readUint16BE(); - data->fbbx = stream.readUint16BE(); - data->fbby = stream.readUint16BE(); + data->fbbx = stream.readSint16BE(); + data->fbby = stream.readSint16BE(); data->ascent = stream.readUint16BE(); data->firstchar = stream.readUint16BE(); data->size = stream.readUint16BE(); |