summaryrefslogtreecommitdiffstats
path: root/TOOLS/subfont-c/osd/gen.py
diff options
context:
space:
mode:
Diffstat (limited to 'TOOLS/subfont-c/osd/gen.py')
-rwxr-xr-xTOOLS/subfont-c/osd/gen.py440
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"""