diff options
author | Hans Hagen <pragma@wxs.nl> | 2018-06-08 10:23:49 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2018-06-08 10:23:49 +0200 |
commit | 86bfea5faac983d15c47eec27f43ec56e75c69ef (patch) | |
tree | 69a37851a9b8beeb625110f4fc51ff1ef188d7e4 /tex/context/base/mkiv/mlib-ctx.lua | |
parent | c2d2236242c95f4753e7b197d576102c6fc20446 (diff) | |
download | context-86bfea5faac983d15c47eec27f43ec56e75c69ef.tar.gz |
2018-06-08 09:38:00
Diffstat (limited to 'tex/context/base/mkiv/mlib-ctx.lua')
-rw-r--r-- | tex/context/base/mkiv/mlib-ctx.lua | 66 |
1 files changed, 26 insertions, 40 deletions
diff --git a/tex/context/base/mkiv/mlib-ctx.lua b/tex/context/base/mkiv/mlib-ctx.lua index b51c4fd9d..74601cc8c 100644 --- a/tex/context/base/mkiv/mlib-ctx.lua +++ b/tex/context/base/mkiv/mlib-ctx.lua @@ -11,46 +11,29 @@ local format, concat = string.format, table.concat local settings_to_hash = utilities.parsers.settings_to_hash local formatters = string.formatters -local report_metapost = logs.reporter("metapost") +local report_metapost = logs.reporter ("metapost") +local status_metapost = logs.messenger("metapost") -local starttiming = statistics.starttiming -local stoptiming = statistics.stoptiming +local starttiming = statistics.starttiming +local stoptiming = statistics.stoptiming -local mplib = mplib +local trace_graphic = false -metapost = metapost or { } -local metapost = metapost -local context = context +trackers.register("metapost.graphics", + function(v) trace_graphic = v end +); -local setters = tokens.setters -local setmacro = setters.macro -local implement = interfaces.implement +local mplib = mplib -local v_no = interfaces.variables.no +metapost = metapost or { } +local metapost = metapost +local context = context -metapost.defaultformat = "metafun" -metapost.defaultinstance = "metafun" -metapost.defaultmethod = "default" +local setters = tokens.setters +local setmacro = setters.macro +local implement = interfaces.implement -local function setmpsformat(specification) - local instance = specification.instance - local format = specification.format - local method = specification.method - if not instance or instance == "" then - instance = metapost.defaultinstance - specification.instance = instance - end - if not format or format == "" then - format = metapost.defaultformat - specification.format = format - end - if not method or method == "" then - method = metapost.defaultmethod - specification.method = method - end - specification.mpx = metapost.format(instance,format,method) - return specification -end +local v_no = interfaces.variables.no local extensiondata = metapost.extensiondata or storage.allocate { } metapost.extensiondata = extensiondata @@ -96,9 +79,6 @@ implement { arguments = "string" } -local report_metapost = logs.reporter ("metapost") -local status_metapost = logs.messenger("metapost") - local patterns = { "meta-imp-%s.mkiv", "meta-imp-%s.tex", @@ -192,7 +172,9 @@ implement { -- or just move the scanners to pps function metapost.graphic(specification) - metapost.graphic_base_pass(setmpsformat(specification)) + metapost.pushformat(specification) + metapost.graphic_base_pass(specification) + metapost.popformat() end function metapost.startgraphic(t) @@ -218,8 +200,10 @@ end function metapost.stopgraphic(t) if t then t.data = concat(t.data or { },"\n") + if trace_graphic then + report_metapost("\n"..t.data.."\n") + end metapost.graphic(t) - t.data = "" end end @@ -265,8 +249,7 @@ implement { } function metapost.getclippath(specification) -- why not a special instance for this - setmpsformat(specification) - local mpx = specification.mpx + local mpx = metapost.pushformat(specification) local data = specification.data or "" if mpx and data ~= "" then starttiming(metapost) @@ -285,7 +268,10 @@ function metapost.getclippath(specification) -- why not a special instance for t result = metapost.filterclippath(result) end stoptiming(metapost) + metapost.pushformat() return result + else + metapost.pushformat() end end |