📄️ 이미지 형식
TouchGFX는 여러 이미지 형식을 지원합니다. 이미지 형식은 프레임 버퍼 형식이 적합한 경우에만 지원됩니다. 아래 표에 지원되는 이미지 형식과 프레임 버퍼 형식이 나와 있습니다.
📄️ 커스텀 트리거 및 액션
TouchGFX Designer에서는 커스텀 트리거 및 액션을 사용해 자신만의 상호작용 구성요소를 정의할 수 있습니다. 애플리케이션에서 각 스크린마다 액션 그룹(C++에서 간단한 void 메소드)을 추가한 후 TouchGFX Designer는 물론이고 코드에서도 호출하여 사용할 수 있습니다. 또한 커스텀 컨테이너에서도 애플리케이션이 반응하는 트리거 그룹(C++에서 콜백과 동일)을 구성할 수 있습니다. 이 섹션에서는 이러한 기능을 살펴보면서 보다 매끄럽고 동적인 TouchGFX 애플리케이션을 제작하는 방법에 대해 알아보겠습니다.
📄️ 화면 전환
TouchGFX는 화면 간 다양한 전환을 지원합니다. 화면 전환을 통해 애플리케이션 프로그래머는 애플리케이션에서 화면을 변경할 때 다양한 시각적 효과를 사용할 수 있습니다.
📄️ 위치 및 크기
'@site/components/CodeHeader'에서 CodeHeader 가져오기, '@site/components/Figure'에서 Figure 가져오기, '@docusaurus/Link'에서 Link 가져오기
📄️ 커스텀 컨테이너
애플리케이션을 생성할 때 TouchGFX의 표준 위젯 세트에 없는 위젯이 필요할 때가 있습니다.
📄️ 비트맵 캐싱
이 섹션에서는 TouchGFX의 비트맵 캐시에 대해 알아보겠습니다. 비트맵 캐시는 애플리케이션에서 비트맵을 저장(또는 캐싱)할 때 사용하는 전용 RAM 버퍼입니다. 비트맵이 캐싱되면 TouchGFX가 비트맵을 드로잉할 때 자동으로 RAM 캐시를 픽셀 소스로 사용합니다.
📄️ 커스텀 위젯
애플리케이션을 생성할 때 TouchGFX 배포판에 포함되지 않은 위젯이 필요할 수도 있습니다. TouchGFX에는 사용자가 자신만의 그래픽 요소를 생성할 수 있는 몇 가지 방법이 있습니다. 가장 손쉬운 방법은 커스텀 컨테이너 방식을 사용하여 기존 위젯을 조합하여 사용자 고유의 위젯을 생성하는 것입니다. 하지만 이 섹션에서는 고급 접근 방식으로서, 프레임버퍼를 완전히 제어할 수 있는 위젯을 생성하여 원하는 것을 정밀하게 그리는 방법을 알아보겠습니다.
📄️ 캔버스 위젯
캔버스 위젯(Canvas Widget)과 캔버스 위젯 렌더러(Canvas Widget Renderer)는 TouchGFX에 추가되는 기능으로서 높은 성능을 유지하면서 비교적 적은 메모리를 사용하여 기하학적 형상의 부드럽고 안티앨리어싱(anti-aliasing)된 그리기를 제공합니다. 하지만 기하학적 형상 렌더링은 매우 복잡한 작업일 수 있어서 주의를 기울이지 않으면 마이크로컨트롤러 리소스가 쉽게 고갈될 수 있습니다.
📄️ 동적 비트맵
이 섹션에서는 동적 비트맵을 사용하는 방법을 알아보겠습니다. 먼저 애플리케이션으로 컴파일되는 것은 표준 비트맵이기 때문에 컴파일할 때는 표준 비트맵을 사용해야 합니다. 비트맵은 PNG 파일 등에서 변환되어 크기 및 형식 정보와 함께 내부 형식으로 저장됩니다.
📄️ 바이너리 폰트
이 섹션에서는 TouchGFX에서 바이너리 폰트를 사용하는 방법을 설명합니다. 첫 번째 섹션에서는 바이너리 폰트 사용 시 이해하는 데 도움이 될 수 있는 TouchGFX의 폰트 및 텍스트 시스템에 대해 자세히 알아봅니다. 두 번째 섹션에서는 바이너리 폰트의 사용법에 대해 알아봅니다.
📄️ 폰트 캐싱
이 섹션에서는 TouchGFX에서 폰트 캐시를 사용해 이진 폰트를 처리하는 방법을 알아보겠습니다.
📄️ 바이너리 번역
이 섹션에서는 TouchGFX에서 바이너리 번역을 사용하는 방법을 알아보겠습니다. 일반적으로 텍스트 번역은 애플리케이션으로 컴파일됩니다. 이 원칙은 효율적이고 쉽게 사용할 수 있습니다. 바이너리 번역에서는 애플리케이션이 텍스트 번역에 관여하지 않도록 합니다. 바이너리 번역은 별도의 바이너리 파일에서 생성되어 플래싱할 수 있도록 프로그래밍되거나, 예를 들어 SD 카드에 저장됩니다. 이러한 방식은 애플리케이션 개발자가 많은 양의 번역을 처리할 때 더욱 높은 유연성을 발휘합니다.
📄️ 백엔드 통신
대부분의 애플리케이션에서 UI는 UI 외에 다른 시스템과 어떤 식으로든 연결되어 데이터를 주고받아야 합니다. 이는 하드웨어 주변 장치(센서 데이터, A/D 변환, 직렬 통신 등)와 연결될 수도 있고, 다른 소프트웨어 모듈과 연결될 수도 있습니다.
📄️ 믹스인
Mixin(이하 믹스인)이란 예를 들어 위치 변경이나 알파 값 변경을 애니메이션 처리할 수 있도록 위젯의 기능을 확장하는 클래스를 말합니다. Move Animator 믹스인과 Fade Animator 믹스인은 TouchGFX Designer 상호작용에서 위치 변경과 알파 값 변경을 애니메이션 처리하는 코드를 생성하는 데 반드시 필요합니다. 이 두 가지 믹스인은 TouchGFX Designer를 통해, 혹은 사용자 코드에서 직접 위젯에 추가할 수 있습니다.
📄️ 텍스트 및 폰트
텍스트와 폰트는 GUI에서 매우 중요한 역할을 하는데, 그 이유는 애플리케이션에서 지원되는 언어마다 안티앨리어싱 처리된 고품질의 텍스트를 표시할 수 있기 때문입니다.
📄️ 언어 및 문자
TouchGFX는 다양한 언어와 문자를 지원하고 문자의 방향과 문맥의 형성과 같은 텍스트 레이아웃 메커니즘을 이해함으로써 이를 수행합니다.
📄️ MJPEG Video
TouchGFX는 4.18 버전부터 MJPEG 비디오 사용을 지원합니다. 비디오를 사용하면 생동감 넘치는 사용자 인터페이스를 개발하거나, 짧은 지침 또는 사용자 가이드를 표시할 수 있습니다.
📄️ SVG
TouchGFX는 버전 4.21부터 SVG 이미지 사용을 지원합니다. SVG 이미지는 기존의 비트맵 기반 그래픽을 벡터 그래픽과 하나로 결합해 사용자 인터페이스를 생성하는 데 사용할 수 있습니다.
📄️ 벡터 글꼴
TouchGFX는 버전 4.23부터 벡터 형식의 글꼴 사용을 지원합니다. 한 글꼴은 모든 크기에서 글꼴 데이터를 공유하므로 글꼴을 벡터 형식으로 저장하면 글꼴 데이터의 크기를 줄일 수 있습니다. 이는 한 글꼴의 모든 크기에 해당 크기 글리프의 전용 비트맵이 있는 비트맵 글꼴과 대비됩니다.
📄️ 이미지 압축
TouchGFX는 버전 4.22부터 이미지 압축 기능을 지원합니다. 4.22 버전부터 4.23 버전까지는 L8 이미지 압축으로만 지원됩니다. 4.24 버전부터는 RGB565, RGB888, ARGB8888 이미지 형식의 압축이 지원됩니다.
📄️ 애니메이션 저장소
Animation Storage는 TouchGFX에서 지원하는 추가적인 프레임 버퍼(선택 사항)로, 화면 전환 중에 애니메이션을 생성하는 데 사용할 수 있습니다.