diff options
Diffstat (limited to 'bdf2c.pl')
-rw-r--r-- | bdf2c.pl | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/bdf2c.pl b/bdf2c.pl new file mode 100644 index 0000000..bafd8cc --- /dev/null +++ b/bdf2c.pl @@ -0,0 +1,44 @@ +#!/usr/bin/perl + +@encodings=(); +for($i=0;$i<256*5;$i++) { + $encodings[$i]="0"; +} + +$out=""; +$counter=0; + +$i=0; +$searchfor=""; +$nullx="0x"; + +while(<>) { + if(/^ENCODING (.*)$/) { + $glyphindex=$1; + $searchfor="BBX"; + } elsif(/^BBX (.*) (.*) (.*) (.*)$/) { + ($width,$height,$x,$y)=($1,$2,$3,$4); + @encodings[$glyphindex*5..($glyphindex*5+4)]=($counter,$width,$height,$x,$y); + $searchfor="BITMAP"; + } elsif(/^BITMAP/) { + $i=1; + } elsif($i>0) { + if($i>$height) { + $i=0; + $out.=" /* $glyphindex */\n"; + } else { + $_=substr($_,0,length($_)-1); + $counter+=length($_)/2; + s/(..)/$nullx$1,/g; + $out.=$_; + $i++; + } + } +} + +print "unsigned char bdffontdata[$counter]={\n" . $out; +print "};\nint bdffontmetadata[256*5]={\n"; +for($i=0;$i<256*5;$i++) { + print $encodings[$i] . ","; +} +print "};\n"; |