C

qul_set_maximum_resource_cache_size

警告:此CMake命令自2.4版以来已弃用,建议使用MCU.Config.maxResourceCacheSize代替。

摘要

qul_set_maximum_resource_cache_size(<target>
                                    CACHE_SIZE <cache_size_in_bytes>
                                    [RUNTIME_ALLOCATION_TYPE <runtime_allocation_type>])

描述

此命令设置给定运行时分配类型资源缓存的最大大小。

资源缓存用于缓存策略为"按需"的资源。这包括所有压缩资源,以及将QUL_RESOURCE_CACHE_POLICY属性显式设置为"按需"的资源。当此类资源可见时,它们将被复制到对应于资源运行时分配类型的资源缓存。如果在这一点上资源缓存已满,则将移除在缓存中最长时间未被使用的资源,以腾出空间用于新资源。

请确保最大资源缓存大小大于具有"按需"缓存策略的最大资源大小。理想的最大资源缓存大小应该能够容纳所有可能同时可见的"按需"图像,以防止在每帧更新时必须解压缩或复制图像资源到RAM。

例如,一个400x300的32位颜色深度的图像最多占用480,000字节的RAM。如果可能同时看到两个这样的图像,并且它们的缓存策略是"按需",则合理的最大资源缓存大小应为960,000字节

# Assuming that no custom runtime allocation type has been set for the images
qul_set_maximum_resource_cache_size(<target> CACHE_SIZE 960000)

注意:根据使用的内存分配器,以及由一系列分配和释放造成的堆内存碎片化,实际消耗的物理内存可能略高于指定的最大缓存大小。

选项

CACHE_SIZE选项是必需的,并指定以字节为单位的最大缓存大小。

RUNTIME_ALLOCATION_TYPE选项是整数类型,其值必须大于或等于0且小于256。它对应于为每个单独的资源设置的QUL_RESOURCE_RUNTIME_ALLOCATION_TYPE。该值必须匹配平台所知的内存分配器类型,其中范围[128,255]专用于用户自定义的定制分配器。

如果没有指定 RUNTIME_ALLOCATION_TYPE 选项,则默认将使用 Image 枚举值。

在内部,资源缓存大小会被收集并作为一个 JSON 文件传递给 qulrcc 工具 资源编译器。qulrcc tool 会生成 C++ 文件,其中包含 Qul::Core 库需要的符号,以便知道每种运行时分配类型的缓存大小。

另请参阅资源管理QUL_RESOURCE_CACHE_POLICYQUL_RESOURCE_RUNTIME_ALLOCATION_TYPE

在特定 Qt 许可证下提供。
了解更多。