From c8aabe77e8858b68c5458888a01e5aeb3f5ffb2d Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Sun, 1 Aug 2010 19:31:37 +0000 Subject: 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 --- graphics/font.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'graphics') 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(); -- cgit v1.2.3