OpenJFX отображает только части окна при запуске в Ubuntu - PullRequest
0 голосов
/ 12 декабря 2018

РЕДАКТИРОВАТЬ:

После некоторого тестирования с опциями выясняется, что при вызове: stage.initStyle(StageStyle.UNDECORATED) на сцене это решает эту проблему, окно не отображается, но затем окно делаетне имеют контроля.Это означает, что это может быть связано с диспетчером окон и элементами управления.

ORIGINAL:

Я запускаю этап JavaFX со сценой, загруженной из файла FXML, используяFXML Loader.

Это довольно странная проблема, поскольку не отображаются никакие исключения или другие формы ошибок.Теперь визуализируется только часть окна, показанная здесь: Here the wrongly rendered window

Здесь приведена правильная форма в качестве ссылки (исключая две записи в ListView слева): enter image description here

Так как я не получаю никаких ошибок, я могу только добавить информацию, которая может помочь решить проблему.

-Dprism.verbose=true Вывод:

[12.12.2018 19:50:48 | MSG] Using Double Precision Marlin Rasterizer
[12.12.2018 19:50:48 | MSG] Using dirty region optimizations
[12.12.2018 19:50:48 | MSG] Not using texture mask for primitives
Not f[12.12.2018 19:50:48 | MSG] orcing power of 2 sizes for textures
[12.12.2018 19:50:48 | MSG] Using hardware CLAMP_TO_ZERO mode
[12.12.2018 19:50:48 | MSG] Opting in for HiDPI pixel scaling
[12.12.2018 19:50:48 | MSG] Prism pipeline name = com.sun.prism.es2.ES2Pipeline
[12.12.2018 19:50:48 | MSG] Loading ES2 native library ... prism_es2
[12.12.2018 19:50:48 | MSG]     succeeded.
[12.12.2018 19:50:48 | MSG] GLFactory using com.sun.prism.es2.X11GLFactory
[12.12.2018 19:50:49 | MSG] (X) Got class = class com.sun.prism.es2.ES2Pipeline
[12.12.2018 19:50:49 | MSG] Initialized prism pipeline: com.sun.prism.es2.ES2Pipeline
[12.12.2018 19:50:49 | MSG] Maximum supported texture size: 32768
[12.12.2018 19:50:49 | MSG] Maximum texture size clamped to 4096
[12.12.2018 19:50:49 | MSG] Non power of two texture support = true
[12.12.2018 19:50:49 | MSG] Maximum number of vertex attributes = 16
[12.12.2018 19:50:49 | MSG] Maximum number of uniform vertex components = 4096
[12.12.2018 19:50:49 | MSG] Maximum number of uniform fragment components = 4096
[12.12.2018 19:50:49 | MSG] Maximum number of varying components = 124
[12.12.2018 19:50:49 | MSG] Maximum number of texture units usable in a vertex shader = 32
[12.12.2018 19:50:49 | MSG] Maximum number of texture units usable in a fragment shader = 32
[12.12.2018 19:50:49 | MSG] Graphics Vendor: NVIDIA Corporation
[12.12.2018 19:50:49 | MSG]        Renderer: GeForce GTX 1060 6GB/PCIe/SSE2
[12.12.2018 19:50:49 | MSG]         Version: 4.6.0 NVIDIA 390.77
[12.12.2018 19:50:49 | ERROR]  vsync: true vpipe: true
[12.12.2018 19:50:49 | MSG] file:/home/liz3/IdeaProjects/SkIDE/out/production/resources/images/icon.png
[12.12.2018 19:50:50 | MSG] ES2ResourceFactory: Prism - createStockShader: Solid_TextureRGB.frag
[12.12.2018 19:50:50 | MSG] ES2ResourceFactory: Prism - createStockShader: Solid_TextureFirstPassLCD.frag
[12.12.2018 19:50:50 | MSG] ES2ResourceFactory: Prism - 
createStockShader: Solid_TextureSecondPassLCD.frag
[12.12.2018 19:50:50 | MSG] new alphas with length = 4096
[12.12.2018 19:50:50 | MSG] ES2ResourceFactory: Prism - createStockShader: Texture_Color.frag
[12.12.2018 19:50:50 | MSG] ES2ResourceFactory: Prism - createStockShader: Texture_LinearGradient_PAD.frag
[12.12.2018 19:50:50 | MSG] PPSRenderer: scenario.effect - createShader: Blend_MULTIPLY
[12.12.2018 19:50:51 | MSG] ES2ResourceFactory: Prism - createStockShader: FillPgram_Color.frag
[12.12.2018 19:50:51 | MSG] new alphas with length = 344064
[12.12.2018 19:51:04 | MSG] QuantumRenderer: shutdown

JDK:

java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

Протестировано на версиях OpenJFX:

  1. 12-ea + 4
  2. 12-ea + 2
  3. 11.0.1

ОС: elementary OS 5.0 Juno (Ubuntu 18.04 LTS) Графический драйвер: nvidia-390

Процессор: I7 8700K Графический процессор: GTX 1060 6GB

Я протестировал его на экране 4k, хотя я изменил разрешение на 1920x1800 и получил тот же результат.

Я могу добавить в качестве примечания, что после тестирования с несколькими файлами FXML в качестве источника или просто Alert, Размер рендеринга швов должен быть всегда одинаковым .

Есть идеи о способах решения этой проблемы?

С уважением, Liz3

1 Ответ

0 голосов
/ 13 декабря 2018

После многих испытаний выясняется, что это связано с версией Gtk.Используемые версии OpenJFX, где доступ к Gtk 3 и в результате создал эту ошибку, которая может быть устранена путем вызова: stage.initStyle(StageStyle.UNDECORATED).

Чтобы на самом деле исправить ошибку, необходимо добавить параметр JVM: -Djdk.gtk.version=2, которыйполностью решил проблему.

Я сделаю дополнительные исследования источника и добавлю детали здесь.

С уважением, Liz3

...