[Scummvm-git-logs] scummvm master -> 9bb24b21f3541b4649f84dd83efe87e02cf35a89
sev-
noreply at scummvm.org
Sat Mar 18 19:18:29 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
9bb24b21f3 GRAPHICS: Use better rounding for BDF font scaling
Commit: 9bb24b21f3541b4649f84dd83efe87e02cf35a89
https://github.com/scummvm/scummvm/commit/9bb24b21f3541b4649f84dd83efe87e02cf35a89
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-03-18T20:18:11+01:00
Commit Message:
GRAPHICS: Use better rounding for BDF font scaling
Changed paths:
graphics/fonts/bdf.cpp
diff --git a/graphics/fonts/bdf.cpp b/graphics/fonts/bdf.cpp
index af11c77bd80..9f257a6fb92 100644
--- a/graphics/fonts/bdf.cpp
+++ b/graphics/fonts/bdf.cpp
@@ -746,14 +746,14 @@ BdfFont *BdfFont::scaleFont(const BdfFont *src, int newSize) {
BdfFontData data;
- data.maxAdvance = (int)((float)src->_data.maxAdvance * scale);
- data.height = (int)((float)src->_data.height * scale);
- data.size = (int)((float)src->_data.size * scale);
- data.defaultBox.width = (int)((float)src->_data.defaultBox.width * scale);
- data.defaultBox.height = (int)((float)src->_data.defaultBox.height * scale);
- data.defaultBox.xOffset = (int)((float)src->_data.defaultBox.xOffset * scale);
- data.defaultBox.yOffset = (int)((float)src->_data.defaultBox.yOffset * scale);
- data.ascent = (int)((float)src->_data.ascent * scale);
+ data.maxAdvance = (int)(roundf((float)src->_data.maxAdvance * scale));
+ data.height = (int)(roundf((float)src->_data.height * scale));
+ data.size = (int)(roundf((float)src->_data.size * scale));
+ data.defaultBox.width = (int)(roundf((float)src->_data.defaultBox.width * scale));
+ data.defaultBox.height = (int)(roundf((float)src->_data.defaultBox.height * scale));
+ data.defaultBox.xOffset = (int)(roundf((float)src->_data.defaultBox.xOffset * scale));
+ data.defaultBox.yOffset = (int)(roundf((float)src->_data.defaultBox.yOffset * scale));
+ data.ascent = (int)roundf(((float)src->_data.ascent * scale));
data.firstCharacter = src->_data.firstCharacter;
data.defaultCharacter = src->_data.defaultCharacter;
data.numCharacters = src->_data.numCharacters;
@@ -768,16 +768,16 @@ BdfFont *BdfFont::scaleFont(const BdfFont *src, int newSize) {
BdfBoundingBox *boxes = new BdfBoundingBox[data.numCharacters];
for (int i = 0; i < data.numCharacters; ++i) {
- boxes[i].width = (int)((float)src->_data.boxes[i].width * scale);
- boxes[i].height = (int)((float)src->_data.boxes[i].height * scale);
- boxes[i].xOffset = (int)((float)src->_data.boxes[i].xOffset * scale);
- boxes[i].yOffset = (int)((float)src->_data.boxes[i].yOffset * scale);
+ boxes[i].width = (int)(roundf((float)src->_data.boxes[i].width * scale));
+ boxes[i].height = (int)(roundf((float)src->_data.boxes[i].height * scale));
+ boxes[i].xOffset = (int)(roundf((float)src->_data.boxes[i].xOffset * scale));
+ boxes[i].yOffset = (int)(roundf((float)src->_data.boxes[i].yOffset * scale));
}
data.boxes = boxes;
byte *advances = new byte[data.numCharacters];
for (int i = 0; i < data.numCharacters; ++i) {
- advances[i] = (int)((float)src->_data.advances[i] * scale);
+ advances[i] = (int)(roundf((float)src->_data.advances[i] * scale));
}
data.advances = advances;
@@ -804,7 +804,7 @@ BdfFont *BdfFont::scaleFont(const BdfFont *src, int newSize) {
for (int x = 0; x < box.width; x++) {
b <<= 1;
- int sx = (int)((float)x / scale);
+ int sx = (int)(roundf((float)x / scale));
if (srcd[sx / 8] & (0x80 >> (sx % 8))) {
b |= 1;
More information about the Scummvm-git-logs
mailing list