# HG changeset patch # User arpi # Date 997731221 0 # Node ID 47a49d6d7132798863356f8834e2e0f3968e9896 # Parent 94d929f91b0650ca9fd8c9534d6f7fb76b6c2f3a speed optimized :) diff -r 94d929f91b06 -r 47a49d6d7132 TOOLS/subfont-c/subfont.c --- a/TOOLS/subfont-c/subfont.c Mon Aug 13 18:39:23 2001 +0000 +++ b/TOOLS/subfont-c/subfont.c Mon Aug 13 19:33:41 2001 +0000 @@ -453,23 +453,23 @@ int r, int mwidth) { - int x, y, mx, my; + int x, y; for (y = 0; y=width)?(width-x-1):r; + int my; for (my = -r; my<=r; ++my, srow+= width, mrow+= mwidth) { + int mx; if (y+my < 0) continue; if (y+my >= height) break; - for (mx = -r; mx<=r; ++mx) { - unsigned v; - if (x+mx < 0) continue; - if (x+mx >= width) break; - - v = srow[mx] * mrow[mx]; + for (mx = x1; mx<=x2; ++mx) { + unsigned v = srow[mx] * mrow[mx]; if (v>max) max = v; } } @@ -523,24 +523,25 @@ int mwidth, unsigned volume) { - int x, y, mx, my; + int x, y; for (y = 0; y=width)?(width-x-1):r; + int my; for (my = -r; my<=r; ++my, srow+= width, mrow+= mwidth) { + int mx; if (y+my < 0) continue; if (y+my >= height) break; - for (mx = -r; mx<=r; ++mx) { - if (x+mx < 0) continue; - if (x+mx >= width) break; + for (mx = x1; mx<=x2; ++mx) + sum+= srow[mx] * mrow[mx]; - sum+= srow[mx] * mrow[mx]; - } } *t = (sum + volume/2) / volume; } @@ -592,9 +593,12 @@ if (DEBUG) eprintf("\n"); - outline(buffer, tbuffer, width, height, om, o_r, o_w); // solid outline + if(thickness==1.0) + outline1(buffer, tbuffer, width, height); // FAST solid 1 pixel outline + else + outline(buffer, tbuffer, width, height, om, o_r, o_w); // solid outline + //outline(buffer, tbuffer, width, height, gm, g_r, g_w); // Gaussian outline - //outline1(buffer, tbuffer, width, height); // solid 1 pixel outline blur(tbuffer, abuffer, width, height, gm, g_r, g_w, volume);