Thank you for clarifications, Johan! - Would there be any other way of simulating user input apart from Robot?
Not sure I understand the question. In theory, input with mouse etc would be possible but then that would be sort of a duplication/rewrite of the Robot. I'm missing the usecase for this I guess? I was thinking of accepting keystrokes from the actual keyboard, i.e. launch a headless application and type something in the console/terminal. Would that work? Thanks! -andy From: Johan Vos <johan....@gluonhq.com> Date: Wednesday, January 31, 2024 at 01:24 To: Andy Goryachev <andy.goryac...@oracle.com> Cc: openjfx-dev <openjfx-dev@openjdk.org> Subject: [External] : Re: Headless glass platform On Tue, Jan 30, 2024 at 5:14 PM Andy Goryachev <andy.goryac...@oracle.com<mailto:andy.goryac...@oracle.com>> wrote: Excellent development, Johan, thank you! I’ve asked a few questions in the ticket https://bugs.openjdk.org/browse/JDK-8324941 I suppose I should also do it here: - How do you get information on a (virtual) screen? - How would one control how many virtual screens are there? Good questions. This is currently hardcoded in HeadlessApplication.staticScreen_getScreens() but that can be extended to take input via environment variables or System properties. - Would there be any other way of simulating user input apart from Robot? Not sure I understand the question. In theory, input with mouse etc would be possible but then that would be sort of a duplication/rewrite of the Robot. I'm missing the usecase for this I guess? - Is the graphics still accelerated? Yes, the headless platform does not influence the prism settings. If will still use the hw acceleration by default, and fall back to sw-rendering if hw fails, or if prism.order is set to explicitly use sw rendering. - Are there any functional gaps between Headless and headful modes (fonts, rendering, etc.)? Not as far as I know, as that functionality is not in Glass. Most importantly, - Is there a JEP/tutorial for the new mode? Thank you -andy From: openjfx-dev <openjfx-dev-r...@openjdk.org<mailto:openjfx-dev-r...@openjdk.org>> on behalf of Johan Vos <johan....@gluonhq.com<mailto:johan....@gluonhq.com>> Date: Tuesday, January 30, 2024 at 03:47 To: openjfx-dev <openjfx-dev@openjdk.org<mailto:openjfx-dev@openjdk.org>> Subject: Headless glass platform Hi, I created a branch in the jfx-sandbox repository for experimenting with a headless glass platform: https://github.com/openjdk/jfx-sandbox/tree/johanvos-headless<https://urldefense.com/v3/__https:/github.com/openjdk/jfx-sandbox/tree/johanvos-headless__;!!ACWV5N9M2RV99hQ!M4BVAW3kLG4OKKwMqweRpyPjEd7HC2WkN5Qjv4wYRDjFX3Yl5cElOBMWFO-y_IARZgRq7XIHx8l62e_WqcpZqhebzw$> This addresses https://bugs.openjdk.org/browse/JDK-8324941 where I suggest a POC for a Headless platform. There are a number of usecases for this, including: 1. applications that require JavaFX rendering without presenting this to a window (and instead send it to a printer for example) 2. running tests without requiring a window manager. Regarding the second usecase, we already did some basic experiments using a modified version of TestFX where instead of the Monocle Headless subplatform, the POC Headless platform is used. By using a first-class Headless glass platform instead of a Monocle subplatform, it should be easier to use by developers. The monocle code contains very platform/os specific parts, which often don't make sense outside the target platform. This is very valuable, but it is also a very different usecase than a headless platform and it requires a much more complex build procedure. I added an initial, limited HeadlessRobot to do some basic tests. That code is mainly taken from the existing Monocle implementation, but I want to be careful to avoid anything that is not applicable to the headless scenarios. - Johan