canvas | Состояние холста

canvas | Состояние холста

Объекты, реализующие интерфейс CanvasState, поддерживают стек состояний рисования. Состояния чертежа (Drawing states) состоят из:

Примечание

Растровые изображения контекста визуализации не являются частью состояния рисования, поскольку они зависят от того, привязан ли контекст визуализации к элементу холста canvas и каким образом.

 

Объекты, реализующие миксин CanvasState, имеют логическое значение потери контекста (context lost), которое инициализируется значением false при создании объекта. Значение потерянного контекста обновляется в шагах, связанных с потерей контекста.

Для веб-разработчиков (не нормативно)

context.save()

Помещает текущее состояние в стек.

context.restore()

Выдвигает верхнее состояние в стеке, восстанавливая контекст до этого состояния.

context.reset()

Сбрасывает контекст визуализации, который включает буфер поддержки, стек состояний рисования, путь и стили.

context.isContextLost()

Возвращает истину, если контекст отрисовки был утерян. Потеря контекста может произойти из-за сбоев драйвера, нехватки памяти и т. д. В этих случаях холст теряет резервное хранилище и предпринимает шаги для сброса контекста визуализации в состояние по умолчанию.

 

Шаги метода save() заключаются в том, чтобы поместить копию текущего состояния рисования в стек состояний рисования.

Шаги метода restore() заключаются в том, чтобы вывести верхнюю запись в стек состояний рисования и сбросить состояние рисования, которое она описывает. Если сохранённого состояния нет, метод ничего не должен делать.

Шаги метода reset() заключаются в сбросе контекста визуализации в состояние по умолчанию.

Чтобы сбросить контекст рендеринга в состояние по умолчанию (reset the rendering context to its default state):

1. Очистить растровое изображение холста до прозрачного чёрного.
2. Очистите список подпути в текущем пути по умолчанию для контекста.
3. Очистите стек состояний рисования контекста.
4. Сбросьте всё, из чего состоит состояние рисования, к их начальным значениям.

Шаги метода isContextLost() должны вернуть потерянный контекст этого this.

 

Информационные ссылки

Стандарт HTML — Раздел «4.12.5.1.2 The canvas state» — https://html.spec.whatwg.org/#the-canvas-state