На главную
Назад | Содержание | Вперед

Непосредственные функции (direct callbacks)

Адреса этих функций указываются непосредственно в записи pluginParamBlock.

Функции:

AdvanceStateProc()

function AdvanceStateProc : OSErr; cdecl;

AdvanceStateProc позволяет более эффективно взаимодействовать с редактором при обновлении различных типов данных во время обработки изображения.

Если изображение обрабатывается по кускам, вместо многократных вызовов плагина лучше использовать эту функцию. Без ее использования, при запросе каждого куска данных, плагин возвращает управление редактору и вызывается снова, получая управление через главную функцию плагина. Функция AdvanceStateProc позволяет произвести всю основную обработку изображения в одном вызове плагина (не считая диалога для пользователя).

Плагин возвращает noErr при успешном завершении операции и ненулевое значение при возникновении какой-нибудь ошибки. В последнем случае не надо пытаться вызвать функцию повторно, нужно вернуть управление редактору и передать полученный код ошибки через главную процедуру плагина.

Если пользователь отменит операцию, то AdvanceStateProc вернет значение userCanceledErr (-128) и указатели inData и outData будут равны nil независимо от значений inRect и outRect.

Функция AdvanceStateProc впервые появилась в Adobe Photoshop версии 3.0.

ColorServicesProc()

function ColorServicesProc(var info : ColorServicesInfo) : OSErr; cdecl;

Функция может использоваться в следующих случаях:

  1. выбор цвета, используя цветоподборщик,

  2. перевод цвета из одного цветового пространства в другое,

  3. получить цвет точки,

  4. получить текущий цвет изображения или фона.

DisplayPixelsProc()

function DisplayPixelsProc(var source     : PSPixelMap;
                           var srcRect    : VRect;
                           dstRow         : integer;
                           dstCol         : integer;
                           platformContext: pointer) : OSErr; cdecl;

Функция используется для вывода изображения в различных режимах. Обычно применяется для создания собственного окна предпросмотра.

Она автоматически переводит картинку в нужную цветовую модель и сглаживает при выводе на экран. При успешном преобразовании функция возвращает значение noErr. Обычно ошибки возникают при попытке использовать неподдерживаемые цветовые модели.

Параметр source описывает выводимую картинку.

Параметр srcRect задает прямоугольную часть изображения, которая будет выводиться на экран.

Параметры dstRow и dstCol указывают верхний левый угол прямоугольника, в который будет выводиться изображение. DisplayPixelsProc не масштабирует точки, поэтому задание одного угла определяет весь прямоугольник для вывода картинки.

TestAbortProc()

function TestAbortProc : Boolean; cdecl;

Во время продолжительных действий плагин должен несколько раз в секунду вызывать эту функцию, чтобы позволить пользователю отменить операцию. Если функция возвращает значение true, то нужно прекратить обработку изображения. Побочным эффектом функции является смена указателя мыши на периодически переворачивающиеся песочные часы.

UpdateProgressProc()

procedure UpdateProgressProc(done, total : integer); cdecl;

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

Во время непродолжительных действий Photoshop автоматически блокирует вывод индикатора процесса.

Назад | Содержание | Вперед


© Ярослав Музыкантов muzykantov@mail.ru
При использовании материалов обязательна ссылка на сайт
students.pm.vogu35.ru/pages/pm03/mya