我的运行JavaFX应用程序的环境:
甲骨文jdk1.8.0_144, 由Gluon提供的JavaFX Embedded SDK 8.60.9(armv6 hard float), Raspbian Stretch(最新更新7.10.2017 - 使用sudo apt-get update / sudo apt-get dist-upgrade), Raspberry Pi Zero W 1.1
从NetBeans 8.2(远程平台)启动Simple JavaFX Hello World应用程序,此处在NetBeans 8.2的“输出”窗口中完成输出:
Connecting to 192.168.1.14:22
cmd : cd '/home/pi/NetBeansProjects//JavaFXHelloWorldRPiApplication'; 'sudo' '/opt/jdk1.8.0_144/bin/java' -Dfile.encoding=UTF-8 -Djava.ext.dirs=/home/pi/armv6hf-sdk/rt/lib/ext -Dprism.verbose=true -Dprism.debug=true -Djavafx.verbose=true -Djavafx.debug=true -jar /home/pi/NetBeansProjects//JavaFXHelloWorldRPiApplication/dist/JavaFXHelloWorldRPiApplication.jar
Oct 07, 2017 4:18:13 PM com.sun.javafx.jmx.MXExtension initializeIfAvailable
INFO: Failed to initialize management extension
java.lang.ClassNotFoundException: com.oracle.javafx.jmx.MXExtensionImpl
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.sun.javafx.jmx.MXExtension.initializeIfAvailable(MXExtension.java:40)
at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:669)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:337)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Prism pipeline init order:
es2
sw
Using native-based Pisces rasterizer
Using dirty region optimizations
Using system sized mask for primitives
Not
f
orcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.es2.ES2Pipeline
Loading ES2 native library ... prism_es2_monocle
Loaded /home/pi/armv6hf-sdk/rt/lib/ext/../arm/libprism_es2_monocle.so from relative path
succeeded.
GLFactory using com.sun.prism.es2.MonocleGLFactory
Loaded /home/pi/armv6hf-sdk/rt/lib/ext/../arm/libglass_monocle.so from relative path
java.lang.UnsatisfiedLinkError: Error loading libGLESv2.so
at com.sun.glass.ui.monocle.AcceleratedScreen.initPlatformLibraries(AcceleratedScreen.java:158)
at com.sun.glass.ui.monocle.AcceleratedScreen.<init>(AcceleratedScreen.java:68)
at com.sun.glass.ui.monocle.DispmanAcceleratedScreen.<init>(DispmanAcceleratedScreen.java:34)
at com.sun.glass.ui.monocle.DispmanPlatform.getAcceleratedScreen(DispmanPlatform.java:43)
at com.sun.prism.es2.MonocleGLFactory.initialize(MonocleGLFactory.java:107)
at com.sun.prism.es2.ES2Pipeline.<clinit>(ES2Pipeline.java:82)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:187)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
at java.lang.Thread.run(Thread.java:748)
(X) Got class = class com.sun.prism.es2.ES2Pipeline
GraphicsPipeline.createPipeline: error initializing pipeline com.sun.prism.es2.ES2Pipeline
*** Fallback to Prism SW pipeline
Prism pipeline name = com.sun.prism.sw.SWPipeline
Loaded /home/pi/armv6hf-sdk/rt/lib/ext/../arm/libprism_sw.so from relative path
(X) Got class = class com.sun.prism.sw.SWPipeline
Initialized prism pipeline: com.sun.prism.sw.SWPipeline
JavaFX: using com.sun.javafx.tk.quantum.QuantumToolkit
Cannot open display
vsync: true vpipe: false
Launching application directly
Loaded /home/pi/armv6hf-sdk/rt/lib/ext/../arm/libjavafx_font.so from relative path
Loaded /home/pi/armv6hf-sdk/rt/lib/ext/../arm/libjavafx_font_freetype.so from relative path
Loaded /home/pi/armv6hf-sdk/rt/lib/ext/../arm/libjavafx_font_pango.so from relative path
Cannot create resource
PCS Texture allocating buffer: com.sun.prism.sw.SWRTTexture@2f2548, 1920x1080
+ PR.resetClip
+ concat scale com.sun.prism.sw.SWGraphics@1b521bb; sx: 1.0; sy: 1.0
+ PR.resetClip
+ PR.clear: Color[r=1.0, g=1.0, b=1.0, a=1.0]
PR.setColor: Color[r=1.0, g=1.0, b=1.0, a=1.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ concatTransform com.sun.prism.sw.SWGraphics@1b521bb; tr: Identity[]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ SWG.fillRect, x:
0.000000
, y:
0.000000
, w:
1920.000000
, h:
1080.000000
GR: com.sun.prism.sw.SWGraphics@1b521bb
target: com.sun.prism.sw.SWRTTexture@2f2548 t.w: 1920, t.h: 1080, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Tx: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Composite rule: SRC_OVER
PR.setColor: Color[r=0.9569631, g=0.9569631, b=0.9569631, a=1.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ concatTransform com.sun.prism.sw.SWGraphics@1b521bb; tr: Translate2D[10.0, 10.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 10.0], [0.0, 1.0, 10.0]]
+ SWG.fillRoundRect
PR.setColor: Color[r=0.6784314, g=0.84705883, b=0.9019608, a=1.0]
GR: com.sun.prism.sw.SWGraphics@1b521bb
target: com.sun.prism.sw.SWRTTexture@2f2548 t.w: 1920, t.h: 1080, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Shape: com.sun.javafx.geom.RoundRectangle2D[x=0.0,y=0.0,w=1900.0,h=1060.0]
Stroke: null
Tx: Affine2D[[1.0, 0.0, 10.0], [0.0, 1.0, 10.0]]
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Composite rule: SRC_OVER
Loading Prism common native library ...
Loaded /home/pi/armv6hf-sdk/rt/lib/ext/../arm/libprism_common.so from relative path
succeeded.
MASK TEXTURE, Pixel format: BYTE_ALPHA, buffer: java.nio.HeapByteBuffer[pos=0 lim=2076672 cap=2076672]
dstx:0 dsty:0
srcx:0 srcy:0 srcw:1900 srch:1060 srcscan: 1900
PCS Texture allocating buffer: com.sun.prism.sw.SWMaskTexture@1697604, 1900x1060
+ restoreTransform com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ concatTransform com.sun.prism.sw.SWGraphics@1b521bb; tr: Translate2D[883.0, 525.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
PCS Texture allocating buffer: com.sun.prism.sw.SWRTTexture@fceee5, 2048x1024
+ PR.resetClip
+ concat translate com.sun.prism.sw.SWGraphics@1baa41; tx: 3.0; ty: 3.0
+ SWG.fillRoundRect
PR.setColor: Color[r=0.011764706, g=0.61960787, b=0.827451, a=1.0]
GR: com.sun.prism.sw.SWGraphics@1baa41
target: com.sun.prism.sw.SWRTTexture@fceee5 t.w: 2048, t.h: 1024, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=2048,height=1024]
Shape: com.sun.javafx.geom.RoundRectangle2D[x=-0.2,y=-0.2,w=10.4,h=31.400002]
Stroke: null
Tx: Affine2D[[1.0, 0.0, 3.0], [0.0, 1.0, 3.0]]
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=2048,height=1024]
Composite rule: SRC_OVER
MASK TEXTURE, Pixel format: BYTE_ALPHA, buffer: java.nio.HeapByteBuffer[pos=0 lim=2097152 cap=2097152]
dstx:0 dsty:0
srcx:0 srcy:0 srcw:12 srch:33 srcscan: 12
+ SWG.fillRoundRect
PR.setLinearGradient: 0.0, 0.0, 0.0, 1.0
GR: com.sun.prism.sw.SWGraphics@1baa41
target: com.sun.prism.sw.SWRTTexture@fceee5 t.w: 2048, t.h: 1024, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=2048,height=1024]
Shape: com.sun.javafx.geom.RoundRectangle2D[x=1.0,y=1.0,w=8.0,h=29.0]
Stroke: null
Tx: Affine2D[[1.0, 0.0, 3.0], [0.0, 1.0, 3.0]]
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=2048,height=1024]
Composite rule: SRC_OVER
MASK TEXTURE, Pixel format: BYTE_ALPHA, buffer: java.nio.HeapByteBuffer[pos=396 lim=2097152 cap=2097152]
dstx:0 dsty:0
srcx:0 srcy:0 srcw:8 srch:29 srcscan: 8
+ SWG.fillRoundRect
PR.setLinearGradient: 0.0, 0.0, 0.0, 1.0
GR: com.sun.prism.sw.SWGraphics@1baa41
target: com.sun.prism.sw.SWRTTexture@fceee5 t.w: 2048, t.h: 1024, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=2048,height=1024]
Shape: com.sun.javafx.geom.RoundRectangle2D[x=2.0,y=2.0,w=6.0,h=27.0]
Stroke: null
Tx: Affine2D[[1.0, 0.0, 3.0], [0.0, 1.0, 3.0]]
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=2048,height=1024]
Composite rule: SRC_OVER
MASK TEXTURE, Pixel format: BYTE_ALPHA, buffer: java.nio.HeapByteBuffer[pos=232 lim=2097152 cap=2097152]
dstx:0 dsty:0
srcx:0 srcy:0 srcw:6 srch:27 srcscan: 6
+ SWG.fillRoundRect
PR.setColor: Color[r=0.011764706, g=0.61960787, b=0.827451, a=0.13333334]
GR: com.sun.prism.sw.SWGraphics@1baa41
target: com.sun.prism.sw.SWRTTexture@fceee5 t.w: 2048, t.h: 1024, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=2048,height=1024]
Shape: com.sun.javafx.geom.RoundRectangle2D[x=-1.4,y=-1.4,w=12.799999,h=33.800003]
Stroke: null
Tx: Affine2D[[1.0, 0.0, 3.0], [0.0, 1.0, 3.0]]
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=2048,height=1024]
Composite rule: SRC_OVER
MASK TEXTURE, Pixel format: BYTE_ALPHA, buffer: java.nio.HeapByteBuffer[pos=162 lim=2097152 cap=2097152]
dstx:0 dsty:0
srcx:0 srcy:0 srcw:14 srch:35 srcscan: 14
PCS Texture allocating buffer: com.sun.prism.sw.SWMaskTexture@11bd84c, 14x35
+ SWG.fillRoundRect
PR.setLinearGradient: 0.0, 0.0, 0.0, 1.0
GR: com.sun.prism.sw.SWGraphics@1baa41
target: com.sun.prism.sw.SWRTTexture@fceee5 t.w: 2048, t.h: 1024, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=2048,height=1024]
Shape: com.sun.javafx.geom.RoundRectangle2D[x=2.6,y=2.6,w=4.8,h=25.8]
Stroke: null
Tx: Affine2D[[1.0, 0.0, 3.0], [0.0, 1.0, 3.0]]
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=2048,height=1024]
Composite rule: SRC_OVER
MASK TEXTURE, Pixel format: BYTE_ALPHA, buffer: java.nio.HeapByteBuffer[pos=490 lim=2097152 cap=2097152]
dstx:0 dsty:0
srcx:0 srcy:0 srcw:6 srch:27 srcscan: 6
+ drawTexture: com.sun.prism.sw.SWRTTexture@fceee5, imageMode: 1, tex.w: 2048, tex.h: 1024, tex.cw: 2048, tex.ch: 1024
target: com.sun.prism.sw.SWRTTexture@2f2548 t.w: 1920, t.h: 1080, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
GR: com.sun.prism.sw.SWGraphics@1b521bb
dx1:-2.4960938 dy1:-2.4960938 dx2:5.0 dy2:33.496094
sx1:0.50390625 sy1:0.50390625 sx2:8.0 sy2:36.496094
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Composite rule: SRC_OVER
tx: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
piscesTx: Transform6[m00=1.0, m01=0.0, m02=880.0, m10=0.0, m11=1.0, m12=522.0]
srcBBox: RectBounds { minX:-2.4960938, minY:-2.4960938, maxX:5.0, maxY:33.496094} (w:7.4960938, h:35.992188)
dstBBox: RectBounds { minX:880.5039, minY:522.5039, maxX:888.0, maxY:558.4961} (w:7.4960938, h:35.992188)
* drawTexture, DONE
+ drawTexture: com.sun.prism.sw.SWRTTexture@fceee5, imageMode: 1, tex.w: 2048, tex.h: 1024, tex.cw: 2048, tex.ch: 1024
target: com.sun.prism.sw.SWRTTexture@2f2548 t.w: 1920, t.h: 1080, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
GR: com.sun.prism.sw.SWGraphics@1b521bb
dx1:5.0 dy1:-2.4960938 dx2:150.0 dy2:33.496094
sx1:8.0 sy1:0.50390625 sx2:8.0 sy2:36.496094
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Composite rule: SRC_OVER
tx: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
piscesTx: Transform6[m00=32767.0, m01=0.0, m02=-32768.0, m10=0.0, m11=1.0, m12=522.0]
srcBBox: RectBounds { minX:5.0, minY:-2.4960938, maxX:150.0, maxY:33.496094} (w:145.0, h:35.992188)
dstBBox: RectBounds { minX:888.0, minY:522.5039, maxX:1033.0, maxY:558.4961} (w:145.0, h:35.992188)
* drawTexture, DONE
+ drawTexture: com.sun.prism.sw.SWRTTexture@fceee5, imageMode: 1, tex.w: 2048, tex.h: 1024, tex.cw: 2048, tex.ch: 1024
target: com.sun.prism.sw.SWRTTexture@2f2548 t.w: 1920, t.h: 1080, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
GR: com.sun.prism.sw.SWGraphics@1b521bb
dx1:150.0 dy1:-2.4960938 dx2:157.4961 dy2:33.496094
sx1:8.0 sy1:0.50390625 sx2:15.496094 sy2:36.496094
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Composite rule: SRC_OVER
tx: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
piscesTx: Transform6[m00=1.0, m01=0.0, m02=1025.0, m10=0.0, m11=1.0, m12=522.0]
srcBBox: RectBounds { minX:150.0, minY:-2.4960938, maxX:157.4961, maxY:33.496094} (w:7.4960938, h:35.992188)
dstBBox: RectBounds { minX:1033.0, minY:522.5039, maxX:1040.4961, maxY:558.4961} (w:7.4960938, h:35.992188)
* drawTexture, DONE
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
+ concatTransform com.sun.prism.sw.SWGraphics@1b521bb; tr: Translate2D[11.0, 21.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 894.0], [0.0, 1.0, 546.0]]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 894.0], [0.0, 1.0, 546.0]]
+ SWG.drawGlyphList, gl.Count: 17, x: 0.0, y: 0.0, selectStart: -1, selectEnd: -1
PR.setColor: Color[r=0.2, g=0.2, b=0.2, a=1.0]
+ SWG.setNodeBounds: null
+ restoreTransform com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
+ restoreTransform com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ concatTransform com.sun.prism.sw.SWGraphics@1b521bb; tr: Translate2D[903.0, 561.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 903.0], [0.0, 1.0, 561.0]]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 903.0], [0.0, 1.0, 561.0]]
+ concatTransform com.sun.prism.sw.SWGraphics@1b521bb; tr: Translate2D[0.0, 15.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 903.0], [0.0, 1.0, 576.0]]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 903.0], [0.0, 1.0, 576.0]]
+ SWG.drawGlyphList, gl.Count: 17, x: 0.0, y: 0.0, selectStart: -1, selectEnd: -1
PR.setColor: Color[r=0.2, g=0.2, b=0.2, a=1.0]
+ SWG.setNodeBounds: null
+ restoreTransform com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 903.0], [0.0, 1.0, 561.0]]
+ restoreTransform com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ restoreTransform com.sun.prism.sw.SWGraphics@1b521bb; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ PR.resetClip
+ concat scale com.sun.prism.sw.SWGraphics@1d98f9a; sx: 1.0; sy: 1.0
+ PR.resetClip
+ PR.clear: Color[r=1.0, g=1.0, b=1.0, a=1.0]
PR.setColor: Color[r=1.0, g=1.0, b=1.0, a=1.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ concatTransform com.sun.prism.sw.SWGraphics@1d98f9a; tr: Identity[]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ SWG.fillRect, x:
0.000000
, y:
0.000000
, w:
1920.000000
, h:
1080.000000
GR: com.sun.prism.sw.SWGraphics@1d98f9a
target: com.sun.prism.sw.SWRTTexture@2f2548 t.w: 1920, t.h: 1080, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Tx: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Composite rule: SRC_OVER
PR.setColor: Color[r=0.9569631, g=0.9569631, b=0.9569631, a=1.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ concatTransform com.sun.prism.sw.SWGraphics@1d98f9a; tr: Translate2D[10.0, 10.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 10.0], [0.0, 1.0, 10.0]]
+ SWG.fillRoundRect
PR.setColor: Color[r=0.6784314, g=0.84705883, b=0.9019608, a=1.0]
GR: com.sun.prism.sw.SWGraphics@1d98f9a
target: com.sun.prism.sw.SWRTTexture@2f2548 t.w: 1920, t.h: 1080, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Shape: com.sun.javafx.geom.RoundRectangle2D[x=0.0,y=0.0,w=1900.0,h=1060.0]
Stroke: null
Tx: Affine2D[[1.0, 0.0, 10.0], [0.0, 1.0, 10.0]]
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Composite rule: SRC_OVER
MASK TEXTURE, Pixel format: BYTE_ALPHA, buffer: java.nio.HeapByteBuffer[pos=162 lim=2097152 cap=2097152]
dstx:0 dsty:0
srcx:0 srcy:0 srcw:1900 srch:1060 srcscan: 1900
PCS Texture allocating buffer: com.sun.prism.sw.SWMaskTexture@1856384, 1900x1060
+ restoreTransform com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ concatTransform com.sun.prism.sw.SWGraphics@1d98f9a; tr: Translate2D[883.0, 525.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
+ drawTexture: com.sun.prism.sw.SWRTTexture@fceee5, imageMode: 1, tex.w: 2048, tex.h: 1024, tex.cw: 2048, tex.ch: 1024
target: com.sun.prism.sw.SWRTTexture@2f2548 t.w: 1920, t.h: 1080, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
GR: com.sun.prism.sw.SWGraphics@1d98f9a
dx1:-2.4960938 dy1:-2.4960938 dx2:5.0 dy2:33.496094
sx1:0.50390625 sy1:0.50390625 sx2:8.0 sy2:36.496094
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Composite rule: SRC_OVER
tx: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
piscesTx: Transform6[m00=1.0, m01=0.0, m02=880.0, m10=0.0, m11=1.0, m12=522.0]
srcBBox: RectBounds { minX:-2.4960938, minY:-2.4960938, maxX:5.0, maxY:33.496094} (w:7.4960938, h:35.992188)
dstBBox: RectBounds { minX:880.5039, minY:522.5039, maxX:888.0, maxY:558.4961} (w:7.4960938, h:35.992188)
* drawTexture, DONE
+ drawTexture: com.sun.prism.sw.SWRTTexture@fceee5, imageMode: 1, tex.w: 2048, tex.h: 1024, tex.cw: 2048, tex.ch: 1024
target: com.sun.prism.sw.SWRTTexture@2f2548 t.w: 1920, t.h: 1080, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
GR: com.sun.prism.sw.SWGraphics@1d98f9a
dx1:5.0 dy1:-2.4960938 dx2:150.0 dy2:33.496094
sx1:8.0 sy1:0.50390625 sx2:8.0 sy2:36.496094
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Composite rule: SRC_OVER
tx: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
piscesTx: Transform6[m00=32767.0, m01=0.0, m02=-32768.0, m10=0.0, m11=1.0, m12=522.0]
srcBBox: RectBounds { minX:5.0, minY:-2.4960938, maxX:150.0, maxY:33.496094} (w:145.0, h:35.992188)
dstBBox: RectBounds { minX:888.0, minY:522.5039, maxX:1033.0, maxY:558.4961} (w:145.0, h:35.992188)
* drawTexture, DONE
+ drawTexture: com.sun.prism.sw.SWRTTexture@fceee5, imageMode: 1, tex.w: 2048, tex.h: 1024, tex.cw: 2048, tex.ch: 1024
target: com.sun.prism.sw.SWRTTexture@2f2548 t.w: 1920, t.h: 1080, t.dims: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
GR: com.sun.prism.sw.SWGraphics@1d98f9a
dx1:150.0 dy1:-2.4960938 dx2:157.4961 dy2:33.496094
sx1:8.0 sy1:0.50390625 sx2:15.496094 sy2:36.496094
Clip: com.sun.javafx.geom.Rectangle[x=0,y=0,width=1920,height=1080]
Composite rule: SRC_OVER
tx: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
piscesTx: Transform6[m00=1.0, m01=0.0, m02=1025.0, m10=0.0, m11=1.0, m12=522.0]
srcBBox: RectBounds { minX:150.0, minY:-2.4960938, maxX:157.4961, maxY:33.496094} (w:7.4960938, h:35.992188)
dstBBox: RectBounds { minX:1033.0, minY:522.5039, maxX:1040.4961, maxY:558.4961} (w:7.4960938, h:35.992188)
* drawTexture, DONE
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
+ concatTransform com.sun.prism.sw.SWGraphics@1d98f9a; tr: Translate2D[11.0, 21.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 894.0], [0.0, 1.0, 546.0]]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 894.0], [0.0, 1.0, 546.0]]
+ SWG.drawGlyphList, gl.Count: 17, x: 0.0, y: 0.0, selectStart: -1, selectEnd: -1
PR.setColor: Color[r=0.2, g=0.2, b=0.2, a=1.0]
+ SWG.setNodeBounds: null
+ restoreTransform com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 883.0], [0.0, 1.0, 525.0]]
+ restoreTransform com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ concatTransform com.sun.prism.sw.SWGraphics@1d98f9a; tr: Translate2D[903.0, 561.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 903.0], [0.0, 1.0, 561.0]]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 903.0], [0.0, 1.0, 561.0]]
+ concatTransform com.sun.prism.sw.SWGraphics@1d98f9a; tr: Translate2D[0.0, 15.0]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 903.0], [0.0, 1.0, 576.0]]
+ getTransformNoClone com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 903.0], [0.0, 1.0, 576.0]]
+ SWG.drawGlyphList, gl.Count: 17, x: 0.0, y: 0.0, selectStart: -1, selectEnd: -1
PR.setColor: Color[r=0.2, g=0.2, b=0.2, a=1.0]
+ SWG.setNodeBounds: null
+ restoreTransform com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 903.0], [0.0, 1.0, 561.0]]
+ restoreTransform com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
+ restoreTransform com.sun.prism.sw.SWGraphics@1d98f9a; tr: Affine2D[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]]
BUILD STOPPED (total time: 2 minutes 0 seconds)
重要的是:
GLFactory using com.sun.prism.es2.MonocleGLFactory
Loaded /home/pi/armv6hf-sdk/rt/lib/ext/../arm/libglass_monocle.so from relative path
**java.lang.UnsatisfiedLinkError: Error loading libGLESv2.so**
at com.sun.glass.ui.monocle.AcceleratedScreen.initPlatformLibraries(AcceleratedScreen.java:158)
at com.sun.glass.ui.monocle.AcceleratedScreen.<init>(AcceleratedScreen.java:68)
at com.sun.glass.ui.monocle.DispmanAcceleratedScreen.<init>(DispmanAcceleratedScreen.java:34)
at com.sun.glass.ui.monocle.DispmanPlatform.getAcceleratedScreen(DispmanPlatform.java:43)
at com.sun.prism.es2.MonocleGLFactory.initialize(MonocleGLFactory.java:107)
at com.sun.prism.es2.ES2Pipeline.<clinit>(ES2Pipeline.java:82)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:187)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:91)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
at java.lang.Thread.run(Thread.java:748)
(X) Got class = class com.sun.prism.es2.ES2Pipeline
GraphicsPipeline.createPipeline: error initializing pipeline com.sun.prism.es2.ES2Pipeline
*** Fallback to Prism SW pipeline
Prism pipeline name = com.sun.prism.sw.SWPipeline
Loaded /home/pi/armv6hf-sdk/rt/lib/ext/../arm/libprism_sw.so from relative path
(X) Got class = class com.sun.prism.sw.SWPipeline
**Initialized prism pipeline: com.sun.prism.sw.SWPipeline**
JavaFX: using com.sun.javafx.tk.quantum.QuantumToolkit
Cannot open display
libGLESv2.so - https://github.com/RPi-Distro/firmware/issues/3 使用的是Prism SW管道,但没有ES2管道(加速)。 SW管道中断(鼠标光标不可见等)。
显然,JavaFX Embedded SDK需要修复。
答案 0 :(得分:1)
答案 1 :(得分:0)
我今天在32位Ubuntu 16.04.3上为armv6hf平台构建JavaFX,并在https://www.raspberrypi.org/forums/viewtopic.php?f=81&t=195026#p1221481上列出了修改,所有这些都是完美的工作(但只需一个按钮就可以实现简单的HelloWorld应用程序)。