X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ps%2Fmusic-drawing-routines.ps;h=9f28bf95f13f7997a3aaba873f698d799f4105ec;hb=c08af381a1f23a3656d845b86895a9f2a955590b;hp=e0f28e82a6a21e9b9918409a81bd5c0c255858af;hpb=c49a146628e5f8422c72deb40a42899c4c5cdd33;p=lilypond.git diff --git a/ps/music-drawing-routines.ps b/ps/music-drawing-routines.ps index e0f28e82a6..9f28bf95f1 100644 --- a/ps/music-drawing-routines.ps +++ b/ps/music-drawing-routines.ps @@ -7,40 +7,14 @@ % TODO: use dicts or prefixes to prevent namespace pollution. -% Emulation code from Postscript Language Reference. - -/*SF -{ - exch findfont exch - dup type /arraytype eq - {makefont} - {scalefont} - ifelse - setfont -} bind def - -/languagelevel where - {pop languagelevel} - {1} -ifelse - -2 lt - { /selectfont /*SF load def } -if - -% end emulation code - /pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse % llx lly urx ury URI /mark_URI -% It's possible to eliminate the coordinate variables by doing [ /Rect [ 7 3 -% roll. That is, however, kind of ugly. It would be nice if this procedure -% were only included when PDF marks are enabled. { - /command exch def + /uri exch def /ury exch def /urx exch def /lly exch def @@ -53,7 +27,7 @@ if /Action << /Subtype /URI - /URI command + /URI uri >> /Subtype /Link /ANN @@ -85,32 +59,6 @@ bind def b4_Inc_state restore } bind def - -% reencode-font -/reencode-font -{ - /name exch def - /encoding exch def - dup length - dict begin { - 1 index /FID ne {def} {pop - pop} ifelse - } - forall - /Encoding encoding - def currentdict - end - name exch definefont -} bind def - - - -/set_tex_dimen -{ - cvr def -} bind def - - /stroke_and_fill { gsave stroke @@ -175,7 +123,7 @@ bind def closepath fill } bind def -% this is for drawing slurs. +% this is for drawing slurs and barre-indicators. /draw_bezier_sandwich % thickness controls { gsave @@ -212,6 +160,33 @@ bind def ifelse } bind def +/draw_oval % filled? x-radius y-radius thickness draw_ellipse +{ + setlinewidth % f? x-r y-r + /yrad exch def + /xrad exch def + xrad 0 rmoveto + 0 yrad -2 xrad mul dup yrad exch 0 rcurveto + 0 yrad neg dup 2 xrad mul dup 3 1 roll 0 rcurveto + closepath + { stroke_and_fill} + { stroke } + ifelse +} bind def + +/draw_ellipse % filled? x-radius y-radius thickness draw_ellipse +{ + setlinewidth % f? x-r y-r + /savematrix matrix currentmatrix def + scale % f? + currentpoint + 1 0 rmoveto + 1 0 360 arc closepath + savematrix setmatrix + { stroke_and_fill} + { stroke } + ifelse +} bind def /draw_line % dx dy x1 y1 thickness draw_line { @@ -223,7 +198,7 @@ bind def stroke } bind def -/draw_dashed_line % dx dy thickness dashpattern draw_dashed_line +/draw_dashed_line % dx dy thickness dashpattern offset draw_dashed_line { 1 setlinecap 1 setlinejoin @@ -249,14 +224,16 @@ gsave grestore } bind def -/print_glyphs % dx dy glyph print_glyphs +/print_glyphs % w dx dy glyph print_glyphs { { - currentpoint %dx dy glyph x0 y0 - 3 2 roll %dx dy x0 y0 glyph - glyphshow % dx dy x0 y0 - moveto % dx dy - rmoveto + currentpoint %w dx dy glyph x0 y0 + 5 2 roll %w x0 y0 dx dy glyph + 3 1 roll %w x0 y0 glyph dx dy + rmoveto %w x0 y0 glyph + glyphshow %w x0 y0 + moveto %w + 0 rmoveto }repeat }bind def %end music-drawing-routines.ps