Renderização pela GPU em aplicativos AIR móveis

Ative a aceleração gráfica por hardware em um aplicativo AIR incluindo <renderMode>gpu</renderMode> no descritor do aplicativo. É possível alterar os modos de renderização no tempo de execução. Em computadores desktop, a configuração renderMode é ignorada; no momento, não há suporte para a aceleração gráfica pela GPU.

Limitações do modo de renderização pela GPU

As seguintes limitações existem ao usar o modo de renderização pela GPU no AIR 2.5:

  • Se a GPU não puder renderizar um objeto, ele não será exibido. Não há uma alternativa em caso de falha da renderização pela CPU.

  • Não há suporte para os seguintes modos de mistura: camada, alfa, apagar, sobrepor, realçar, clarear e escurecer.

  • Não existe suporte para filtros.

  • Não há suporte para PixelBender.

  • Muitas unidades de GPU têm tamanho de textura máximo de 1024x1024. No ActionScript, isso se converte no tamanho máximo final renderizado de um objeto de exibição após todas as transformações.

  • A Adobe não recomenda usar o modo de renderização pela GPU em aplicativos AIR que reproduzam vídeo.

  • No modo de renderização pela GPU, os campos de texto nem sempre são movidos para um local visível quando o teclado virtual é aberto. Para garantir que seu campo de texto fique visível enquanto o usuário insere texto, execute um dos procedimentos a seguir. Posicione o campo de texto na metade superior da tela ou mova-o para lá quando ele receber o foco.

  • O modo de renderização pela GPU é desativado para alguns dispositivos nos quais o modo não funciona de maneira confiável. Consulte as notas da versão do AIR para o desenvolvedor para obter as informações mais recentes.

Melhores práticas do modo de renderização pela GPU

As orientações a seguir podem acelerar a renderização pela GPU:

  • Limite o número de itens visíveis no palco. Cada item demora algum tempo para ser renderizado e composto com outros itens ao seu redor. Quando não quiser mais exibir um objeto de exibição, defina sua propriedade visible como false . Não basta movê-lo para fora do palco, ocultá-lo atrás de outro objeto ou definir sua propriedade alpha como 0. Se o objeto de exibição não for mais necessário, remova-o do palco com removeChild() .

  • Reutilize objetos em vez de criá-los e destruí-los.

  • Crie bitmaps com tamanhos próximos, porém, menores que 2 n por 2 m bits. As dimensões não precisam ser potências exatas de 2, mas devem ser próximas a uma potência de 2, sem serem maiores. Por exemplo, uma imagem com 31 por 15 pixels é renderizada mais rápido do que uma imagem de 33 por 17 pixels. (31 e 15 são justamente potências menores de 2: 32 e 16).

  • Se possível, defina o parâmetro repeat como false ao chamar o método Graphic.beginBitmapFill() .

  • Não exagere. Use a cor do fundo como fundo. Não estenda em camadas formas grandes umas em cima das outras. Há um custo para cada pixel a ser desenhado.

  • Evite formas com pontas longas e finas, bordas com autointerseção ou muitos detalhes ao longo das bordas. Essas formas demoram mais para serem renderizadas do que os objetos de exibição com bordas suaves.

  • Limite o tamanho dos objetos de exibição.

  • Ative cacheAsBitMap e cacheAsBitmapMatrix para objetos de exibição cujos gráficos não sejam atualizados com frequência.

  • Evite usar o API de desenho do ActionScript (classe Graphics) para criar gráficos. Em vez disso, quando possível, crie esses objetos estaticamente no tempo de autoria.

  • Dimensione ativos de bitmap com o tamanho final antes de importá-los.

Modo de renderização pela GPU no AIR 2.0.3 móvel

A renderização pela GPU é more restritiva em aplicativos AIR móveis criados com o Packager para iPhone. A GPU é eficaz apenas para bitmaps, formas sólidas e objetos de exibição que têm a propriedade cacheAsBitmap definida. Também, para objetos que têm cacheAsBitmap e cacheAsBitmapMatrix definidas, a GPU pode renderizar com eficácia objetos que giram ou são dimensionados. A GPU é usada em tandem para outros objetos de exibição e isso normalmente resulta em um desempenho insatisfatório da renderização.