From 125d18d9c70e6c9268618067cc38314e2305d050 Mon Sep 17 00:00:00 2001 From: ennewalker Date: Sat, 25 Oct 2008 18:41:25 +0000 Subject: Fixing egregious font outlining issues. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7298 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/tilefont.cc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'crawl-ref/source/tilefont.cc') 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; -- cgit v1.2.3-54-g00ecf