diff options
author | Marius <mariausol@gmail.com> | 2012-10-15 20:20:24 +0300 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2012-10-15 20:20:24 +0300 |
commit | 26935233a6565bd73e53e2228ac98779fd3ab33d (patch) | |
tree | 0d1102a347b4fa86493a21744c8e6141885ed2d7 /tex/context/base/lpdf-ren.lua | |
parent | f5507b17b30a20c0e3c279291ce448b7886e3b0c (diff) | |
download | context-26935233a6565bd73e53e2228ac98779fd3ab33d.tar.gz |
beta 2012.10.15 19:10
Diffstat (limited to 'tex/context/base/lpdf-ren.lua')
-rw-r--r-- | tex/context/base/lpdf-ren.lua | 69 |
1 files changed, 36 insertions, 33 deletions
diff --git a/tex/context/base/lpdf-ren.lua b/tex/context/base/lpdf-ren.lua index 6362d12fe..6af65f9de 100644 --- a/tex/context/base/lpdf-ren.lua +++ b/tex/context/base/lpdf-ren.lua @@ -10,6 +10,7 @@ if not modules then modules = { } end modules ['lpdf-ren'] = { local tostring, tonumber, next = tostring, tonumber, next local format, rep = string.format, string.rep +local concat = table.concat local settings_to_array = utilities.parsers.settings_to_array local backends, lpdf, nodes, node = backends, lpdf, nodes, node @@ -229,39 +230,41 @@ function nodeinjections.stoplayer() return copy_node(stop) end --- experimental stacker code (slow, can be optimized): --- --- local values = viewerlayers.values --- --- function nodeinjections.startstackedlayer(s,t,first,last) --- local r = { } --- for i=first,last do --- r[#r+1] = startlayer(values[t[i]]) --- end --- r = concat(r," ") --- return pdfliteral(r) --- end --- --- function nodeinjections.stopstackedlayer(s,t,first,last) --- local r = { } --- for i=last,first,-1 do --- r[#r+1] = stoplayer() --- end --- r = concat(r," ") --- return pdfliteral(r) --- end --- --- function nodeinjections.changestackedlayer(s,t1,first1,last1,t2,first2,last2) --- local r = { } --- for i=last1,first1,-1 do --- r[#r+1] = stoplayer() --- end --- for i=first2,last2 do --- r[#r+1] = startlayer(values[t2[i]]) --- end --- r = concat(r," ") --- return pdfliteral(r) --- end +-- experimental stacker code (slow, can be optimized): !!!! TEST CODE !!!! + +local values = viewerlayers.values +local startlayer = codeinjections.startlayer +local stoplayer = codeinjections.stoplayer + +function nodeinjections.startstackedlayer(s,t,first,last) + local r = { } + for i=first,last do + r[#r+1] = startlayer(values[t[i]]) + end + r = concat(r," ") + return pdfliteral(r) +end + +function nodeinjections.stopstackedlayer(s,t,first,last) + local r = { } + for i=last,first,-1 do + r[#r+1] = stoplayer() + end + r = concat(r," ") + return pdfliteral(r) +end + +function nodeinjections.changestackedlayer(s,t1,first1,last1,t2,first2,last2) + local r = { } + for i=last1,first1,-1 do + r[#r+1] = stoplayer() + end + for i=first2,last2 do + r[#r+1] = startlayer(values[t2[i]]) + end + r = concat(r," ") + return pdfliteral(r) +end -- transitions |