summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/tilefont.cc
diff options
context:
space:
mode:
authorennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-10-25 18:41:25 +0000
committerennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-10-25 18:41:25 +0000
commit125d18d9c70e6c9268618067cc38314e2305d050 (patch)
treeb373b845ba5ff5243d76dc9af0a1bea5cc3e5bf5 /crawl-ref/source/tilefont.cc
parent666178eeec9d005b840dd3b9a11ae6ed8d36a672 (diff)
downloadcrawl-ref-125d18d9c70e6c9268618067cc38314e2305d050.tar.gz
crawl-ref-125d18d9c70e6c9268618067cc38314e2305d050.zip
Fixing egregious font outlining issues.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7298 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/tilefont.cc')
-rw-r--r--crawl-ref/source/tilefont.cc15
1 files changed, 8 insertions, 7 deletions
diff --git a/crawl-ref/source/tilefont.cc b/crawl-ref/source/tilefont.cc
index e2251d2042..df17768f66 100644
--- a/crawl-ref/source/tilefont.cc
+++ b/crawl-ref/source/tilefont.cc
@@ -210,21 +210,22 @@ bool FTFont::load_font(const char *font_name, unsigned int font_size, bool outl)
for (int x = -1; x <= bmp->width; x++)
for (int y = -1; y <= bmp->rows; y++)
{
- bool valid = x >= 0 && y >= 0 &&
- x < bmp->width && y < bmp->rows;
+ bool x_valid = x >= 0 && x < bmp->width;
+ bool y_valid = y >= 0 && y < bmp->rows;
+ bool valid = x_valid && y_valid;
unsigned char orig = valid ? bmp->buffer[x + charw * y] : 0;
unsigned char edge = 0;
- if (x > 0)
+ if (y_valid && x > 0)
edge = std::max(bmp->buffer[(x-1) + charw * y], edge);
- if (y > 0)
+ if (x_valid && y > 0)
edge = std::max(bmp->buffer[x + charw * (y-1)], edge);
- if (x < bmp->width - 1)
+ if (y_valid && x < bmp->width - 1)
edge = std::max(bmp->buffer[(x+1) + charw * y], edge);
- if (y < bmp->width - 1)
+ if (x_valid && y < bmp->width - 1)
edge = std::max(bmp->buffer[x + charw * (y+1)], edge);
- unsigned int idx = offset_x + x + (offset_y + y) * width;
+ unsigned int idx = offset_x+x+1 + (offset_y+y+1) * width;
idx *= 4;
pixels[idx] = orig;