모바일 AIR 응용 프로그램의 GPU 렌더링

AIR 응용 프로그램 설명자에 <renderMode>gpu</renderMode> 를 포함하여 응용 프로그램에 하드웨어 그래픽 가속을 사용하십시오. 런타임에서는 렌더링 모드를 변경할 수 없습니다. 데스크톱 컴퓨터에서 renderMode 설정은 무시되고 GPU 그래픽 가속은 현재 지원되지 않습니다.

GPU 렌더링 모드 제한 사항

AIR 2.5에서 GPU 렌더링 모드를 사용하는 경우 다음과 같은 제한이 있습니다.

  • GPU가 객체를 렌더링할 수 없는 경우 아무 것도 표시되지 않으며, CPU 렌더링으로 대체되지도 않습니다.

  • 혼합 모드 중 layer, alpha, erase, overlay, hardlight, lighten 및 darken이 지원되지 않습니다.

  • 필터가 지원되지 않습니다.

  • PixelBender가 지원되지 않습니다.

  • 대부분 GPU 장치의 최대 텍스처 크기는 1024x1024입니다. ActionScript에서 이는 모든 변형을 거친 후 표시 객체의 최종 렌더링 최대 크기로 변환됩니다.

  • 비디오를 재생하는 AIR 응용 프로그램에서 GPU 렌더링 모드를 사용하지 않는 것이 좋습니다.

  • GPU 렌더링 모드에서 가상 키보드가 열릴 때 텍스트 필드가 항상 보이는 위치로 이동하는 것은 아닙니다. 사용자가 텍스트를 입력하는 동안 텍스트 필드가 보이도록 하려면 다음 중 하나를 수행합니다. 텍스트 필드에 포커스가 놓이면 화면의 위쪽 절반에 텍스트 필드를 배치하거나, 화면 위쪽 절반으로 텍스트 필드를 이동하십시오.

  • GPU 렌더링 모드는 일부 장치에서 안정적으로 작동하지 않으므로 그러한 장치에서 비활성화됩니다. 최신 정보는 AIR 개발자 릴리스 정보를 참조하십시오.

최상의 GPU 렌더링 모드 사용 방법

다음 지침에 따르면 GPU 렌더링 속도를 높일 수 있습니다.

  • 스테이지에 표시되는 항목 수를 줄입니다. 항목마다 렌더링하고 주위의 다른 항목과 합성하는 데 시간이 걸립니다. 표시 객체를 더 이상 표시하지 않으려면 visible 속성을 false 로 설정합니다. 단순히 스테이지 밖으로 이동하거나 다른 객체 뒤에 숨기거나 alpha 속성을 0으로 설정하는 방법을 쓰지 마십시오. 표시 객체가 더 이상 필요하지 않으면 removeChild() 를 사용하여 스테이지에서 제거하십시오.

  • 객체를 만들어 삭제하기보다 객체를 재사용하십시오.

  • 비트맵 크기를 2 n x 2 m 비트보다 작지만 이 크기에 가깝게 만듭니다. 크기가 반드시 정확한 2의 거듭제곱일 필요는 없지만, 2의 거듭제곱을 초과하지 않으면서 2의 거듭제곱에 가까워야 합니다. 예를 들어 31 x 15 픽셀 이미지는 33 x 17 픽셀 이미지보다 빠르게 렌더링됩니다. 31과 15는 2: 32 및 16보다 조금 작습니다.

  • Graphic.beginBitmapFill() 메서드를 호출할 때 가능하면 repeat 매개 변수를 false로 설정합니다.

  • 오버드로우하지 않습니다. 배경색을 배경으로 사용합니다. 큰 모양을 서로 겹치지 않습니다. 그려야 하는 모든 픽셀마다 리소스가 소모됩니다.

  • 길고 가늘게 튀어나온 부분이 있거나, 가장자리가 서로 교차하거나, 가장자리를 따라 세부 요소가 많은 모양을 사용하지 않습니다. 이러한 모양은 가장자리가 매끄러운 표시 객체보다 렌더링하는 데 오래 걸립니다.

  • 표시 객체의 크기를 제한합니다.

  • 그래픽이 자주 업데이트되지 않는 객체를 표시하려면 cacheAsBitMap 및 cacheAsBitmapMatrix를 사용합니다.

  • ActionScript 드로잉 API(Graphics 클래스)를 사용하여 그래픽을 제작하지 않는 것이 좋습니다. 가급적 제작 시 정적으로 해당 객체를 만듭니다.

  • 비트맵 에셋을 가져오기 전에 최종 크기로 조정합니다.

모바일 AIR 2.0.3의 GPU 렌더링 모드

GPU 렌더링은 Packager for iPhone로 만든 모바일 AIR 응용 프로그램에서 좀 더 제한적입니다. GPU는 cacheAsBitmap 속성이 설정된 비트맵, 단색 모양 및 표시 객체에만 효과적입니다. 또한 cacheAsBitmap cacheAsBitmapMatrix 가 설정된 객체의 경우 GPU로 회전 또는 크기 조절되는 객체를 효과적으로 렌더링할 수 있습니다. GPU를 다른 표시 객체와 함께 사용하면 렌더링 성능이 일반적으로 낮아집니다.