Je suis un peu surpris que JavaFX consomme mon processeur en affichant un simple texte flottant sur un écran.Le rendu du texte Javafx 2d s'accélère
Ma question existe-t-il des options pour activer l'accélération matérielle pour les nœuds comme le texte? Pour utiliser GPU et non CPU lors du rendu des primitives 2D?
Voici l'exemple simple qui consomme jusqu'à 40% de cpu sur mon core 2 duo 2.53Mhz + Nvidia 9600M GT. OS: Mac OS X. JavaFX 1.2; JRE 1.5
Editer: Je mets de l'animation dans l'exemple pour simuler le défilement du texte. Vous pouvez essayer d'atteindre le même CPU en faisant défiler ListBox ou une image sans arrêt.
package text2dacceleration;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.transform.Transform;
import javafx.scene.text.Text;
import javafx.animation.*;
def longLine = for (i in [1..45]) "{i}";
def textNodes = for (i in [1..64]) Text{content: "{longLine} line number {i}"};
var yoffset = 0.0;
Timeline {
repeatCount: Timeline.INDEFINITE
autoReverse: true
keyFrames: [
KeyFrame { time: 0s values: [yoffset => 0.0]}
KeyFrame { time: 1s values: [yoffset => 10.0]}]
}.play();
Stage {
title: "Text nodes"
width: 800
height: 600
resizable: false
scene: Scene {
content: [
VBox {
content: textNodes
transforms: bind Transform.translate(0, yoffset);
}]}}
La fréquence d'images est bonne. Tout est lisse comme prévu. Mais pourquoi consommer CPU et pas GPU? –
(exécution WinXP, Java FX 1.2, Java 1.6) Si la souris se déplace sur la fenêtre, le framerate, même de 10, semble faire peu de différence. Haute cpu. Si la souris est hors de la fenêtre, cpu fonctionne moins, et plus bas avec des framerate plus bas. Cela suggère à moi que le problème n'est pas vraiment le rendu des cadres. – Refactor
Placer tout le texte dans un seul nœud Texte et l'affichage qui a toujours le même problème de CPU lorsque la souris se déplace sur la fenêtre (bien que l'image, sur mon système est nettement plus lisse, même au framerate de 10.). blocksmouse: true ne fait aucune différence. – Refactor