summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-textures.def
blob: 1a01a6f8f11178bf5da9387867ce10cdb4a46ac3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
% Copyright 2006 by Till Tantau
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.

\ProvidesFileRCS{pgfsys-textures.def}


% Driver commands for textures driver


\def\pgfsys@invoke#1{\special{rawpostscript #1}}
\def\pgf@sys@postscript@header#1{\special{prepostscript #1}}
\def\pgf@sys@postscript@object#1{\special{rawpostscript #1}}


%
% Load common postscript commands:
%
\input pgfsys-common-postscript.def


%
% textures-specific stuff:
%

\def\pgfsys@beginpicture{%
  \special{rawpostscript save}%
    \special{rawpostscript save pgfgetcoords}%
    \special{postscript}% here come the coordinates
    \special{rawpostscript restore}%
      \special{rawpostscript pgfbeginpicture}}
\def\pgfsys@endpicture{\special{rawpostscript restore}}
\def\pgfsys@hbox#1{%
  \pgfsys@begin@idscope%
  \pgfsys@invoke{save pgfbeginhbox}%
    \wd#1=0pt%
    \ht#1=0pt%
    \dp#1=0pt%
    \box#1%
  \pgfsys@invoke{restore}%
  \pgfsys@end@idscope%
}
\def\pgfsys@begininvisible{%
  \special{rawpostscript gsave nulldevice}%
}
\def\pgfsys@endinvisible{%
  \special{rawpostscript grestore}%
}
\def\pgfsys@color@unstacked#1{\special{rawpostscript \XC@usecolor{#1}}}

\def\pgfsys@imagesuffixlist{.epsi:.eps:.ps:}

\AtBeginDocument{
  % Always present specials.
  \special{prepostscript
    /pgfsc{}bind def% stroke color is empty by default
    /pgffc{}bind def% fill color is empty by default
    /pgfe{moveto dup 0 rlineto exch 0 exch rlineto neg 0 rlineto closepath}bind def% rectangle
    /pgfstr{stroke}bind def%
    /pgffill{fill}bind def%
    /pgfeofill{eofill}bind def%
    /pgfw{setlinewidth}bind def% setlinewidth
    /pgfgetcoords{/sps{globaldict begin /pgfgy exch def /pgfgx exch def
        end pop pop}def/eps{}def userdict begin}bind def
    /pgfbeginpicture{/pgfx pgfgx def /pgfy pgfgy def pgfx pgfy translate 1 1 72.27 72 div mul2 neg scale}bind def
    /pgfbeginhbox{1 1 72 72.27 div mul2 neg scale
          pgfx neg pgfy neg translate
          pgffoa .setopacityalpha}bind def% save
    /.setopacityalpha where {pop} {/.setopacityalpha{pop}def} ifelse % install .setopacityalpha
    /.pgfsetfillopacityalpha{/pgffoa exch def
      /pgffill{gsave pgffoa .setopacityalpha fill 1 .setopacityalpha
        newpath fill grestore newpath}bind def
      /pgfeofill{gsave pgffoa .setopacityalpha eofill1
        .setopacityalpha newpath eofill grestore newpath}bind def}bind def
    /.pgfsetstrokeopacityalpha{/pgfsoa exch def
      /pgfstr{gsave pgfsoa .setopacityalpha stroke grestore newpath}bind def}bind def
    /pgffoa 1 def
    /pgfsoa 1 def
    }
}

\endinput

%%% Local Variables:
%%% mode: latex
%%% End: