Layering JavaFX onto an external rendering context

2021-02-15 Thread Mark Raynsford
Hello! I'd like to use JavaFX for the UI of an application that will involve rendering using an existing Vulkan-based renderer. For the sake of example, assume that the application looks and behaves a bit like the Unreal Engine 4 editing tools. Here's an example of those: https://www.youtube.co

Re: Layering JavaFX onto an external rendering context

2021-02-19 Thread John Hendrikx
I don't know if this is useful or not, but I've pretty succesfully combined a JavaFX UI with the MPV video player (also VLC), without resorting to any kind of frame copying. It basically involves finding the HWND id (or Window id on Linux) of a JavaFX Stage, then telling MPV / VLC to render dir

Re: Layering JavaFX onto an external rendering context

2021-03-06 Thread Mark Raynsford
On 2021-02-15T13:40:43 + Mark Raynsford wrote: > Hello! > > I'd like to use JavaFX for the UI of an application that will > involve rendering using an existing Vulkan-based renderer. For the sake > of example, assume that the application looks and behaves a bit like > the Unreal Engine 4 edi

Re: Layering JavaFX onto an external rendering context

2021-03-07 Thread Neil C Smith
Hi, A few comments from my perspective here, mainly coming from frustration at the number of times I've had to tell clients or users that JavaFX isn't a viable option for them .. On Sat, 6 Mar 2021 at 12:22, Mark Raynsford wrote: > there is a > combinatorial explosion of possibilities with

Re: Layering JavaFX onto an external rendering context

2021-03-07 Thread Michael Paus
Why don't you just give it a try? I'd start with the native PixelBuffer option first because it is relatively simple and the performance is sufficient for most use cases. There is, of course, an overhead caused by the GPU -> CPU -> GPU memory transfer but it is not so bad if done right. I've b

Re: Layering JavaFX onto an external rendering context

2021-03-07 Thread Tom Schindl
Hi, If I got you right you now changed your idea to render JavaFX into an PixelBuffer and integrate that into a scene renderer with Vulkan, ... . This exactly how the integration into SWT and Swing is done, the internal API for that is found in "com.sun.javafx.embed". Before we implemented D

Re: Layering JavaFX onto an external rendering context

2021-03-07 Thread Mark Raynsford
On 2021-03-07T12:22:11 + Neil C Smith wrote: > Hi, > > A few comments from my perspective here, mainly coming from > frustration at the number of times I've had to tell clients or users > that JavaFX isn't a viable option for them .. > > On Sat, 6 Mar 2021 at 12:22, Mark Raynsford wrote: >

Re: Layering JavaFX onto an external rendering context

2021-03-08 Thread Neil C Smith
On Sun, 7 Mar 2021 at 15:36, Mark Raynsford wrote: > The basic primitive > that would be required is "transfer this image to this other image". > You'd need to expose that operation in way that would work for every > possible pair of rendering APIs ... The complexity of handling that would > nee

Re: Layering JavaFX onto an external rendering context

2021-02-15 Thread Hervé Girod
I did that with OpenGL some time ago. I should setup a GitHub project to show how it can be done. Sent from my iPhone > On Feb 15, 2021, at 14:41, Mark Raynsford wrote: > > Hello! > > I'd like to use JavaFX for the UI of an application that will > involve rendering using an existing Vulkan-b

Re: Layering JavaFX onto an external rendering context

2021-02-16 Thread Neil C Smith
Hi Mark, On Tue, 16 Feb 2021 at 15:27, Mark Raynsford wrote: > But it seems to me like those projects shouldn't _have_ to exist. It > seems like a bit of a design flaw that there isn't an efficient code > path to do something (relatively) simple like this. > > Has anyone given any thought as to w

Re: Layering JavaFX onto an external rendering context

2021-02-16 Thread Mark Raynsford
On 2021-02-15T14:54:43 +0100 Hervé Girod wrote: > I did that with OpenGL some time ago. I should setup a GitHub project to show > how it can be done. > I appreciate the response, but there is a difference between "I did it" and "there's actually a good, officially supported way to do this". I'v

Re: Layering JavaFX onto an external rendering context

2021-02-16 Thread Michael Strauß
The main problem with this idea is that there is no universally available hardware rendering backend in JavaFX. There's OpenGL on Linux and macOS, Direct3D on Windows, and potentially a software renderer on all platforms. One approach might be to create a new ANGLE rendering backend, which would a

Re: Layering JavaFX onto an external rendering context

2021-02-16 Thread Mark Raynsford
On 2021-02-16T16:09:04 + Neil C Smith wrote: > > I agree with you, and have certain similar requirements, like being > able to allow GStreamer and JavaFX to share GPU contexts. In fact, > was bugging Johan about this in the chat around his FOSDEM talk, and > promised to follow up here, so mig

Re: Layering JavaFX onto an external rendering context

2021-02-17 Thread Neil C Smith
On Tue, 16 Feb 2021 at 20:41, Mark Raynsford wrote: > I've used > GStreamer outside of Java quite a bit for aggregating feeds from > network cameras... Yes, just working with a client doing exactly that - and the UI won't be using JavaFX there, in fact they're still using Swing/AWT because it's

Re: Layering JavaFX onto an external rendering context

2021-02-17 Thread Neil C Smith
On Tue, 16 Feb 2021 at 23:33, Michael Strauß wrote: > The main problem with this idea is that there is no universally available > hardware rendering backend in JavaFX. There's OpenGL on Linux and macOS, > Direct3D on Windows, and potentially a software renderer on all platforms. How is that a pro

Re: Layering JavaFX onto an external rendering context

2021-02-17 Thread Herve Girod
There is also something that we should be aware of. The external graphic context is a fragile thing. In our case, for example with OpenGL, it was very easy to create problems with the Java app which try to paint things on the context. Which can lead to crashes or artefacts. Le mer. 17 févr. 2021 à

Re: Layering JavaFX onto an external rendering context

2021-02-17 Thread Eric Bresie
There was a thread around obsolete rendering code (1) around removal of Prisim rendering and related api layers architectural elements later on. Is this relevant here? Eric (1) https://mail.openjdk.java.net/pipermail/openjfx-dev/2021-January/028581.html On Wed, Feb 17, 2021 at 8:11 AM Herve Gir