Использование NSShadow для непрямоугольных фигур - PullRequest
1 голос
/ 20 июня 2011

Я рисую тень различных непрямоугольных фигур внутри объекта CIImage.Я сделал это, создав подкласс CIFilter и объединив свое собственное ядро ​​фильтра и фильтр размытия по Гауссу.Мне интересно, можно ли получить прирост производительности с помощью NSShadow.

Также я не уверен, можно ли использовать NSShadow для рисования тени непрямоугольной формы?Например, в ответе на другой вопрос я обнаружил, что для использования NSShadow сначала необходимо создать NSBezierPath формы.

Любые подсказки, предложения или я совершенно не здесьпытается использовать NSShadow в этой ситуации?

1 Ответ

1 голос
/ 20 июня 2011

Я не знаю, будет ли это быстрее, но, конечно, будет проще. И помните: чем меньше у вас кода, тем меньше ошибок.

NSShadow работает с любой формой, прямоугольной или иной. Фактически, некоторые вещи, которые мы обычно не воспринимаем как тень, могут быть реализованы как тени. Например, свечение - это просто белая «тень». Я предполагаю, что кольца фокусировки являются тенями внутри.

Вам не нужно создавать NSBezierPath. Рисование изображения с тенью будет работать нормально. Единственное, чего нет, - это рисовать градиент (как в NSGradient).

Для удобства других читателей: все это в равной степени относится к кварцу, к теневым свойствам CGContext и исключению CGGradient и, возможно, CGShading.

...