changeset 7016:44ce5a673be2

added gettimeofday-based profiling/timing little speedup of outline()
author arpi
date Thu, 15 Aug 2002 20:50:13 +0000
parents 72059027f953
children f310b4e5c94b
files TOOLS/subfont-c/Makefile TOOLS/subfont-c/subfont.c
diffstat 2 files changed, 22 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/TOOLS/subfont-c/Makefile	Thu Aug 15 12:42:52 2002 +0000
+++ b/TOOLS/subfont-c/Makefile	Thu Aug 15 20:50:13 2002 +0000
@@ -1,6 +1,6 @@
 include ../../config.mak
 
-LDLIBS=-lm $(shell freetype-config --libs)
+LDLIBS=-lm ../../linux/timer-lx.o $(shell freetype-config --libs)
 CFLAGS=$(OPTFLAGS) $(shell freetype-config --cflags)
 
 #CFLAGS+=-O0			# for RedHat's gcc-2.96-95
--- a/TOOLS/subfont-c/subfont.c	Thu Aug 15 12:42:52 2002 +0000
+++ b/TOOLS/subfont-c/subfont.c	Thu Aug 15 20:50:13 2002 +0000
@@ -510,6 +510,8 @@
     int x, y;
     for (y = 0; y<height; ++y) {
 	for (x = 0; x<width; ++x, ++s, ++t) {
+	  //if(s[0]>=192) printf("%d\n",s[0]);
+	  if(s[0]!=255){
 	    unsigned max = 0;
 	    unsigned *mrow = m + r;
 	    unsigned char *srow = s -r*width;
@@ -527,7 +529,10 @@
 		    if (v>max) max = v;
 		}
 	    }
+//	    if(!max) *t = 0; else
 	    *t = (max + base/2) / base;
+	  } else 
+	    *t = 255;
 	}
     }
 }
@@ -634,6 +639,7 @@
 
 
 void alpha() {
+    unsigned int ttime;
     int const g_r = ceil(radius);
     int const o_r = ceil(thickness);
     int const g_w = 2*g_r+1;		// matrix size
@@ -669,14 +675,19 @@
     if (DEBUG) eprintf("\n");
 
 
+    ttime=GetTimer();
     if(thickness==1.0)
       outline1(bbuffer, abuffer, width, height);	// FAST solid 1 pixel outline
     else
       outline(bbuffer, abuffer, width, height, om, o_r, o_w);	// solid outline
+    //outline(bbuffer, abuffer, width, height, gm, g_r, g_w);	// Gaussian outline
+    ttime=GetTimer()-ttime;
+    printf("outline: %7d us\n",ttime);
 
-    //outline(bbuffer, abuffer, width, height, gm, g_r, g_w);	// Gaussian outline
-
+    ttime=GetTimer();
     blur(abuffer, bbuffer, width, height, g, g_r, g_w, volume);
+    ttime=GetTimer()-ttime;
+    printf("gauss:   %7d us\n",ttime);
 
     free(g);
     free(om);
@@ -771,13 +782,21 @@
 
 
 int main(int argc, char **argv) {
+    unsigned int ttime;
     parse_args(argc, argv);
 
     padding = ceil(radius) + ceil(thickness);
 
+    ttime=GetTimer();
     prepare_charset();
+    ttime=GetTimer()-ttime;
+    printf("charset: %7d us\n",ttime);
 
+    ttime=GetTimer();
     render();
+    ttime=GetTimer()-ttime;
+    printf("render:  %7d us\n",ttime);
+
     write_bitmap(bbuffer, 'b');
 
     abuffer = (unsigned char*)malloc(width*height);