Есть ли способ доступа к HTML Canvas
элементам DrawingContext2D
save
и restore
стек под капотом?Доступ к стеку холста Canvas's DrawingContext2D для сохранения/восстановления?
Цель будет save
база государства, clip
области его, чтобы некоторые операции, которые имеют место, которые могут применяться clip
, save
, restore
с неопределенными заказами (то есть что-то может save
2-3 состояния в стек и никогда не восстановить их, или он может restore
несколько раз и теряют первоначальный save
состояние до перехода обратно в материнскую функцию, которая будет затем пытается restore
государство, которое больше не существует в стеке.)
Я предпочитаю сделать это без класса обертки вокруг DrawingContext2D
sinc e JavaScript становится немного медленнее при каждом вызове функции, и рендеринг имеет тенденцию быть чувствительным к времени.
Было бы также полезно ограничить количество возможных вызовов в вызываемой функции restore
, не полагаясь на вызываемую функцию для поддержания этого предела.
[webkit said no] (https://bugs.webkit.org/show_bug.cgi?id=82801), потому что [* A library *] "* не может рисовать вне указанного вами клипа. С resetClip (), что библиотека JS может нарисовать везде, где он хочет ... * «[комментарий # 25] (https://bugs.webkit.org/show_bug.cgi?id=82801#c25) Этот бедный парень не делает знать трюк 'canvas.width = canvas.width' для * evil libs * и не сообщает нам, как мы, вероятно, делаем это неправильно *, когда мы просто хотим сбросить область отсечения, а не все другие свойства контекста ... – Kaiido
@Kaiido просто ничего себе ...: -/ – K3N
@Kaiido 'resetClip' не существует в' Chrome', не уверен в других браузерах. Любая идея, когда она делает это для производства? – CoryG