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
This commit is contained in:
parent
2095ce31bd
commit
c8aabe77e8
1 changed files with 4 additions and 4 deletions
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue