Index: trunk/util/devhelpers/font2c.sh =================================================================== --- trunk/util/devhelpers/font2c.sh (nonexistent) +++ trunk/util/devhelpers/font2c.sh (revision 5994) @@ -0,0 +1,96 @@ +#!/bin/sh +# font2c - convert a pcb font to simplified embedded font structs for pcb-rnd +# Copyright (C) 2016 Tibor 'Igor2' Palinkas +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# http://repo.hu/projects/pcb-rnd + +awk ' + +BEGIN { + minx = 100000 + miny = 100000 + maxx = 0 + maxy = 0 + print "/* This file is autogenerated by font2c.sh - DO NOT EDIT */" + print "" + print "/* Internal copy of the default font; used when no font file is found */" + print "" +} + +function bump(x, y) +{ + if (x < minx) minx = x + if (y < miny) miny = y + if (x > maxx) maxx = x + if (y > maxy) maxy = y +} + +/Symbol[(]/ { + sym=substr($0, 9, 1) + ADV[sym]=int(substr($0, 11, length($0))) + NLINE[sym] = 0 +} + +/SymbolLine[(]/ { + sub("[ \t]*SymbolLine[(]", "", $0) + X1[sym, NLINE[sym]] = int($1) + Y1[sym, NLINE[sym]] = int($2) + X2[sym, NLINE[sym]] = int($3) + Y2[sym, NLINE[sym]] = int($4) + TH[sym, NLINE[sym]] = int($5) + bump(int($1), int($2)) + bump(int($3), int($4)) + NLINE[sym]++ +} + +END { + for(n = 0; n < 128; n++) { + c = sprintf("%c", n) + if (c in ADV) { + if ((n > 32) && !(c ~ "[{}()]")) + annot = " /* " c " */" + else + annot = "" + print "static embf_line_t embf_line_" n "[] = {" annot + for(l = 0; l < NLINE[c]; l++) + print " {" X1[c, l] ", " Y1[c, l] ",\t\t" X2[c, l] ", " Y2[c, l] ",\t\t" TH[c, l] "}" ((l < NLINE[c]-1) ? "," : "") + if (NLINE[c] == 0) + print " {0,0,0,0}" + print "};" + }; + } + + print "/***************************************************************/" + print "static int embf_minx = " minx ";" + print "static int embf_miny = " miny ";" + print "static int embf_maxx = " maxx ";" + print "static int embf_maxy = " maxy ";" + + print "static embf_font_t embf_font[] = {" + for(n = 0; n < 128; n++) { + c = sprintf("%c", n) + comma = ((n < 127) ? "," : "") + if (c in ADV) { + print " {" ADV[c] ", embf_line_" n ", " NLINE[c] "}" comma + } + else { + print " {0, NULL, 0}" comma + } + } + print "};" +} +' Property changes on: trunk/util/devhelpers/font2c.sh ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property