diff options
Diffstat (limited to 'TOOLS/subfont-c/osd/gen.py')
-rwxr-xr-x | TOOLS/subfont-c/osd/gen.py | 440 |
1 files changed, 0 insertions, 440 deletions
diff --git a/TOOLS/subfont-c/osd/gen.py b/TOOLS/subfont-c/osd/gen.py deleted file mode 100755 index 09b0d6bb19..0000000000 --- a/TOOLS/subfont-c/osd/gen.py +++ /dev/null @@ -1,440 +0,0 @@ -#!/usr/bin/python - -from math import * -import sys -import string - -k = (sqrt(2.)-1.)*4./3. - -chars = [] -encoding = [] -count = 1 -first = 1 - -def append(s): - chars.append(s) - -def rint(x): - return int(round(x)) -""" - if x>=0: - return int(x+0.5) - else: - return int(x-0.5) -""" - -class vec: - def __init__(self, x, y=0): - if type(x) is type(()): - self.x, self.y = x - else: - self.x = x - self.y = y - def set(self, x, y): - self.__init__(x, y) - def move(self, x, y): - self.x = self.x + x - self.y = self.y + y - def __add__(self, v): - return vec(self.x+v.x, self.y+v.y) - def __sub__(self, v): - return vec(self.x-v.x, self.y-v.y) - def int(self): - return vec(rint(self.x), rint(self.y)) - def t(self): - return (self.x, self.y) - -class pvec(vec): - def __init__(self, l, a): - self.x = l * cos(a) - self.y = l * sin(a) - - -pen = vec(0,0) - -def moveto(x, y=0): - global first - dx = rint(x-pen.x) - dy = rint(y-pen.y) - if dx!=0: - if dy!=0: - append("\t%i %i rmoveto" % (dx, dy)) - else: - append("\t%i hmoveto" % (dx)) - elif dy!=0: - append("\t%i vmoveto" % (dy)) - elif first: - append("\t0 hmoveto") - first = 0 - pen.x = pen.x+dx - pen.y = pen.y+dx - -def rlineto(v): - if v.x!=0: - if v.y!=0: - append("\t%i %i rlineto" % (v.x, v.y)) - else: - append("\t%i hlineto" % (v.x)) - elif v.y!=0: - append("\t%i vlineto" % (v.y)) - -def closepath(): - append("\tclosepath") - -history = [] -def movebase(x, y=0): - history.append((x,y)) - pen.move(-x, -y) - -def moveback(): - x, y = history.pop() - pen.move(x, y) - -def ellipse(rx, ry = None, half=0): - # rx>0 => counter-clockwise (filled) - # rx<0 => clockwise - - if ry==None: ry = abs(rx) - - dx1 = rint(k*rx) - dx2 = rx-dx1 - - dy1 = rint(k*ry) - dy2 = ry-dy1 - - rx = abs(rx) - moveto(0, -ry) - append("\t%i 0 %i %i 0 %i rrcurveto" % (+dx1, +dx2, +dy2, +dy1)) - append("\t0 %i %i %i %i 0 rrcurveto" % (+dy1, -dx2, +dy2, -dx1)) - if not half: - append("\t%i 0 %i %i 0 %i rrcurveto" % (-dx1, -dx2, -dy2, -dy1)) - append("\t0 %i %i %i %i 0 rrcurveto" % (-dy1, +dx2, -dy2, +dx1)) - closepath() - if half: - pen.set(0, ry) - else: - pen.set(0, -ry) - -circle = ellipse - -def rect(w, h): - moveto(0, 0) - if w>0: - append("\t%i hlineto" % (w)) - append("\t%i vlineto" % (h)) - append("\t%i hlineto" % (-w)) - pen.set(0, h) - else: - append("\t%i vlineto" % (h)) - append("\t%i hlineto" % (-w)) - append("\t%i vlineto" % (-h)) - pen.set(-w, 0) - closepath() - -def poly(p): - moveto(0, 0) - prev = vec(0, 0) - for q in p: - rlineto(vec(q)-prev) - prev = vec(q) - closepath() - pen.set(prev.x, prev.y) - -def line(w, l, a): - vw = pvec(w*.5, a-pi*.5) - vl = pvec(l, a) - p = vw - moveto(p.x, p.y) - p0 = p - #print '%%wla %i %i %.3f: %.3f %.3f' % (w, l, a, p0.x, p0.y) - p = p+vl - rlineto((p-p0).int()) - p0 = p - #print '%%wla %i %i %.3f: %.3f %.3f' % (w, l, a, p0.x, p0.y) - p = p-vw-vw - rlineto((p-p0).int()) - p0 = p - #print '%%wla %i %i %.3f: %.3f %.3f' % (w, l, a, p0.x, p0.y) - p = p-vl - #print '%%wla %i %i %.3f: %.3f %.3f' % (w, l, a, p.x, p.y) - rlineto((p-p0).int()) - closepath() - pen.set(p.x, p.y) - - -def begin(name, code, hsb, w): - global first, count, history - history = [] - pen.set(0, 0) - append("""\ -/uni%04X { %% %s - %i %i hsbw""" % (code+0xE000, name, hsb, w)) - i = len(encoding) - while i<code: - encoding.append('dup %i /.notdef put' % (i,)) - i = i+1 - encoding.append('dup %i /uni%04X put' % (code, code+0xE000)) - count = count + 1 - first = 1 - - -def end(): - append("""\ - endchar -} ND""") - - - -######################################## - -r = 400 -s = 375 -hsb = 200 # horizontal side bearing -hsb2 = 30 -over = 10 # overshoot -width = 2*r+2*over+2*hsb2 - -######################################## -begin('play', 0x01, hsb, width) -poly(( (s,r), - (0, 2*r),)) -end() - - -######################################## -w=150 -begin('pause', 0x02, hsb, width) -rect(w, 2*r) -movebase(2*w) -rect(w, 2*r) -end() - - -######################################## -begin('stop', 0x03, hsb, width) -rect(665, 720) -end() - - -######################################## -begin('rewind', 0x04, hsb/2, width) -movebase(2*s+15) -poly(( (0, 2*r), - (-s, r),)) -movebase(-s-15) -poly(( (0, 2*r), - (-s, r),)) -end() - - -######################################## -begin('fast forward', 0x05, hsb/2, width) -poly(( (s,r), - (0, 2*r),)) -movebase(s+15) -poly(( (s,r), - (0, 2*r),)) -end() - - -######################################## -begin('clock', 0x06, hsb2, width) -movebase(r, r) -circle(r+over) -wc = 65 -r0 = r-3*wc -n = 4 -movebase(-wc/2, -wc/2) -rect(-wc, wc) -moveback() -for i in range(n): - a = i*2*pi/n - v = pvec(r0, a) - movebase(v.x, v.y) - line(-wc, r-r0, a) - moveback() -hh = 11 -mm = 8 -line(-50, r*.5, pi/2-2*pi*(hh+mm/60.)/12) -line(-40, r*.9, pi/2-2*pi*mm/60.) -end() - - -######################################## -begin('contrast', 0x07, hsb2, width) -movebase(r, r) -circle(r+over) -circle(-(r+over-80), half=1) -end() - - -######################################## -begin('saturation', 0x08, hsb2, width) -movebase(r, r) -circle(r+over) -circle(-(r+over-80)) - -v = pvec(160, pi/2) -movebase(v.x, v.y) -circle(80) -moveback() - -v = pvec(160, pi/2+pi*2/3) -movebase(v.x, v.y) -circle(80) -moveback() - -v = pvec(160, pi/2-pi*2/3) -movebase(v.x, v.y) -circle(80) -end() - - -######################################## -begin('volume', 0x09, 0, 1000) -poly(( (1000, 0), - (1000, 500),)) -end() - - -######################################## -begin('brightness', 0x0A, hsb2, width) -movebase(r, r) -circle(150) -circle(-100) - -rb = 375 -wb = 50 -l = 140 -n = 8 -for i in range(n): - a = i*2*pi/n - v = pvec(l, a) - movebase(v.x, v.y) - line(wb, rb-l, a) - moveback() -end() - - -######################################## -begin('hue', 0x0B, hsb2, width) -movebase(r, r) -circle(r+over) -ellipse(-(322), 166) -movebase(0, 280) -circle(-(60)) -end() - - -######################################## -begin('progress [', 0x10, (334-182)/2, 334) -poly(( (182, 0), - (182, 90), - (145, 90), - (145, 550), - (182, 550), - (182, 640), - (0, 640), -)) -end() - - -######################################## -begin('progress |', 0x11, (334-166)/2, 334) -rect(166, 640) -end() - - -######################################## -begin('progress ]', 0x12, (334-182)/2, 334) -poly(( (182, 0), - (182, 640), - (0, 640), - (0, 550), - (37, 550), - (37, 90), - (0, 90), -)) -end() - - -######################################## -begin('progress .', 0x13, (334-130)/2, 334) -movebase(0, (640-130)/2) -rect(130, 130) -end() - - - -######################################## -print """\ -%!PS-AdobeFont-1.0: OSD 1.00 -%%CreationDate: Sun Jul 22 12:38:28 2001 -% -%%EndComments -12 dict begin -/FontInfo 9 dict dup begin -/version (Version 1.00) readonly def -/Notice (This is generated file.) readonly def -/FullName (OSD) readonly def -/FamilyName (OSD) readonly def -/Weight (Regular) readonly def -/ItalicAngle 0.000000 def -/isFixedPitch false def -/UnderlinePosition -133 def -/UnderlineThickness 49 def -end readonly def -/FontName /OSD def -/PaintType 0 def -/StrokeWidth 0 def -/FontMatrix [0.001 0 0 0.001 0 0] def -/FontBBox {0 -10 1000 810} readonly def -/Encoding 256 array""" - -print string.join(encoding, '\n') -i = len(encoding) -while i<256: - print 'dup %i /.notdef put' % i - i = i+1 - - -print """\ -readonly def -currentdict end -currentfile eexec -dup /Private 15 dict dup begin -/RD{string currentfile exch readstring pop}executeonly def -/ND{noaccess def}executeonly def -/NP{noaccess put}executeonly def -/ForceBold false def -/BlueValues [ -10 0 800 810 640 650 720 730 ] def -/StdHW [ 65 ] def -/StdVW [ 65 ] def -/StemSnapH [ 65 800 ] def -/StemSnapV [ 65 150 ] def -/MinFeature {16 16} def -/password 5839 def -/Subrs 1 array -dup 0 { - return - } NP - ND -2 index -/CharStrings %i dict dup begin""" % count - -print """\ -/.notdef { - 0 400 hsbw - endchar -} ND""" - -print string.join(chars, '\n') - - -print """\ -end -end -readonly put -noaccess put -dup/FontName get exch definefont pop -mark currentfile closefile""" |