summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/back-ini.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/back-ini.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/back-ini.lua143
1 files changed, 143 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/back-ini.lua b/Master/texmf-dist/tex/context/base/back-ini.lua
new file mode 100644
index 00000000000..bad6b0282d5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/back-ini.lua
@@ -0,0 +1,143 @@
+if not modules then modules = { } end modules ['back-ini'] = {
+ version = 1.001,
+ comment = "companion to back-ini.tex",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+backends = backends or { }
+
+local trace_backend = false
+
+local function nothing() return nil end
+
+backends.nothing = nothing
+
+backends.nodeinjections = {
+ rgbcolor = nothing,
+ cmykcolor = nothing,
+ graycolor = nothing,
+ spotcolor = nothing,
+ transparency = nothing,
+ overprint = nothing,
+ knockout = nothing,
+ positive = nothing,
+ negative = nothing,
+ effect = nothing,
+ startlayer = nothing,
+ stoplayer = nothing,
+ switchlayer = nothing,
+
+ reference = nothing,
+ destination = nothing,
+
+}
+
+backends.codeinjections = {
+
+ prerollreference = nothing,
+
+ insertmovie = nothing,
+ insertsound = nothing,
+
+ presetsymbollist = nothing,
+ registersymbol = nothing,
+ registeredsymbol = nothing,
+
+ registercomment = nothing,
+ attachfile = nothing,
+ adddocumentinfo = nothing,
+ setupidentity = nothing,
+ setpagetransition = nothing,
+ defineviewerlayer = nothing,
+ addbookmarks = nothing,
+ addtransparencygroup = nothing,
+
+ typesetfield = nothing,
+ finishfields = nothing,
+ doiffieldelse = nothing,
+ doiffieldgroupelse = nothing,
+ definefield = nothing,
+ clonefield = nothing,
+ definefieldset = nothing,
+ getfieldgroup = nothing,
+ setformsmethod = nothing,
+ getdefaultfieldvalue = nothing,
+
+ setupcanvas = nothing,
+
+ initializepage = nothing,
+ initializedocument = nothing,
+ finalizepage = nothing,
+ finalizedocument = nothing,
+
+ flushpageactions = nothing,
+ flushdocumentactions = nothing,
+
+ insertrenderingwindow = nothing,
+ processrendering = nothing,
+ kindofrendering = nothing,
+ flushrenderingwindow = nothing,
+
+ setfigurecolorspace = nothing,
+ setfigurealternative = nothing,
+
+}
+
+backends.registrations = {
+ grayspotcolor = nothing,
+ rgbspotcolor = nothing,
+ cmykspotcolor = nothing,
+ grayindexcolor = nothing,
+ rgbindexcolor = nothing,
+ cmykindexcolor = nothing,
+ spotcolorname = nothing,
+ transparency = nothing,
+}
+
+local nodeinjections = backends.nodeinjections
+local codeinjections = backends.codeinjections
+local registrations = backends.registrations
+
+backends.current = "unknown"
+
+function backends.install(what)
+ if type(what) == "string" then
+ local backend = backends[what]
+ if backend then
+ if trace_backend then
+ logs.report("backend", "initializing backend %s (%s)",what,backend.comment or "no comment")
+ end
+ backends.current = what
+ for _, category in next, { "nodeinjections", "codeinjections", "registrations"} do
+ local plugin = backend[category]
+ if plugin then
+ local whereto = backends[category]
+ for name, meaning in next, whereto do
+ if plugin[name] then
+ whereto[name] = plugin[name]
+ -- logs.report("backend", "installing function %s in category %s of %s",name,category,what)
+ elseif trace_backend then
+ logs.report("backend", "no function %s in category %s of %s",name,category,what)
+ end
+ end
+ elseif trace_backend then
+ logs.report("backend", "no category %s in %s",category,what)
+ end
+ end
+ backends.helpers = backend.helpers
+ elseif trace_backend then
+ logs.report("backend", "no backend named %s",what)
+ end
+ end
+end
+
+statistics.register("used backend", function()
+ local bc = backends.current
+ if bc ~= "unknown" then
+ return string.format("%s (%s)",bc,backends[bc].comment or "no comment")
+ else
+ return nil
+ end
+end)