Визуализация с помощью графического процессора в приложениях AIR для мобильных устройств

Включить аппаратное графическое ускорение в приложении AIR можно путем добавления значения <renderMode>gpu</renderMode> в дескриптор приложения. Изменение режима визуализации при выполнении невозможно. На настольных системах параметр renderMode игнорируется. В настоящее время ускорение графического процессора не поддерживается.

Ограничения режима визуализации с помощью графического процессора

При использовании режима визуализации с помощью графического процессора в AIR 2.5 действуют следующие ограничения.

  • Если графический процессор не может выполнить визуализацию объекта, он не отображается совсем. Альтернативы визуализации с помощью графического процессора нет.

  • Не поддерживаются следующие режимы наложения: слой, альфа, стереть, перекрытие, жесткий свет, замена светлым и замена темным.

  • Фильтры не поддерживаются.

  • PixelBender не поддерживается.

  • Многие графические процессоры устанавливают для текстуры максимальный размер 1024 x 1024. В ActionScript это значение определяет максимальный конечный размер при визуализации отображаемого объекта после всех преобразований.

  • Компания Adobe не рекомендует использовать режим визуализации с помощью графического процессора в приложениях AIR для воспроизведения видео.

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

  • Режим визуализации с помощью графического процессора отключен для некоторых устройств, на которых этот режим работает ненадежно. Актуальные сведения можно найти в заметках о выпуске AIR для разработчика.

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

Следующие методы позволят повысить скорость при визуализации с помощью графического процессора.

  • Ограничьте число видимых объектов в рабочей области. На визуализацию каждого элемента требуется время, как и на его совмещение с окружающими объектами. Если больше не требуется отображать объект, установите для его свойств visible значение false. Не следует просто перемещать его за границы рабочей области, скрывать за другими объектами и устанавливать для свойства alpha значение 0. Если отображаемый объект больше не требуется, удалите его из рабочей области с помощью команды removeChild().

  • Используйте объекты повторно вместо того, чтобы создавать и уничтожать их.

  • Используйте растровые изображения, размеры которых приближены, но меньше 2n х 2m бит. Размеры не должны быть точно равны степени числа 2, но должны быть приближены к этому значению, не превышая его. Например, изображение с размером 31 х 15 пикселов визуализируется быстрее, чем с размером 33 х 17 пикселов. (31 и 15 чуть меньше степеней числа 2: 32 и 16.)

  • По возможности, задайте параметру repeat значение false при вызове метода Graphic.beginBitmapFill().

  • Не применяйте перерисовку. Используйте для заднего плана цвет фона. Не накладывайте друг на друга большие фигуры. На отрисовку каждого пиксела требуются системные ресурсы.

  • Старайтесь не использовать такие фигуры, как тонкие длинные зубцы, пересекающиеся сами с собой края или много мелких деталей по краям. На визуализацию таких фигур требуется больше времени, чем на визуализацию экранных объектов с ровными краями.

  • Ограничьте размер экранных объектов.

  • Включите параметры cacheAsBitMap и cacheAsBitmapMatrix, чтобы отображать объекты, графика которых редко обновляется.

  • Не используйте API-интерфейс рисования ActionScript (класс Graphics) для создания графики. По возможности вместо этого создавайте такие объекты статически во время разработки.

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

Режим визуализации с помощью графического процессора в приложении AIR 2.0.3 для мобильных устройств

Визуализация с помощью графического процессора в приложениях AIR для мобильных устройств, созданных с помощью Packager for iPhone, имеет больше ограничений. Графический процессор эффективно работает только для растровых изображений, фигур с непрерывной заливкой и экранных изображений, для которых задано свойство cacheAsBitmap. Если для объекта задано и свойство cacheAsBitmap, и свойство cacheAsBitmapMatrix, с помощью графического процессора можно эффективно выполнить визуализацию даже для вращаемых и масштабируемых объектов. Графический процессор используется одновременно для других отображаемых объектов, что обычно приводит к снижению производительности визуализации.