Kann ich ein Objekt gerendert machen, wenn ein Vorgänger davon eine Opazität 0 hat?Kann ich ein Objekt rendern lassen, wenn ein Vorgänger davon eine Opazität 0 hat?
Motivation
Die Motivation für diese Frage ist other question of mine (ich nenne es die "hidden-Textur-Quelle" Problem). Beachten Sie, dass ich derzeit opacity: 0
anstatt visible: false
verwende, aber dies verursacht das gleiche Problem wie in der verknüpften Frage.
Der Grund, warum ich Objekte verstecke, ist this.
An einem Punkt habe ich nur jedes Element direkt aussortiert, das als Texturquelle verwendet werden muss. So ist die Lösung für das hidden-Textur-Source-Problem war einfach: (vereinfachte Pseudo-Code)
texSourceItem.opacity = 1;
cppItem.update(); // QQuickFramebufferObject
texSourceItem.opacity = 0; // reset back to 0
Aber jetzt bin ich auch ganze s solcher Gegenstände Culling. Und da die Deckkraft vererbt wird, muss ich, wenn ich das cppItem aktualisieren möchte, den Tanz für den gesamten Elternteil ausblenden. . Dann können zwei texture-source-Elemente die hide-hide-Prozedur mit verzahntem Timing ausführen. Um Fehler zu vermeiden, muss ich einen benutzerdefinierten Referenzzähler behalten, der weiß, wie viele cppItems gerade aktualisiert werden. Dies ist eine zu komplizierte Lösung für meinen Geschmack. Eine Antwort auf meine Frage wäre also von Vorteil.
Re: die ShaderEffectSource Lösung: Haben Sie es versucht? Ich bin ziemlich sicher, dass, wenn 'rect'1'' opacity: 0' hat, die ShaderEffectSource es (oder seine Kinder) nicht als sourceItem verwenden kann. Nun, Sie erhalten keine Fehlermeldung/Absturz, aber nichts wird in der ShaderEffectSource gerendert. Re: das Element zu einem Geschwister machen: Das wird in meinem Fall nicht funktionieren, da ich die Opazitätsvererbung haben möchte, will ich nicht, dass sie während der Aktualisierung des cppItems angewendet wird. –
Ich habe es versucht, funktioniert für mich wie gepostet. – derM