Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / photon_old.doc
Скачиваний:
40
Добавлен:
02.04.2015
Размер:
7.88 Mб
Скачать
      1. Потоки и рабочие процедуры

Заметьте следующее относительно потоков и рабочих процедур:

  • Если Вы прикрепляете рабочую процедуру и у Вас имеется более одного читающего [события – Прим. пер.] потока, имеется очень узкое окно, в котором может быть немедленно вызвана рабочая процедура, вместо того чтобы запускать её после того, как иссякнут события.

  • Смешение потоков и рабочих процедур может привести к маленьким проблемам; если один из других потоков добавляет рабочую процедуру в то время, когда другой поток уже находится в ожидании события, рабочая процедура может быть не вызванной до тех пор, пока Вы не получите событие.

  1. Глава 18. Необработанное рисование и мультипликация

В этой главе описывается:

  • Виджет PtRaw

  • Цвет

  • Атрибуты рисования

  • Дуга, эллипсы, многоугольники и прямоугольники

  • Линии, пиксели и массивы пикселей

  • Текст

  • Побитовые образы (bitmaps)

  • Образы (images)

  • Мультипликация

  • Режим рисования напрямую

  • Внеэкранная видеопамять

  • Поддержка альфа-сопряжения [alpha blending – взвешенное наложение смешиваемых цветов. Прим. пер.]

  • поддержка хроматического ключа [Chroma key – средство объявления некоторого цвета видеоизображения "прозрачным". Прим. пер.]

  • Операции расширенного растра

  • Видеорежимы

  • Градиенты

  • Видеоверлей

    1. ВиджетPtRaw

Подпрограммы Pg библиотеки Photon'а являются функциями рисования самого низкого уровня. Они используются библиотекой виджета для прорисовки виджета. Вы можете использовать в приложении Photon'а функции Pg, но Вашему приложению придётся:

  • обрабатывать все взаимодействия с пользователем;

  • определять, когда прорисовка повреждена (например, когда она открывается, будучи ранее закрытой, или когда пользователь перемещает окно);

  • восстанавливать прорисовку каждый раз, когда она повреждена.

 Вам следует всегда, когда это возможно, использовать виджеты, поскольку они делают всё вышеперечисленное автоматически.

Если Ваше приложение должно выполнять свою собственную прорисовку, Вам следует использовать виджет PtRaw. Он делает следующее:

  • Сообщает приложению, что он получил повреждения

  • Сбрасывает буфер рисования почти всегда, когда это необходимо (Вам придётся самим сбрасывать буфер, например, перед операцией блитирования, т.е. пересылки массива информации большого объёма. Блитирование выполняет смещение прямоугольной области Вашего рисунка на определённое расстояние; Вы можете захотеть, чтобы Ваш рисунок обновился перед тем, как это произойдёт).

Чтобы создать виджет PtRaw в PhAB, щёлкните на его иконке в палитре виджетов:

Разместите его там, где Вы хотите выполнять прорисовку. Вы можете предусмотреть для виджета PtRaw разнообразые функции; они вызываются в порядке, данном ниже, когда виджет реализуется, и затем вызываются по необходимости:

Pt_ARG_RAW_INIT_F

Функция инициализации, которая вызывается перед тем, как вычисляется пространство, занимаемое виджетом.

Pt_ARG_RAW_EXTENT_F

Будучи предусмотренной, вычисляет пространство виджета, когда тот перемещается или изменяется вразмерах.

Pt_ARG_RAW_CALC_OPAQUE_F

Вычисляет список затенённых "черепиц" виджета.

Pt_ARG_RAW_CONNECT_F

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

Pt_ARG_RAW_DRAW_F

Выполняет прорисовку

Большую часть времени Вам будет нужно задавать только функцию рисования (см. ниже). Вы можете использовать редактор функций Photon'а (описанный в главе "Редактирование ресурсов и ответных реакций в PhAB'е") для редактирования этих ресурсов – но прежде Вы должны присвовать рисуемому виджету уникальное имя экземпляра. Вы можете также установить эти ресурсы из своего программного кода приложения; более подробно см. раздел "Ресурсы функций" в главе "Управление ресурсами в программном коде приложения". Информацию по ресурсам PtRaw'а см. в "Справочнике виджетов Photon'а".

Соседние файлы в папке Литература