Когда Apple говорит о «графическом состоянии», они имеют в виду график, который я создаю, или они означают настройки, которые я использую? - PullRequest
0 голосов
/ 23 апреля 2009

Говорят, что есть стек, который сохраняет графические состояния. Ну, я не уверен, что они подразумевают под этим термином. Сохраняет ли CGContextSaveGState текущий чертеж, который я сделал, или сохраняет текущие настройки чертежа, такие как цвет, ширина линии, размер шрифта и т. Д .?

1 Ответ

4 голосов
/ 23 апреля 2009

Документация CGContextSaveGState явно указывает, что сохраняется в состоянии.

Каждый графический контекст поддерживает стек графических состояний. Обратите внимание, что не все аспекты текущей среды рисования являются элементами графического состояния. Например, текущий путь не считается частью графического состояния и поэтому не сохраняется при вызове функции CGContextSaveGState. Параметры графического состояния, которые сохраняются:

  • CTM (текущая матрица преобразования)
  • область клипа
  • качество интерполяции изображения
  • ширина линии
  • объединение строк
  • предел митры
  • линейный колпачок
  • Строка тире
  • должен сглаживать
  • намерение рендеринга
  • заполнить цветовое пространство
  • Штриховое цветовое пространство
  • цвет заливки
  • цвет обводки
  • альфа-значение
  • шрифт
  • размер шрифта
  • межсимвольный интервал
  • режим рисования текста
  • параметры тени
  • Фаза паттерна
  • параметр сглаживания шрифта
  • режим наложения

Так что нет, чертеж, который вы сделали, не сохраняется (хотя он и не очищается). Вместо этого многие параметры состояния графики сохраняются. Затем вы можете восстановить состояние, в котором вы сохранили, позвонив по номеру CGContextRestoreGState.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...