Integrating javafx ui into custom (jogl based) OpenGL application
swpalmer at gmail.com
Sat Mar 2 10:56:41 PST 2013
On 2013-03-02, at 8:09 AM, Herve Girod <herve.girod at gmail.com> wrote:
>> I'm developing a OpenGL based 3d application and instead of writing my
>> own ui code I'd like to reuse javafx for the ui part.
>> Since getting an OpenGL context from JavaFX seems to be very complicated
>> (as discussed here) i thought about a different approach.
>> What if javafx could reuse my rendering context.
>> I'm thinking of implementing a custom prism backend which renders within
>> my application context, after my content was rendered.
>> As far as i know is the prism api is an internal implementation detail,
>> but it may be possible to ignore changes to it by bundling a specific
>> jre version with the application.
>> I have not yet digged into prism code but I like to hear your thoughts
>> about this approach.
>> greetings Christoph
> We also would like to integrate a JavaFX UI in an external OpenGL context.
> We already do it with regular Swing by leveraging JOGL and another
> OpenGL-AWT geom bridge library in our Open source project (
> http://sourceforge.net/projects/j661/), but it's not so simple to to it
> well. It would be greate to be able to make JavaFX to work "easily" with
> other applications which also use OpenGL.
> Our use case is integrating Java graphics on top of an external context
> created by apps such as a flight simulator terrain rendering for example.
> We could also do it in Java of course, but often you have to use an
> existing OpenGL renderer for that.
> However for information it's not necessary to change the JDK to do this in
> Swing, even if it is not simple as I said.
I wonder if something as simple as using two windows would work. Your custom OpenGL window beneath a mostly transparent but otherwise ordinary JavaFX Stage. The issue of course is keeping the two windows paired up. That's one reason that I've been pushing for access to native window handles (via JNI-only so there are no security concerns). It would be awesome if we had the ability to make a window via native code that used our JavaFX window as it's parent.
It *seems* like a simple thing to do, but it opens up a world of possibilities.
More information about the openjfx-dev