#!/usr/bin/tclsh # script to generate fonwidth tables in shapes.c package require Gdtclft set gd [gd create 100 100] set white [gd color new $gd 255 255 255] set black [gd color new $gd 0 0 0] set fonts {times cour arial} set size 96 set angle 0 set x 20 set y 20 foreach font $fonts { # set bb [gd text $gd $black $font $size $angle $x $y MM] # set basewidth [expr [lindex $bb 2] - [lindex $bb 0]] set basewidth 0 puts "static double [set font]FontWidth\[\] = \{" for {set i 0} {$i<32} {incr i} { set sizes {} set chars {} for {set j 0} {$j < 8} {incr j} { if {$i<4 || ($i>=16 && $i<20) || ($i==15 && $j==7)} { lappend sizes 0.0000 } { set char [format %c [expr $j+$i*8]] # set bb [gd text $gd $black $font $size $angle $x $y M[set char]M] set bb [gd text $gd $black $font $size $angle $x $y $char] lappend sizes [format %.4f [expr ([lindex $bb 2] - [lindex $bb 0] - $basewidth)/double($size)]] lappend chars $char } } puts " [join $sizes {, }], /* [join $chars {}] */" } puts "\};" }