summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
diff options
context:
space:
mode:
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.def104
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