W celu włączenia sprzętowego przyspieszania grafiki w aplikacji AIR należy dołączyć do deskryptora tej aplikacji parametr
<renderMode>gpu</renderMode>
. Nie można zmieniać trybów renderowania w czasie wykonywania. Na komputerach stacjonarnych ustawienie
renderMode
jest ignorowane. Obecnie na komputerach nie jest obsługiwane przyspieszanie grafiki przy użyciu GPU.
Ograniczenia trybu renderowania GPU
W przypadku używania trybu renderowania GPU w środowisku AIR 2.5 występują następujące ograniczenia:
-
Jeśli GPU nie może renderować obiektu, obiekt w ogóle nie jest wyświetlany. Nie jest dostępna rezerwowa opcja renderowania przy użyciu procesora.
-
Nie są obsługiwane tryby mieszania: layer, alpha, erase, overlay, hardlight, lighten, darken.
-
Filtry nie są obsługiwane.
-
Nie jest obsługiwana wtyczka PixelBender.
-
W przypadku wielu jednostek GPU maksymalny rozmiar tekstury wynosi 1024 x 1024. W skryptach ActionScript przekłada się to na maksymalny ostateczny rozmiar renderowanego obiektu wyświetlanego po wszystkich przekształceniach.
-
Firma Adobe nie zaleca używania trybu renderowania GPU w aplikacjach AIR odtwarzających materiały wideo.
-
W trybie renderowania GPU pola tekstowe czasami nie są przenoszone w widoczne miejsca po otwarciu klawiatury wirtualnej. Aby mieć pewność, że pole tekstowe będzie widoczne, gdy użytkownik będzie wprowadzać tekst, należy wykonać jedną z następujących czynności: Umieść pole tekstowe w górnej połowie ekranu lub przenieś je do tej połowy, gdy stanie się aktywne.
-
Tryb renderowania GPU jest wyłączony dla niektórych urządzeń, na których nie działa on stabilnie. Najnowsze informacje na ten temat można uzyskać w przeznaczonych dla programistów uwagach na temat wersji środowiska AIR.
Sprawdzone procedury dotyczące trybu renderowania GPU
Stosując się do następujących wskazówek, można uzyskać wydajniejsze renderowanie przy użyciu GPU:
-
Należy ograniczyć liczbę elementów widocznych na stole montażowym. Renderowanie każdego elementu oraz komponowanie go z innymi elementami zajmuje pewien czas. Gdy obiekt wyświetlany ma przestać być widoczny, należy ustawić dla jego właściwości
visible
wartość
false
. Nie należy przenosić obiektu poza stół montażowy, ukrywać go za innym obiektem ani zmieniać jego właściwości
alpha
na 0. Jeśli obiekt wyświetlany nie będzie już w ogóle potrzebny, należy usunąć go ze stołu montażowego przy użyciu metody
removeChild()
.
-
Zamiast tworzyć i niszczyć obiekty, należy używać obiektów wielokrotnie.
-
Należy tworzyć bitmapy o wymiarach zbliżonych do 2
n
na 2
m
bitów, ale mniejszych. Wymiary nie muszą być dokładnie potęgami liczby 2, ale powinny być do nich zbliżone i nie powinny być od nich większe. Na przykład obraz o wymiarach 31 na 15 pikseli jest renderowany szybciej niż obraz o wymiarach 33 na 17 pikseli. (31 i 15 to o jeden mniej niż potęgi liczby 2: 32 i 16).
-
W miarę możliwości należy, wywołując metodę
Graphic.beginBitmapFill()
, ustawić wartość false dla parametru repeat.
-
Nie należy wymuszać zbyt wielu operacji rysowania. Jako tła należy używać koloru tła. Nie należy układać dużych kształtów warstwami — jeden na drugim. Narysowanie każdego piksela wymaga bowiem wykonania pewnych operacji.
-
Należy unikać kształtów o długich, cienkich końcach, krawędzi przecinających się i wielu drobnych detali wzdłuż krawędzi. Renderowanie takich kształtów zajmuje znacznie więcej czasu niż wyświetlanie obiektów o równych krawędziach.
-
Należy ograniczać rozmiary obiektów wyświetlanych.
-
Dla obiektów wyświetlanych z rzadko zmienianą grafiką należy włączyć opcje cacheAsBitMap oraz cacheAsBitmapMatrix.
-
Należy unikać interfejsu API rysowania ActionScript (klasy Graphics) jako mechanizmu tworzenia grafiki. Gdy jest to możliwe, należy zamiast tego tworzyć obiekty statycznie — podczas opracowywania zawartości.
-
Zasoby bitmapowe należy przeskalować do rozmiarów docelowych przed zaimportowaniem.
Tryb renderowania GPU w środowisku AIR 2.0.3 dla urządzeń przenośnych
Renderowanie GPU podlega większym ograniczeniom w przypadku aplikacji AIR dla urządzeń przenośnych, które utworzono za pomocą narzędzia Packager for iPhone. Przydatność GPU jest ograniczona tylko do bitmap, kształtów wypełnionych i obiektów wyświetlanych z ustawioną właściwością
cacheAsBitmap
. Ponadto w przypadku obiektów, dla których ustawiono właściwości
cacheAsBitmap
i
cacheAsBitmapMatrix
, GPU może wydajnie renderować obiekty podlegające obracaniu i zmianom skali. Przetwarzanie pozostałych obiektów wyświetlanych również jest wykonywane przez GPU, co zazwyczaj skutkuje niską wydajnością renderowania.
|
|
|