【发布时间】:2016-05-03 16:44:36
【问题描述】:
编辑:原始问题仍包含在下面,但我决定重新命名为在各种情况下对开发人员更有用的表单,其中一些在我下面的回答中描述,作为解决原来的问题提供了更广泛的应用领域。
我有一组用于应用程序的灰度图标,并且要求用户可以更改图标颜色。
因此,显而易见的解决方案是使用来自QtGraphicalEffects 的股票Colorize 元素。
效果本身有一个cached 属性 - 它缓存该特定效果的结果,因此它不会被连续计算。但是,这只适用于效果的特定实例,这意味着如果有多个图标实例,并且每个实例都有着色效果,则此缓存不会在不同实例之间共享。
显然,一个缓存就足够了,考虑到所有图标的大小和颜色都相同,可以重复使用来自 VRAM 的数据,从而节省 VRAM 和 GPU 时间。
所以最大的问题是如何重用单个效果的单个缓存并多次显示它而没有任何开销。
另外,上一个问题是关于我目前使用着色图标所学的课程。但是,我可能缺少另一种方法。
当然,效率是关键,但也需要简单,我的意思是我可以想到几种低级方法来非常有效地做到这一点,但它们都需要更复杂的低级实现,而在 QML 中是不可能的。
【问题讨论】:
标签: image qt caching qml components