190a5509f4
This library allows one to compile droidVNCserver without having AOSP. Screen grabbing is performed by this library, which is compiled against AOSP.
61 lines
1.3 KiB
Raku
Executable File
61 lines
1.3 KiB
Raku
Executable File
#!/usr/bin/perl
|
|
|
|
@encodings=();
|
|
for($i=0;$i<256*5;$i++) {
|
|
$encodings[$i]="0";
|
|
}
|
|
|
|
$out="";
|
|
$counter=0;
|
|
$fontname="default";
|
|
|
|
$i=0;
|
|
$searchfor="";
|
|
$nullx="0x";
|
|
|
|
while(<>) {
|
|
if(/^FONT (.*)$/) {
|
|
$fontname=$1;
|
|
$fontname=~y/\"//d;
|
|
} elsif(/^ENCODING (.*)$/) {
|
|
$glyphindex=$1;
|
|
$searchfor="BBX";
|
|
$dwidth=0;
|
|
} elsif(/^DWIDTH (.*) (.*)/) {
|
|
$dwidth=$1;
|
|
} elsif(/^BBX (.*) (.*) (.*) (.*)$/) {
|
|
($width,$height,$x,$y)=($1,$2,$3,$4);
|
|
@encodings[$glyphindex*5..($glyphindex*5+4)]=($counter,$width,$height,$x,$y);
|
|
if($dwidth != 0) {
|
|
$encodings[$glyphindex*5+1]=$dwidth;
|
|
} else {
|
|
$dwidth=$width;
|
|
}
|
|
$searchfor="BITMAP";
|
|
} elsif(/^BITMAP/) {
|
|
$i=1;
|
|
} elsif($i>0) {
|
|
if($i>$height) {
|
|
$i=0;
|
|
$out.=" /* $glyphindex */\n";
|
|
} else {
|
|
if(int(($dwidth+7)/8) > int(($width+7)/8)) {
|
|
$_ .= "00"x(int(($dwidth+7)/8)-int(($width+7)/8));
|
|
}
|
|
$_=substr($_,0,(int(($dwidth+7)/8)*2));
|
|
$counter+=(int(($dwidth+7)/8));
|
|
s/(..)/$nullx$1,/g;
|
|
$out.=$_;
|
|
$i++;
|
|
}
|
|
}
|
|
}
|
|
|
|
print "unsigned char " . $fontname . "FontData[$counter]={\n" . $out;
|
|
print "};\nint " . $fontname . "FontMetaData[256*5]={\n";
|
|
for($i=0;$i<256*5;$i++) {
|
|
print $encodings[$i] . ",";
|
|
}
|
|
print "};\nrfbFontData " . $fontname . "Font={" .
|
|
$fontname . "FontData, " . $fontname . "FontMetaData};\n";
|