rContinue відразу відбудеться виклик filterSelectorFinish. Плагін повинен вміти обробляти таку ситуацію. br/>
4.Работа з пам'яттю
Спочатку Photoshop з'явився на Macintosh, а там було погано реалізовано використання файлу підкачки операційною системою. Тому в Photoshop використовується власна система розподілу пам'яті (навіть у Windows). p align="justify"> Під час виклику filterSelectorPrepare плагін повинен укласти угоди з використання пам'яті з Photoshop.передает максимальну кількість байт, яке він може звільнити для плагіна в полях maxData або maxSpace запису pluginParamBlock. Якщо зображення маленьке, або може оброблятися по шматках, то плагін може збільшити швидкість роботи, зменшивши ці значення. В іншому випадку редактору доведеться перемістити всі зображення на диск і використовувати файл для переміщення даних в пам'яті. Але зазвичай сам плагін швидше працює з Неболей кількістю більш великих обсягів пам'яті. Потрібно поекспериментувати і знайти компромісне рішення. p align="justify"> Перший метод - поділити maxData/maxSpace на 2 (половину пам'яті редактору і половину собі). Другий метод - встановити значення в 0 і при необхідності використовувати надані Photoshop пакети буфера (buffer suite) або дескриптора (handle suite) для розподілу пам'яті. З точки зору редактора другий варіант є більш ефективним, але вимагає написання додаткового коду. Якщо плагін працює надто повільно, то потрібно провести кілька тестів з різними підходами. p align="justify"> Якщо плагін збирається використовувати великі блоки пам'яті, то потрібно в полі bufferSpace встановити сумарна кількість необхідної пам'яті.
5.Ресурси плагіна
У перших версіях Photoshop використовувалися PiMI ресурси. Вони простіше, ніж зараз використовуються PiPL ресурси. В ідеалі, для сумісності з першими версіями редактори, треба писати і PiMI, але я не буду їх розглядати. p align="justify"> За допомогою ресурсів Photoshop дізнається, що бібліотека є плагіном. У ресурсах вказується тип, назва, підтримувані режими і інші необхідні редактору властивості плагіна. p align="justify"> Фірма Adobe придумала власний формат ресурсів. Ці ресурси конвертуються у звичайні ресурси за допомогою утиліти Cnvtpipl.exe, що поставляється з SDK, а потім включаються в проект. Я не буду розбирати цей формат. Ми будемо писати звичайні ресурси в звичайному текстовому редакторі. Також їх можна створювати в редакторі ресурсів. p align="justify"> Недоліком такого підходу є необхідність самостійно прописувати розміри якостей. Але зате можна обійтися без додаткових утиліт. p> Імена властивостей і деякі константи визначені у файлі PIResource.h <# "justify"> 5.1 Основні властивості
Таблиця 1 Властивості, які є загальними для всіх типів плагінів.
ІмяТіпКлючОпісаніеPIKind PropertyOSType0x6b696e64L ('kind') Тип ...