问题陈述
当项目的祖先的不透明度为 0 时,我可以渲染项目吗?
动机
这个问题的动机是我的另一个问题(我称之为“隐藏纹理源”问题)。请注意,目前我使用的是opacity: 0
而不是visible: false
,但这会导致与链接问题相同的问题。
我隐藏物品的原因是这个。
有一次,我只是直接剔除需要用作纹理源的每个项目。所以隐藏纹理源问题的修复很简单:(简化伪代码)
texSourceItem.opacity = 1;
cppItem.update(); // QQuickFramebufferObject
texSourceItem.opacity = 0; // reset back to 0
但现在我也在剔除整个Row
s 这样的项目。而且由于不透明度是继承的,如果我想更新 cppItem,我必须为整个 parent 做 unhide-hide dance Row
。然后,两个纹理源项目可能会发生具有互锁时序的取消隐藏过程,因此为了避免错误,我必须保留一个自定义引用计数器,该计数器知道当前正在更新多少 cppItems。这对我来说太复杂了。因此,回答我的问题将是有益的。