Ich versuche ein Los von Knoten (Millionen) in JavaFX innerhalb eines Containerknotens zu rendern und ich stoße auf Leistungsprobleme, wenn ich das übersetze oder skaliere Container-Knoten. Ich habe entdeckt, dass ich containerNode.setCache(true)
tun kann, was zu einer glatten Übersetzung und Skalierung führt, aber dann sieht der Knoten natürlich sehr körnig aus, wenn Sie heranzoomen.Erneutes Rendering eines zwischengespeicherten Knotens in JavaFX mit höherer Auflösung
Ich versuche einen Weg zu finden, die körnige Cache-Version beim Skalieren zu verwenden/zoomen, und dann möchte ich den Knoten programmatisch erneut mit einer höheren Auflösung rendern, sobald ich gezoomt bin. Oder zumindest den sichtbaren Teil neu rendern.
Ich kann nicht herausfinden, wie Sie den Cache anweisen, den Knoten erneut zu rendern. Ich habe einige interessante Verhalten bei meinen Versuchen feststellen:
- Wenn Sie zunächst einmal den Knoten mit Cache angezeigt und Sie sind sehr herausgezoomt, um die (der Knoten erscheint klein) und aktivieren dann den Cache, in sehr führt ein- eine sehr körnige Erscheinung.
- Wenn Sie jedoch (erneut) zuerst den Knoten mit dem ausgeschalteten Cache anzeigen, aber sehr vergrößert sind, führt das Aktivieren des Caches zu einer wesentlich höheren Auflösung, die zwischengespeichert wird. Es sieht so aus, als ob es die Cache-Auflösung basierend auf dem Zoom zu dem Zeitpunkt auswählt, zu dem der Cache aktiviert wurde.
- ABER (zu meiner Enttäuschung), wenn Sie einen Cache beim Herauszoomen (wie in Schritt 1) erstellt und dann herangezoomt haben, führt das Deaktivieren und anschließende Reaktivieren des Caches nicht zu einem neuen Cache-Rendering.
Gibt es eine Lösung?
Das funktionierte, obwohl es etwas Experimentieren erforderte. Der direkte Wechsel von SPEED -> QUALITY -> SPEED in den Code hat nicht funktioniert. Ich musste die Benutzeroberfläche machen lassen und später zu SPEED wechseln. –
Es freut mich zu hören, dass es für Sie funktioniert, obwohl ich es in umgekehrter Reihenfolge verwenden wollte. Der Standardmodus wäre QUALITÄT, und wenn Sie einen Zoom starten, wechseln Sie zu GESCHWINDIGKEIT und nachdem Sie mit dem Zoom fertig sind, wechseln Sie zurück zu QUALITÄT. Die Reihenfolge der Operation wäre also QUALITÄT -> GESCHWINDIGKEIT -> QUALITÄT. – mipa