summaryrefslogtreecommitdiffstats
path: root/bdf2c.pl
blob: bafd8cc846c57d92d630f7c12a28dc57ac667d47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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";