diff options
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp')
-rw-r--r-- | Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp | 92 |
1 files changed, 48 insertions, 44 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp index 40de4677d14..8feade148e2 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/src/psdefs.cpp @@ -2,7 +2,7 @@ ** psdefs.cpp ** ** ** ** This file is part of dvisvgm -- a fast DVI to SVG converter ** -** Copyright (C) 2005-2021 Martin Gieseking <martin.gieseking@uos.de> ** +** Copyright (C) 2005-2022 Martin Gieseking <martin.gieseking@uos.de> ** ** ** ** This program is free software; you can redistribute it and/or ** ** modify it under the terms of the GNU General Public License as ** @@ -115,47 +115,51 @@ const char *PSInterpreter::PSDEFS = "rgbcolor 3(setrgbcolor)prcmd}def/printgstate{@dodraw @GD/@nulldev get not and{" "matrix currentmatrix aload pop 6(setmatrix)prcmd applyscalevals currentlinewid" "th 1(setlinewidth)prcmd currentlinecap 1(setlinecap)prcmd currentlinejoin 1(se" -"tlinejoin)prcmd currentmiterlimit 1(setmiterlimit)prcmd prcolor currentdash ma" -"rk 3 1 roll exch aload length 1 add -1 roll counttomark(setdash)prcmd pop}if}d" -"ef/strconcat{exch dup length 2 index length add string dup dup 4 2 roll copy l" -"ength 4 -1 roll putinterval}def/setgstate{/setgstate sysexec printgstate}def/s" -"ave{@UD begin/@saveID vmstatus pop pop def end :save @saveID 1(save)prcmd}def/" -"restore{:restore @checknulldev printgstate @UD/@saveID known{@UD begin @saveID" -" end}{0}ifelse 1(restore)prcmd}def/gsave 0 defpr/grestore{:grestore @checknull" -"dev printgstate 0(grestore)prcmd}def/grestoreall{:grestoreall @checknulldev se" -"tstate 0(grestoreall)prcmd}def/rotate{dup type/arraytype ne @dodraw and{dup 1(" -"rotate)prcmd}if/rotate sysexec applyscalevals}def/scale{dup type/arraytype ne " -"@dodraw and{2 copy 2(scale)prcmd}if/scale sysexec applyscalevals}def/translate" -"{dup type/arraytype ne @dodraw and{2 copy 2(translate)prcmd}if/translate sysex" -"ec}def/setmatrix{dup/setmatrix sysexec @dodraw{aload pop 6(setmatrix)prcmd app" -"lyscalevals}{pop}ifelse}def/initmatrix{matrix setmatrix}def/concat{matrix curr" -"entmatrix matrix concatmatrix setmatrix}def/makepattern{gsave<</mx 3 -1 roll>>" -"begin<</XUID[1000000 @patcnt]>>copy mx/makepattern sysexec dup begin PatternTy" -"pe 2 lt{PatternType @patcnt BBox aload pop XStep YStep PaintType mx aload pop " -"15(makepattern)prcmd :newpath matrix setmatrix dup PaintProc 0 1(makepattern)p" -"rcmd @GD/@patcnt @patcnt 1 add put}if end end grestore}def/setpattern{begin Pa" -"tternType 1 eq{PaintType 1 eq{XUID aload pop exch pop 1}{:gsave[currentcolorsp" -"ace aload length -1 roll pop]/setcolorspace sysexec/setcolor sysexec XUID aloa" -"d pop exch pop currentrgbcolor :grestore 4}ifelse(setpattern)prcmd currentcolo" -"rspace 0 get/Pattern ne{[/Pattern currentcolorspace]/setcolorspace sysexec}if " -"currentcolorspace @setcolorspace}{/setpattern sysexec}ifelse end}def/setcolor{" -"dup type/dicttype eq{setpattern}{/setcolor sysexec/currentrgbcolor sysexec set" -"rgbcolor}ifelse}def/setcolorspace{dup/setcolorspace sysexec @setcolorspace}def" -"/@setcolorspace{dup type/arraytype eq{0 get}if/Pattern eq{1}{0}ifelse 1(setcol" -"orspace)prcmd}def/setgray 1 defpr/setcmykcolor 4 defpr/sethsbcolor 3 defpr/set" -"rgbcolor 3 defpr/.setalphaisshape{@SD/.setalphaisshape known{dup/.setalphaissh" -"ape sysexec}if{1}{0}ifelse 1(setisshapealpha)prcmd}bind def/.setfillconstantal" -"pha{@SD/.setfillconstantalpha known{dup/.setfillconstantalpha sysexec}if 1(set" -"fillconstantalpha)prcmd}bind def/.setstrokeconstantalpha{@SD/.setstrokeconstan" -"talpha known{dup/.setstrokeconstantalpha sysexec}if 1(setstrokeconstantalpha)p" -"rcmd}bind def/.setopacityalpha{false .setalphaisshape dup .setfillconstantalph" -"a .setstrokeconstantalpha}bind def/.setshapealpha{true .setalphaisshape dup .s" -"etfillconstantalpha .setstrokeconstantalpha}bind def/.setblendmode{dup/.setble" -"ndmode sysexec<</Normal 0/Compatible 0/Multiply 1/Screen 2/Overlay 3/SoftLight" -" 4/HardLight 5/ColorDodge 6/ColorBurn 7/Darken 8/Lighten 9/Difference 10/Exclu" -"sion 11/Hue 12/Saturation 13/Color 14/Luminosity 15/CompatibleOverprint 16>>ex" -"ch get 1(setblendmode)prcmd}def/@pdfpagecount{(r)file runpdfbegin pdfpagecount" -" runpdfend}def/@pdfpagebox{(r)file runpdfbegin dup dup 1 lt exch pdfpagecount " -"gt or{pop}{pdfgetpage/MediaBox pget pop aload pop}ifelse runpdfend}def DELAYBI" -"ND{.bindnow}if "; +"tlinejoin)prcmd currentmiterlimit 1(setmiterlimit)prcmd revision dup 952 lt{po" +"p}{.currentblendmode .setblendmode 952 eq{.currentopacityalpha .setopacityalph" +"a .currentshapealpha .setshapealpha}{.currentalphaisshape{1}{0}ifelse 1(setalp" +"haisshape)prcmd .currentstrokeconstantalpha 1(setstrokeconstantalpha)prcmd .cu" +"rrentfillconstantalpha 1(setfillconstantalpha)prcmd}ifelse}ifelse prcolor curr" +"entdash mark 3 1 roll exch aload length 1 add -1 roll counttomark(setdash)prcm" +"d pop}if}def/strconcat{exch dup length 2 index length add string dup dup 4 2 r" +"oll copy length 4 -1 roll putinterval}def/setgstate{/setgstate sysexec printgs" +"tate}def/save{@UD begin/@saveID vmstatus pop pop def end :save @saveID 1(save)" +"prcmd}def/restore{:restore @checknulldev printgstate @UD/@saveID known{@UD beg" +"in @saveID end}{0}ifelse 1(restore)prcmd}def/gsave 0 defpr/grestore{:grestore " +"@checknulldev printgstate 0(grestore)prcmd}def/grestoreall{:grestoreall @check" +"nulldev setstate 0(grestoreall)prcmd}def/rotate{dup type/arraytype ne @dodraw " +"and{dup 1(rotate)prcmd}if/rotate sysexec applyscalevals}def/scale{dup type/arr" +"aytype ne @dodraw and{2 copy 2(scale)prcmd}if/scale sysexec applyscalevals}def" +"/translate{dup type/arraytype ne @dodraw and{2 copy 2(translate)prcmd}if/trans" +"late sysexec}def/setmatrix{dup/setmatrix sysexec @dodraw{aload pop 6(setmatrix" +")prcmd applyscalevals}{pop}ifelse}def/initmatrix{matrix setmatrix}def/concat{m" +"atrix currentmatrix matrix concatmatrix setmatrix}def/makepattern{gsave<</mx 3" +" -1 roll>>begin<</XUID[1000000 @patcnt]>>copy mx/makepattern sysexec dup begin" +" PatternType 2 lt{PatternType @patcnt BBox aload pop XStep YStep PaintType mx " +"aload pop 15(makepattern)prcmd :newpath matrix setmatrix dup PaintProc 0 1(mak" +"epattern)prcmd @GD/@patcnt @patcnt 1 add put}if end end grestore}def/setpatter" +"n{dup begin PatternType end 1 eq{begin PaintType 1 eq{XUID aload pop exch pop " +"1}{:gsave[currentcolorspace aload length -1 roll pop]/setcolorspace sysexec/se" +"tcolor sysexec XUID aload pop exch pop currentrgbcolor :grestore 4}ifelse(setp" +"attern)prcmd currentcolorspace 0 get/Pattern ne{[/Pattern currentcolorspace]/s" +"etcolorspace sysexec}if currentcolorspace @setcolorspace end}{/setpattern syse" +"xec}ifelse}def/setcolor{dup type/dicttype eq{setpattern}{/setcolor sysexec/cur" +"rentrgbcolor sysexec setrgbcolor}ifelse}def/setcolorspace{dup/setcolorspace sy" +"sexec @setcolorspace}def/@setcolorspace{dup type/arraytype eq{0 get}if/Pattern" +" eq{1}{0}ifelse 1(setcolorspace)prcmd}def/setgray 1 defpr/setcmykcolor 4 defpr" +"/sethsbcolor 3 defpr/setrgbcolor 3 defpr/.setalphaisshape{@SD/.setalphaisshape" +" known{dup/.setalphaisshape sysexec}if{1}{0}ifelse 1(setalphaisshape)prcmd}bin" +"d def/.setfillconstantalpha{@SD/.setfillconstantalpha known{dup/.setfillconsta" +"ntalpha sysexec}if 1(setfillconstantalpha)prcmd}bind def/.setstrokeconstantalp" +"ha{@SD/.setstrokeconstantalpha known{dup/.setstrokeconstantalpha sysexec}if 1(" +"setstrokeconstantalpha)prcmd}bind def/.setopacityalpha{false .setalphaisshape " +"dup .setfillconstantalpha .setstrokeconstantalpha}bind def/.setshapealpha{true" +" .setalphaisshape dup .setfillconstantalpha .setstrokeconstantalpha}bind def/." +"setblendmode{dup/.setblendmode sysexec<</Normal 0/Compatible 0/Multiply 1/Scre" +"en 2/Overlay 3/SoftLight 4/HardLight 5/ColorDodge 6/ColorBurn 7/Darken 8/Light" +"en 9/Difference 10/Exclusion 11/Hue 12/Saturation 13/Color 14/Luminosity 15/Co" +"mpatibleOverprint 16>>exch get 1(setblendmode)prcmd}def/@pdfpagecount{(r)file " +"runpdfbegin pdfpagecount runpdfend}def/@pdfpagebox{(r)file runpdfbegin dup dup" +" 1 lt exch pdfpagecount gt or{pop}{pdfgetpage/MediaBox pget pop aload pop}ifel" +"se runpdfend}def DELAYBIND{.bindnow}if "; |