На главную Пакет функций портов каналов (Cannel Ports suite)Порты позволяют получить доступ к внутренним данным редактора. Есть два вида портов: порты чтения и порты записи. С помощью этих функций можно написать предпросмотр обработки. Функции: function ReadPixelsProc (port : ChannelReadPort; var scaling : PSScaling; var writeRect : VRect; var destination : PixelMemoryDesc; var wroteRect : VRect) : OSErr; cdecl; Описание типов параметров: VRect = record top : integer; left : integer; bottom: integer; right : integer; end; PSScaling PSScaling = record sourceRect : VRect; destinationRect: VRect; end; PSScaling задает прямоугольник исходных данных и соответствующий ему результирующий прямоугольник. При равных прямоугольниках данные просто копируются. Для растяжения или сжатия можно задать прямоугольники разных размеров. Сначала результирующий прямоугольник проектируется на исходные данные, затем в память копируется пересечение с каналом. PixelMemoryDesc PixelMemoryDesc = record data : pointer; rowBits : integer; colBits : integer; bitOffset: integer; depth : integer; end; PixelMemoryDesc описывает память. Поля имеют следующее значение:
wroteRect Указывает фактически записанную область. Если плагин запрашивает прямоугольник, не полностью входящий в канал, то редактор присвоит в этот параметр размер фиктически записанного меньшего прямоугольника. function WriteBasePixelsProc (port : ChannelWritePort; var writeRect : VRect; var source : PixelMemoryDesc) : OSErr; cdecl; В параметрах передается порт записи, прямоугольник для записи и описание исходных данных. Функция не производит масштабирование. Все пиксели за границами порта не запишутся. function ReadPortForWritePortProc (var readPort : ChannelReadPort; writePort : ChannelWritePort) : OSErr; cdecl; Возвращает порт чтения, соответствующий порту записи. Назад | Содержание | Вперед
© Ярослав Музыкантов muzykantov@mail.ru |