C
Qt Quick Ultralite image_cache 示例
演示如何使用 Qt Quick Ultralite 中的图像缓存。
概述
该示例显示了两组图像。当前组每隔 reloadInSeconds
秒更改一次,缓存大小设置为每次 fit 4 张图像,这是每个图像集中图像的数量。因此,缓存可以保存当前活动图像集中的所有图像。当图像请求在显示上渲染时——当通过滑动访问新图像时,将图像加载到缓存中。当缓存满时,它将删除最旧的图像以释放空间,以用于当前请求的图像。
目标平台
注意:由于 Infineon TRAVEO™ T2G 和 RH850 D1M1A 缺乏触摸输入,该示例将自动在每隔 reloadInSeconds
秒之间切换图像。
项目结构
在 QmlProject 文件中启用了 image cache。
CMake 项目文件
要启用图像缓存
- 使用 MCU.Config.maxResourceCacheSize 设置资源缓存大小到所需大小。
- 设置 QmlProject 属性 ImageFiles.MCU.resourceCachePolicy。它将所有资源的资产缓存策略设置为
OnDemand
。
使用多个节点上的 ImageFiles.MCU.resourceCachePolicy 变量设置单个资源的资产缓存策略。这在仅某些图像应具有缓存资格时很有用。
... MCU.Config { maxResourceCacheSize: 2211840 } ... ImageFiles { files: [ "images/basse-terre-guadeloupe.jpg", "images/grand-canyon-arizona.jpg", "images/grand-canyon-national-park.jpg", "images/Jokulsarlon-glacier-lagoon-iceland.jpg", "images/reine-lofoten-islands.jpg", "images/sequoia-national-park.jpg", "images/sogn-og-fjordane.jpg", "images/yosemite-national-park.jpg", ] MCU.resourceCachePolicy: "OnDemand" } ...
如果目标操作系统是 FreeRTOS,则设置堆大小
... qul_override_freertos_heap_size(image_cache "8 * 1024 * 1024 + ${cache_size_in_bytes}") ...
现在,每当图像将要绘制时,渲染器都会首先检查缓存。
文件
- image_cache/CMakeLists.txt
- image_cache/ImageModel.cpp
- image_cache/ImageModel.h
- image_cache/image_cache.qml
- image_cache/mcu_image_cache.qmlproject
- image_cache/mcu_image_cache_RH850.qmlproject
- image_cache/mcu_image_cache_ek-ra6m3g.qmlproject
- image_cache/mcu_image_cache_rgb565.qmlproject
图像
- image_cache/images/Jokulsarlon-glacier-lagoon-iceland.jpg
- 图像缓存/images/basse-terre-guadeloupe.jpg
- 图像缓存/images/grand-canyon-arizona.jpg
- 图像缓存/images/grand-canyon-national-park.jpg
- 图像缓存/images/reine-lofoten-islands.jpg
- 图像缓存/images/sequoia-national-park.jpg
- 图像缓存/images/sogn-og-fjordane.jpg
- 图像缓存/images/yosemite-national-park.jpg
另请参阅 ImageFiles.MCU.resourceCachePolicy 和 图像缓存.
在某些 Qt 许可下可用。
了解更多信息。