Я немного удивлен, что JavaFX действительно потребляет мой процессор, показывая простой плавающий текст на экране.
Мой вопрос Есть ли возможность настроить аппаратное ускорение для таких узлов, как Text? Использовать GPU , а не CPU при рендеринге 2D-примитивов?
Вот простой пример, потребляющий до 40% процессора на моем 2,53 МГц Core 2 Duo + Nvidia 9600M GT. ОС: Mac Os X. JavaFX 1.2; JRE 1,5
Редактировать: Я добавил анимацию в пример, чтобы просто имитировать прокрутку текста. Вы можете попытаться добиться того же потребления ЦП, прокручивая ListBox или некоторое изображение без остановки.
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);
}]}}