На главную
Назад |
Содержание |
Вперед
Общая структура плагина
Плагин (plug-in) представляет собой обычную dll библиотеку со специальным расширением.
Для фильтров это расширение .8bf. Специальные параметры, описываемые в ресурсах
библиотеки, позволяют редактору распознать в библиотеке плагин и определить его
свойства (тип, поддерживаемые режимы и т.п.). Все общение редактора с плагином
происходит посредством вызовов экспортируемой плагином процедуры:
procedure ENTRYPOINT(selector : smallint;
var pluginParamBlock;
var data : integer;
var result: smallint); cdecl;
Обратное общение плагина с Photoshop происходит с помощью вызова функций
обратного вызова (callback-функций), предоставляемых редактором.
Параметры процедуры ENTRYPOINT:
selector указывает на производимую плагином операцию. Процедура с
нулевым значением этого параметра вызывается для вывода диалога About плагина.
Смысл остальных значений зависит от типа плагина и для фильтров будут
рассмотрены ниже.
pluginParamBlock используется для обмена информацией между
плагином и редактором. У каждого типа плагина своя структура этого
параметра. Для фильтров параметр указывает на запись типа FilterRecord,
рассмотренную ниже.
Переменная data сохраняется между вызовами плагина. Обычно ее
используют для хранения дескриптора (handle) блока памяти, который плагин
использует по своему усмотрению. При первом вызове плагина значение
параметра равно 0.
При каждом вызове плагин обязательно должен присвоить переменной
result значение, указывающее статус завершения операции. Нулевое
значение Photoshop интерпретирует как знак успешного завершения. Ненулевое
значение показывает, что во время обработки изображения произошла какая-то
ошибка, или пользователь отменил операцию. При положительном значении
редактор считает, что сам плагин уже сообщил пользователю об ошибке.
В противном случае Photoshop выводит стандартное сообщение.
Для совместимости с Photoshop процедуру нужно объявить с соглашением
вызова cdecl.
Рекомендации по диалогу About
Окно About может быть оформлено как угодно, но для совместимости с
интерфейсом Adobe Photoshop нужно следовать следующим соглашениям:
Диалог About должен располагаться в центре экрана.
На окне не должно быть кнопки Ok, но оно должно реагировать на нажатие
мыши в любом месте окна.
Диалог должен реагировать на нажатие клавиш escape и enter.
Назад |
Содержание |
Вперед
© Ярослав Музыкантов muzykantov@mail.ru
При использовании материалов обязательна ссылка на сайт
students.pm.vogu35.ru/pages/pm03/mya
     
|