% Copyright 2019 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-vtex.def}


% Driver commands for vtex

% Invoking things:
\def\pgfsys@invoke#1{\special{pS: grestore #1 gsave}} % to protect against things happeing in between
\def\pgfsys@outerinvoke#1{\special{pS: #1}}
\def\pgf@sys@postscript@header#1{\immediate\special{pS: #1}}
\def\pgf@sys@postscript@object#1{\immediate\special{pS: #1}}


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


%
% vtex-specific stuff:
%


% Starting and ending a picture:
\def\pgfsys@beginpicture{\special{pS:
  save
    /pgfx currentpoint /pgfy exch def def
    currentpoint translate
    gsave}%
  \let\set@color=\pgf@sys@vtex@set@color%
  \let\reset@color=\pgf@sys@vtex@reset@color%
}
\def\pgf@sys@vtex@setcolor#1{%
  \pgfutil@colorlet{pgf@tempcolor}{#1}%
  \pgfutil@ifundefined{applycolormixins}{}{\applycolormixins{pgf@tempcolor}}%
  \expandafter\expandafter\expandafter\pgf@sys@vtex@@setcolor\csname\string\color@pgf@tempcolor\endcsname%
}
\def\pgf@sys@vtex@@setcolor#1#2#3#4#5{%
  \pgfsysps@color@resetnow%
  \expandafter\ifx\csname pgfsys@color@#4\endcsname\relax%
    \pgferror{Unsupported color model `#4'. Sorry}%
  \else%
    \edef\pgf@colmarshal{\expandafter\noexpand\csname pgfsys@color@#4\endcsname}%
    \pgf@uncomma#5,,%
    \pgf@colmarshal%
  \fi}
\def\pgf@sys@vtex@set@color{\pgf@sys@vtex@setcolor{.}\aftergroup\reset@color}
\def\pgf@sys@vtex@reset@color{\pgf@sys@vtex@setcolor{.}}
\def\pgfsys@endpicture{\special{pS:
    newpath
    grestore
  newpath
  restore}}

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

% Starting and ending a box:
\def\pgfsys@hbox#1{%
  \pgfsys@invoke{save pgfx neg pgfy neg translate}%
      \wd#1=0pt%
      \ht#1=0pt%
      \dp#1=0pt%
      \box#1
  \pgfsys@invoke{restore}%
}

\def\pgfsys@color@unstacked#1{\special{pS: \XC@usecolor{#1}}}

\def\pgfsys@fill@opacity#1{\pgf@sys@fail{opacity}}
\def\pgfsys@stroke@opacity#1{\pgf@sys@fail{opacity}}

\AtBeginDocument{
  % Always present specials.
  \immediate\special{pS:
    /pgfsc{} bind def% stroke color is empty by default
    /pgffc{} bind def% fill color is empty by default
    /pgfstr{stroke} bind def%
    /pgffill{fill} bind def%
    /pgfeofill{eofill} bind def%
    /pgfe{moveto dup 0 rlineto exch 0 exch rlineto neg 0 rlineto closepath} bind def% rectangle
    /pgfw{setlinewidth} bind def % setlinewidth
    }
}

% vtex commands for changing the paper size
\def\pgfsys@papersize#1#2{\mediawidth#1\mediaheight#2}





\endinput

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