summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/pgf-blur
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-08-21 21:47:21 +0000
committerKarl Berry <karl@freefriends.org>2018-08-21 21:47:21 +0000
commit264fd35aafd09737359fce67fd7a048a44221303 (patch)
treeb6379bfde8ac14d948d202b1580dd76ac9e30e59 /Master/texmf-dist/tex/latex/pgf-blur
parentd651e84fcb7ac24f9677177e6ea57de7eebc083f (diff)
pgf-blur (21aug18)
git-svn-id: svn://tug.org/texlive/trunk@48446 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/pgf-blur')
-rw-r--r--Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex88
1 files changed, 80 insertions, 8 deletions
diff --git a/Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex b/Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex
index 08cf823c3fa..78e6d48c099 100644
--- a/Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex
+++ b/Master/texmf-dist/tex/latex/pgf-blur/tikzlibraryshadows.blur.code.tex
@@ -6,6 +6,8 @@
%%
%% pgf-blur.dtx (with options: `texfile')
%% Copyright 2012 Martin Giese, martingi@ifi.uio.no
+%% Copyright 2012 Andrew Stacey
+%% Copyright 2018 Norbert Preining, norbert@preining.info
%%
%% This file is under the LaTeX Project Public License
%% See CTAN archives in directory macros/latex/base/lppl.txt.
@@ -15,11 +17,14 @@
%%
-\def\fileversion{1.01}
-\def\filedate{2012/04/24}
+\def\fileversion{1.02}
+\def\filedate{2012/12/09}
\message{ v\fileversion, \filedate}
\usetikzlibrary{shadows}
\usetikzlibrary{calc}
+\newif\ifpgfbs@invert@fading
+\newcount\pgfbs@fading@count
+\pgfbs@fading@count=0\relax
\tikzset{
/tikz/shadow blur radius/.store in=\pgfbs@radius,
/tikz/shadow blur radius=.4ex,
@@ -28,6 +33,7 @@
/tikz/shadow blur extra rounding/.default=\pgfbs@radius,
/tikz/shadow blur steps/.store in=\pgfbs@steps,
/tikz/shadow blur steps=4,
+ /tikz/shadow blur invert/.is if=pgfbs@invert@fading,
/tikz/shadow opacity/.store in=\pgfbs@opacity,
/tikz/shadow opacity=40,
/tikz/blur shadow/.style={
@@ -40,14 +46,19 @@
},
/tikz/render blur shadow/.code={
\pgfbs@savebb
+ \global\advance\pgfbs@fading@count by 1\relax
\pgfsyssoftpath@getcurrentpath{\pgfbs@input@path}%
\pgfbs@compute@shadow@bbox
\pgfbs@process@rounding{\pgfbs@input@path}{\pgfbs@fadepath}%
\pgfbs@apply@canvas@transform
\colorlet{pstb@shadow@color}{white!\pgfbs@opacity!black}%
- \pgfdeclarefading{shadowfading}{\pgfbs@paint@fading}%
+ \ifpgfbs@invert@fading
+ \pgfdeclarefading{shadowfading-\the\pgfbs@fading@count}{\pgfbs@paint@invert@fading}%
+ \else
+ \pgfdeclarefading{shadowfading-\the\pgfbs@fading@count}{\pgfbs@paint@fading}%
+ \fi
\pgfsetfillcolor{black}%
- \pgfsetfading{shadowfading}%
+ \pgfsetfading{shadowfading-\the\pgfbs@fading@count}%
{\pgftransformshift{\pgfpoint{\pgfbs@midx}{\pgfbs@midy}}}%
\pgfbs@usebbox{fill}%
\pgfbs@restorebb
@@ -120,10 +131,10 @@
\edef\pgfbs@maxy{\the\pgf@pathmaxy}%
\pgfmathsetmacro\pgfbs@midx{0.5*(\pgfbs@minx + \pgfbs@maxx)}%
\pgfmathsetmacro\pgfbs@midy{0.5*(\pgfbs@miny + \pgfbs@maxy)}%
- \pgfmathsetmacro\pgfbs@minx{\pgfbs@minx - \pgfbs@radius}%
- \pgfmathsetmacro\pgfbs@miny{\pgfbs@miny - \pgfbs@radius}%
- \pgfmathsetmacro\pgfbs@maxx{\pgfbs@maxx + \pgfbs@radius}%
- \pgfmathsetmacro\pgfbs@maxy{\pgfbs@maxy + \pgfbs@radius}%
+ \pgfmathsetmacro\pgfbs@minx{\pgfbs@minx - 2*\pgfbs@radius}%
+ \pgfmathsetmacro\pgfbs@miny{\pgfbs@miny - 2*\pgfbs@radius}%
+ \pgfmathsetmacro\pgfbs@maxx{\pgfbs@maxx + 2*\pgfbs@radius}%
+ \pgfmathsetmacro\pgfbs@maxy{\pgfbs@maxy + 2*\pgfbs@radius}%
\pgfmathsetmacro\pgfbs@wd{\pgfbs@maxx - \pgfbs@minx}%
\pgfmathsetmacro\pgfbs@ht{\pgfbs@maxy - \pgfbs@miny}%
\pgfsyssoftpath@setcurrentpath\pgfutil@empty%
@@ -149,6 +160,13 @@
\pgfsyssoftpath@flushcurrentpath%
\pgfusepath{#1}%
}
+\def\pgfbs@usefadeandbbox#1{%
+ \let\pgfbs@temppath\pgfbs@fadepath
+ \expandafter\expandafter\expandafter\def\expandafter\expandafter\expandafter\pgfbs@temppath\expandafter\expandafter\expandafter{\expandafter\pgfbs@temppath\pgfbs@shadow@bbox}%
+ \pgfsyssoftpath@setcurrentpath{\pgfbs@temppath}%
+ \pgfsyssoftpath@flushcurrentpath%
+ \pgfusepath{#1}%
+}
\def\pgfbs@apply@canvas@transform{
\pgflowlevel{
\pgftransformshift{\pgfpoint{\pgfbs@midx}{\pgfbs@midy}}
@@ -161,6 +179,7 @@
}
\def\pgfbs@paint@fading{
\pgfpicture
+ \pgfsetbaseline{\pgf@picminy}%
% fix bounding box.
\pgfbs@set@fading@pic@bbox
% compute increments for line width and opacity
@@ -207,6 +226,59 @@
\pgfbs@usefadepath{stroke}
\endpgfpicture
}
+\def\pgfbs@paint@invert@fading{
+ \pgfpicture
+ \pgfsetbaseline{\pgf@picminy}%
+ % fix bounding box.
+ \pgfbs@set@fading@pic@bbox
+ % compute increments for line width and opacity
+ \pgfmathsetmacro\pgfbs@op@step{50/\pgfbs@steps}
+ \pgfmathsetmacro\pgfbs@wth@step{4*\pgfbs@radius/(2*\pgfbs@steps-1)}
+ % draw the outer part of the fading,
+ % starting with lightest, outermost line
+ \pgfsetroundjoin
+ \pgfmathsetmacro\pgfbs@max@i{\pgfbs@steps-2}
+ \pgfmathsetmacro\pgfbs@wth{2*\pgfbs@radius}
+ \pgfmathsetmacro\pgfbs@op{0.5*\pgfbs@op@step}
+ \foreach \pgfbs@i in {0,...,\pgfbs@max@i} {
+ \pgfsetlinewidth{\pgfbs@wth pt}
+ \pgfsetstrokecolor{black!\pgfbs@op!pstb@shadow@color}
+ \pgfbs@usefadepath{stroke}
+ \pgfmathsetmacro\pgfbs@wth{\pgfbs@wth-\pgfbs@wth@step}
+ \global\let\pgfbs@wth=\pgfbs@wth
+ \pgfmathsetmacro\pgfbs@op{\pgfbs@op+\pgfbs@op@step}
+ \global\let\pgfbs@op=\pgfbs@op
+ }
+ % clip to inside of path
+ \scope
+ \pgfseteorule
+ \pgfbs@usefadeandbbox{clip}
+ % fill inside with final darkest shadow color
+ \pgfsetfillcolor{pstb@shadow@color}
+ \pgfbs@usebbox{fill}
+ \endscope
+ \scope
+ \pgfbs@usefadepath{clip}
+ % draw the inner part of the fading,
+ % starting with the darkest, innermost line
+ \pgfmathsetmacro\pgfbs@wth{2*\pgfbs@radius}
+ \pgfmathsetmacro\pgfbs@op{100-0.5*\pgfbs@op@step}
+ \foreach \pgfbs@i in {0,...,\pgfbs@max@i} {
+ \pgfsetlinewidth{\pgfbs@wth pt}
+ \pgfsetstrokecolor{black!\pgfbs@op!pstb@shadow@color}
+ \pgfbs@usefadepath{stroke}
+ \pgfmathsetmacro\pgfbs@wth{\pgfbs@wth-\pgfbs@wth@step}
+ \global\let\pgfbs@wth=\pgfbs@wth
+ \pgfmathsetmacro\pgfbs@op{\pgfbs@op-\pgfbs@op@step}
+ \global\let\pgfbs@op=\pgfbs@op
+ }
+ \endscope
+ % a final stroke to hide clip/antialiasing artifcats
+ \pgfsetstrokecolor{black!50!pstb@shadow@color}
+ \pgfsetlinewidth{0.5*\pgfbs@wth@step}
+ \pgfbs@usefadepath{stroke}
+ \endpgfpicture
+}
\endinput
%%
%% End of file `tikzlibraryshadows.blur.code.tex'.