й діалог. Значення параметрів зберігаються в блоці пам'яті, дескриптор якого записується в полі parameters запису FilterRecord. Спочатку цьому полю редактор привласнює значення nil.
Якщо плагін запускається з пункту меню Last Filter, то процедура зі значенням filterSelectorParameters не викликається, а відбувається виклик відразу зі значенням selector = filterSelectorPrepare. Користувачеві не має показуватися діалог з налаштуванням параметрів. Щоб уникнути помилок обробки неправильних параметрів плагін завжди повинен перевіряти їх наявність і коректність. p align="justify"> Параметри плагіна не повинні залежати від розміру, режиму та інших особливостей зображення.
В· filterSelectorPrepare. Цей виклик призначений для вказівки редактору необхідного плагіну розміру пам'яті. Photoshop присвоює максимальна величина доступної пам'яті в полі maxSpace. Можна зменшити це значення для більш ефективної роботи програми (повідомити редактору, що ми і йому самому щось від пам'яті теж залишимо).
В· filterSelectorStart. Тепер потрібно переконатися, що всі параметри задані коректно, і приготуватися обробляти зображення.
Взагалі, для економії ресурсів, зображення повинне оброблятися шматками. У Photoshop існує два варіанти обробки зображення. У перших версіях редактора потрібно було вказати розміри першого шматка вихідного зображення, результату і маски виділення в полях inRect, outRect і maskRect запису FilterRecord, відповідно, і віддати управління назад. Потім кілька разів викликається процедура з параметром selector = filterSelectorContinue, якій передається необхідна частина зображення. Все це обробляється, в поля запису записуються розміри наступних шматків і керування знову передається редактору. p align="justify"> Починаючи з версії 3.0, Photoshop надає функціюAdvanceStateProc (), за допомогою якої можна запитати нову частину зображення і провести всю обробку в одному виклику filterSelectorStart.
В· filterSelectorContinue. Процедура з цим значенням параметра викликається кілька разів, поки хоча б одне з полів inRect, outRect або maskRectуказивает на непорожню частину зображення. Плагін повинен використовувати покажчики inData, outData (і maskData, якщо враховується виділення), щоб обробити частину зображення. Потім оновити поля inRect, outRectі maskRect для запиту наступного шматка зображення.
В· filterSelectorFinish. Тут плагін може призвести які-небудь свої завершальні дії. Цей виклик відбувається тільки при успішному завершенні виклику filterSelectorStart, навіть якщо відбулася помилка на етапеfilterSelectorContinue.
Якщо між дзвінками filterSelectorContinue користувач скасує обробку зображення, то замість filterSelecto...