📄️ Image Formats
TouchGFX supports multiple image formats. The image formats are supported only with the framebuffer formats where they make sense. The tables below the supported image- and framebuffer formats.
📄️ 커스텀 트리거 및 액션
TouchGFX Designer에서는 커스텀 트리거 및 액션을 사용해 자신만의 상호작용 구성요소를 정의할 수 있습니다. 애플리케이션에서 각 스크린마다 액션 그룹(C++에서 간단한 void 메소드)을 추가한 후 TouchGFX Designer는 물론이고 코드에서도 호출하여 사용할 수 있습니다. 또한 커스텀 컨테이너에서도 애플리케이션이 반응하는 트리거 그룹(C++에서 콜백과 동일)을 구성할 수 있습니다. 이 섹션에서는 이러한 기능을 살펴보면서 보다 매끄럽고 동적인 TouchGFX 애플리케이션을 제작하는 방법에 대해 알아보겠습니다.
📄️ Screen Transitions
TouchGFX supports various transitions between Screens. This allows the application programmer to use different visual effects when changing between Screens in his application.
📄️ 위치 및 크기
'@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부터 이미지 압축 기능을 지원합니다. The support from version 4.22 to 4.23 inclusive is limited to compression of L8 images. From version 4.24 compression of RGB565, RGB888, and ARGB8888 image formats is supported.
📄️ Animation Storage
The Animation Storage is an optional extra frame buffer supported by TouchGFX that can be used to create animations during screen transitions.