diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def')
-rw-r--r-- | Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def | 104 |
1 files changed, 56 insertions, 48 deletions
diff --git a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def index c9881df5737..8627a611077 100644 --- a/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +++ b/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def @@ -7,7 +7,7 @@ % % See the file doc/generic/pgf/licenses/LICENSE for more details. -\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-pdftex.def,v 1.20 2007/12/20 10:56:53 tantau Exp $ +\ProvidesFileRCS $Header: /cvsroot/pgf/pgf/generic/pgf/systemlayer/pgfsys-pdftex.def,v 1.26 2009/05/22 07:25:48 jinhwancho Exp $ % Driver commands for pdf @@ -22,6 +22,7 @@ % \def\pgfsys@invoke#1{\pdfliteral{#1}} +% Synced hboxes \def\pgfsys@hboxsynced#1{% {% \pgfsys@beginscope% @@ -43,48 +44,6 @@ } -% Page resources (they are kept in objects and only written at the -% very end) - -\pdfobj reserveobjnum -\edef\pgf@sys@pdf@extgs@objnum{\the\pdflastobj} - -\pdfobj reserveobjnum -\edef\pgf@sys@pdf@pattern@objnum{\the\pdflastobj} - -\immediate \pdfobj {<< /pgfprgb [/Pattern /DeviceRGB] >>}%<< -\edef\pgf@sys@pdf@cs@objnum{\the\pdflastobj} - -\def\pgf@sys@pdf@possible@resources{% - /ColorSpace \pgf@sys@pdf@cs@objnum\space 0 R - /Pattern \pgf@sys@pdf@pattern@objnum\space 0 R - /ExtGState \pgf@sys@pdf@extgs@objnum\space 0 R -} - -{ - \edef\temp{ - \pgf@sys@pdf@possible@resources - } - \expandafter\global\expandafter\pdfpageresources\expandafter{\temp} -} - -\expandafter\pgfutil@everybye\expandafter{% - \the\pgfutil@everybye% - \immediate \pdfobj useobjnum \pgf@sys@pdf@extgs@objnum {<<\pgf@sys@pgf@resource@list@extgs>>}%<< - \immediate \pdfobj useobjnum \pgf@sys@pdf@pattern@objnum {<<\pgf@sys@pgf@resource@list@patterns>>}%<< -} - -\let\pgf@sys@pgf@resource@list@extgs=\pgfutil@empty% -\let\pgf@sys@pgf@resource@list@patterns=\pgfutil@empty% - -\def\pgf@sys@pdf@addtopageresources@extgs#1{% - \xdef\pgf@sys@pgf@resource@list@extgs{\pgf@sys@pgf@resource@list@extgs\space#1}% -} - -\def\pgf@sys@pdf@addtopageresources@patterns#1{% - \xdef\pgf@sys@pgf@resource@list@patterns{\pgf@sys@pgf@resource@list@patterns\space#1}% -} - \def\pgfsys@imagesuffixlist{.pdf:.jpg:.jpeg:.png:} \def\pgfsys@defineimage{% width, height, page number @@ -102,19 +61,19 @@ \edef\pgf@image{\noexpand\pdfrefform\the\pdflastform}% \else% new version {\pdfximage \pgf@imageheight \pgf@imagewidth attr - {\pgf@imageinterpolate\space\pgf@imagemask} \pgf@imagepage + {/Interpolate \pgf@imageinterpolate\space\pgf@imagemask} \pgf@imagepage {\pgf@filename}}% \edef\pgf@image{\noexpand\pdfrefximage\the\pdflastximage}% \fi }% -\def\pgfsys@definemask{% +\def\pgfsys@definemask#1{% \ifx\pgf@maskmatte\pgfutil@empty% \else% \edef\pgf@maskmatte{/Matte [\pgf@maskmatte]}% \fi% \edef\pgf@attr{{\pgf@maskmatte\space /Decode [1 0]}}% \immediate\pdfximage attr \pgf@attr {\pgf@filename}% - \edef\pgf@mask{\the\pdflastximage}% + \edef\pgf@mask{/SMask \the\pdflastximage\space 0 R}% } \def\pgfsys@horishading#1#2#3{% {% @@ -247,7 +206,7 @@ /Resources << >> %<< } {#8}% - \pgf@sys@pdf@addtopageresources@patterns{/pgfpat#1\space \the\pdflastobj\space 0 R}% + \pgfutil@addpdfresource@patterns{/pgfpat#1\space \the\pdflastobj\space 0 R}% } \def\pgfsys@setpatternuncolored#1#2#3#4{% @@ -323,6 +282,7 @@ % \def\pgfsys@fadingfrombox#1#2{% {% + \pgf@sys@pdf@check@resources% \pgf@x=-.5\wd#2% \pgf@y=-.5\ht#2% \advance\pgf@y by.5\dp#2% @@ -364,7 +324,7 @@ >> }% << \pgfutil@tempboxa% - \pgf@sys@pdf@addtopageresources@extgs{% + \pgfutil@addpdfresource@extgs{% /pgfsmask\the\pdflastxform\space << /SMask @@ -380,6 +340,7 @@ % Transparency groups % \def\pgfsys@transparencygroupfrombox#1{% + \pgf@sys@pdf@check@resources% \pdfxform attr { /Group << /S /Transparency >> } %<< resources { \pgf@sys@pdf@possible@resources } @@ -387,6 +348,53 @@ \setbox#1=\hbox{\pdfrefxform\pdflastxform}% } + + + +% +% Resource management +% + +\def\pgf@sys@setuppdfresources@plain{% + % This command will setup pdf resource in plain and in latex + % mode. ConTeXt has its own handler + % Page resources (they are kept in objects and only written at the + % very end) + \pdfobj reserveobjnum \edef\pgf@sys@pdf@extgs@objnum{\the\pdflastobj} + \pdfobj reserveobjnum \edef\pgf@sys@pdf@pattern@objnum{\the\pdflastobj} + \pdfobj reserveobjnum \edef\pgf@sys@pdf@colrospaces@objnum{\the\pdflastobj} + \def\pgf@sys@pdf@possible@resources{% + /ColorSpace \pgf@sys@pdf@colrospaces@objnum\space 0 R + /Pattern \pgf@sys@pdf@pattern@objnum\space 0 R + /ExtGState \pgf@sys@pdf@extgs@objnum\space 0 R + } + \let\pgf@sys@pdf@check@resources=\relax% + \def\pgf@sys@pdf@install@pageresources{ + { + \edef\temp{ + \pgf@sys@pdf@possible@resources + } + \expandafter\global\expandafter\pdfpageresources\expandafter{\temp} + } + } + \pgf@sys@pdf@install@pageresources + \expandafter\pgfutil@everybye\expandafter{% + \the\pgfutil@everybye% + \immediate \pdfobj useobjnum \pgf@sys@pdf@extgs@objnum {<<\pgf@sys@pgf@resource@list@extgs>>}%<< + \immediate \pdfobj useobjnum \pgf@sys@pdf@pattern@objnum {<<\pgf@sys@pgf@resource@list@patterns>>}%<< + \immediate \pdfobj useobjnum \pgf@sys@pdf@colrospaces@objnum {<<\pgf@sys@pgf@resource@list@colorspaces>>}%<< + } + \let\pgf@sys@pgf@resource@list@extgs=\pgfutil@empty% + \let\pgf@sys@pgf@resource@list@patterns=\pgfutil@empty% + \let\pgf@sys@pgf@resource@list@colorspaces=\pgfutil@empty% + \def\pgf@sys@addpdfresource@extgs@plain##1{\xdef\pgf@sys@pgf@resource@list@extgs{\pgf@sys@pgf@resource@list@extgs\space##1}} + \def\pgf@sys@addpdfresource@patterns@plain##1{\xdef\pgf@sys@pgf@resource@list@patterns{\pgf@sys@pgf@resource@list@patterns\space##1}} + \def\pgf@sys@addpdfresource@colorspaces@plain##1{\xdef\pgf@sys@pgf@resource@list@colorspaces{\pgf@sys@pgf@resource@list@colorspaces\space##1}} +} +\pgfutil@setuppdfresources % possibly call the above + +\pgfutil@addpdfresource@colorspaces{ /pgfprgb [/Pattern /DeviceRGB] } + \endinput |