JavaFX 2 + with LWJGL ( OpenGL )

Exo Verse toraktu at gmail.com
Mon Apr 7 16:52:38 UTC 2014


Ahh yes, the lwjglfx solution. Yes it is ingenious what they guy did. I
would have to draw to an image anyhow with other GUI designs, so this is no
different. And with a buffer, you would only need to update it IF the GUI
has changed. If no change, then you just use the buffer in OpenGL to paste
the GUI image back to the screen in a 3D space instead of worrying about
2D. No need to worry about FPS dropping either. His approach needs work,
but the point of his exercise is to prove its doable.

I am at another loss though. I am trying to make my window in JavaFX
CLICKHOLD and DRAGGABLE.. not a control within it.. The actual window
itself. Ideas ? My whole source code in a previous post is there if you
want to see what I have so far. Although you will need to make a 800x600
image to get it to work. ( NOTE :  Any image for testing purposes would
work. )

Torak


On Mon, Apr 7, 2014 at 12:47 PM, Stephen F Northover <
steve.x.northover at oracle.com> wrote:

> The lwjglfx solution.
>
> Steve
>
>
> On 2014-04-07 12:45 PM, Exo Verse wrote:
>
>> @ Steve
>> Which approach are you referring too ? The lwjglfx solution or this
>> transparency background solution ?
>>
>> The lwjglfx I am assuming here since its drawing out to an image and back
>> in again. But if your speaking about my transparency issue I solved, I
>> didn't realize it was sending out to an image and back again. Could you
>> please elaborate as to which solution your speaking about ?
>>
>> Torak
>>
>>
>> On Mon, Apr 7, 2014 at 12:33 PM, Stephen F Northover <
>> steve.x.northover at oracle.com> wrote:
>>
>>  This solution is cool, but it draws to an image, sucks out the bits and
>>> then converts that to an FX image.  This is a good approach because it
>>> uses
>>> API and does not rely on any internals of FX. Hopefully it is fast enough
>>> for you.
>>>
>>> Steve
>>>
>>>
>>> On 2014-04-06 12:41 PM, Exo Verse wrote:
>>>
>>>  Yea the OpenGL comes with your graphics drivers for your video card. So
>>>> your correct that it doesn't ship with JavaFX. What I have been going on
>>>> about is trying to find a way to use JavaFX with LWJGL. In case you are
>>>> unaware, LWJGL just means "Light Weight Java OpenGL" and its a wrapper
>>>> for
>>>> the OpenGL API. It's an alternative to JOGL.
>>>>
>>>> On another note, as I did a search, Thanks to Tom showing me that link I
>>>> examined that code and I found something of interest in the JOGL code
>>>> interface..  well it lead me to a google search, and viola..  LWJGL with
>>>> JavaFX. :)
>>>>
>>>> LINK :
>>>> https://github.com/Spasi/LWJGL-FX
>>>>
>>>> So just wanted to post the link here and say thanks for all of your
>>>> help.
>>>> :)
>>>>
>>>> Cheers,
>>>> Torak
>>>>
>>>>
>>>> On Sun, Apr 6, 2014 at 12:35 PM, Tom Schindl <
>>>> tom.schindl at bestsolution.at
>>>>
>>>>> wrote:
>>>>>
>>>>   JavaFX does not ship OpenGL binaries on windows you have to build it
>>>> your
>>>>
>>>>> own.
>>>>>
>>>>> Please note:
>>>>> a) if there are people who manage to write a prism pipeline on jogl why
>>>>> should you not be able to do the same with lwjgl?
>>>>> b) the talk i mentionned from felipe and steve show how to get access
>>>>> to
>>>>> the native OpenGL context and there from you can use any API you like
>>>>> can't
>>>>> remember which one they used
>>>>>
>>>>> Tom
>>>>>
>>>>> Von meinem iPhone gesendet
>>>>>
>>>>>   Am 06.04.2014 um 18:18 schrieb Exo Verse <toraktu at gmail.com>:
>>>>>
>>>>>> Thanks, but as I mentioned in my original post, I don't like JOGL. It
>>>>>> doesn't work with my setup. I use LWJGL because its only about the
>>>>>> OpenGL
>>>>>> and not other libraries, and its an easy API wrapper to use. There are
>>>>>>
>>>>>>  many
>>>>>
>>>>>  many reason I hate JOGL.. but this thread is not about hating on JOGL,
>>>>>>
>>>>>>  its
>>>>>
>>>>>  about finding a way to use LWJGL with JavaFX2+.
>>>>>>
>>>>>> Also, Win32 API calls can use both DirectX and OpenGL APIs. And it
>>>>>>
>>>>>>  doesn't
>>>>>
>>>>>  matter what Windows OS you're using. I have tested this out from
>>>>>> Windows
>>>>>>
>>>>>>  XP
>>>>>
>>>>>  all the way to Windows 7 - 32/64 Bit with no problem.
>>>>>>
>>>>>> Cheers
>>>>>> Torak
>>>>>>
>>>>>>
>>>>>> On Sun, Apr 6, 2014 at 11:52 AM, Tom Schindl <
>>>>>>
>>>>>>  tom.schindl at bestsolution.at>wrote:
>>>>>
>>>>>  There is a talk from Felipe and Steve at J1 last year how to embed
>>>>>> OpenGL
>>>>>> into FX using *internal* API!
>>>>>>
>>>>>>> Search for it on parleys - this does not help you on Win32 which uses
>>>>>>> directx instead of javafx. BTW there are people doing a JOGL pipeline
>>>>>>> https://bitbucket.org/dejayberlin/joglfxpipeline/src!
>>>>>>>
>>>>>>> Tom
>>>>>>> Von meinem iPhone gesendet
>>>>>>>
>>>>>>>   Am 06.04.2014 um 17:25 schrieb Exo Verse <toraktu at gmail.com>:
>>>>>>>
>>>>>>>> Yea its a shame that using JavaFX as an option along with OpenGL
>>>>>>>> wasn't
>>>>>>>> even thought of to begin with. I don't understand why they limit you
>>>>>>>>
>>>>>>>>  like
>>>>>>>
>>>>>> they do. Them trying to recreate the wheel and make their own version
>>>>>>
>>>>>>> of
>>>>>>>
>>>>>> a
>>>>>>
>>>>>>> 3D interface is just plain stupid if it can't run low level. I can
>>>>>>>> see
>>>>>>>>
>>>>>>>>  2D
>>>>>>>
>>>>>> games and applications with a LOT of usage for JavaFX and its 2D
>>>>>>
>>>>>>> graphics
>>>>>>>
>>>>>> API. But True 3D needs low level other wise its a waste of time.
>>>>>>
>>>>>>> Well, thanks for the replies. Guess I'll have to stick with using
>>>>>>>> other
>>>>>>>> sources for my GUI. It's just that I like JavaFX version of its GUI
>>>>>>>>
>>>>>>>>  because
>>>>>>>
>>>>>>>  it is so simple to use. But not worth it if you can't use it for the
>>>>>>>>
>>>>>>>>  reason
>>>>>>>
>>>>>>>  that we the people need it for. Like in my case, game dev.
>>>>>>>>
>>>>>>>> Cheers.
>>>>>>>> Torak
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sun, Apr 6, 2014 at 10:48 AM, Philipp Dörfler <
>>>>>>>> phdoerfler at gmail.com
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>   It is not possible to combine JavaFX and OpenGL as it is right
>>>>>>>> now.
>>>>>>>> This
>>>>>>>>
>>>>>>> was discussed on this mailing list some time before as a _possible_
>>>>>>
>>>>>>> future
>>>>>>>> addition, but I'd be very surprised if Oracle actually chose to
>>>>>>>> implement
>>>>>>>> this.
>>>>>>>>
>>>>>>>>> Starting with JavaFX 8 there is indeed some kind of "3D support"
>>>>>>>>> but
>>>>>>>>>
>>>>>>>>>  the
>>>>>>>>
>>>>>>> 3D API allows only for the most basic operations. It is still
>>>>>>
>>>>>>> completely
>>>>>>>>
>>>>>>> scene graph based and you have to live with all restrictions that
>>>>>>
>>>>>>> JavaFX
>>>>>>>>
>>>>>>> imposes on you. Not wanting to say that the 3D API is completely
>>>>>>
>>>>>>> useless,
>>>>>>>> but I'm afraid that even WPF is more flexible when it comes to 3D
>>>>>>>> than
>>>>>>>>
>>>>>>>>> JavaFX is. For example: As far as I know you can not even change
>>>>>>>>> the
>>>>>>>>> shading model from GL_SMOOTH to GL_FLAT. You could work around that
>>>>>>>>> by
>>>>>>>>> setting the normals yourself though (Same for WPF). Also render
>>>>>>>>>
>>>>>>>>>  quality
>>>>>>>>
>>>>>>> is
>>>>>>
>>>>>>> bad when you render an instance of Text in 3D and scale it down for
>>>>>>>>
>>>>>>>>> example. At least it was when I tried that last time (few months
>>>>>>>>> ago).
>>>>>>>>>
>>>>>>>>> Again, not to say that one can't work with JavaFX's 3D API, but
>>>>>>>>> it's
>>>>>>>>>
>>>>>>>>>  not
>>>>>>>>
>>>>>>> raw OpenGL either. As far as I know the JavaFX team wants to be able
>>>>>>
>>>>>>> to
>>>>>>>>
>>>>>>> let
>>>>>>
>>>>>>> the user use his own OpenGL context and let JavaFX render on top of
>>>>>>>> that or
>>>>>>>> add the possibility to ask JavaFX for the underlying context and
>>>>>>>> mess
>>>>>>>> with
>>>>>>>> that but this is not even officially planned or included on any
>>>>>>>> roadmap
>>>>>>>>
>>>>>>> (AFAIK) so we can only keep our fingers crossed for that to happen.
>>>>>>
>>>>>>> Like
>>>>>>>>
>>>>>>> you I would absolutely LOVE to use JavaFX as a GUI on top of my
>>>>>> OpenGL
>>>>>>
>>>>>>> games.
>>>>>>>>>
>>>>>>>>> Cheers
>>>>>>>>> Philipp Dörfler
>>>>>>>>>
>>>>>>>>>   Am 06.04.2014 um 16:31 schrieb Exo Verse <toraktu at gmail.com>:
>>>>>>>>>
>>>>>>>>>> Can you please explain what True 3D means in terms of Low Level
>>>>>>>>>> API
>>>>>>>>>> ?
>>>>>>>>>> Because with LWJGL I can use Low Level API to talk directly to my
>>>>>>>>>>
>>>>>>>>>>  Video
>>>>>>>>>
>>>>>>>> Card. As a game dev, I need every ounce of umph from the card I can
>>>>>>
>>>>>>> get,
>>>>>>>>>
>>>>>>>> and using a browser or any other kind of wrapper hasn't proven very
>>>>>>>>
>>>>>>>>> efficient. I love LWJGL because of its simplicity. Anything extra I
>>>>>>>>>>
>>>>>>>>>>  need, I
>>>>>>>>>
>>>>>>>>>  am allowed to make on my own. Example, my own Game Engine.
>>>>>>>>>>
>>>>>>>>>> And that is where I am at. So if your speaking about Nodes, I am
>>>>>>>>>>
>>>>>>>>>>  aware
>>>>>>>>>
>>>>>>>> there is a hierarchy to the JavaFX2 when setting up the GUI, but
>>>>>> that
>>>>>>
>>>>>>> is
>>>>>>>>>
>>>>>>>> the only thing I knew existed. Could you please elaborate what makes
>>>>>>>>
>>>>>>>>> JavaFX8 a True 3D Low Level interface API ? Because from the
>>>>>>>>>>
>>>>>>>>>>  presentation,
>>>>>>>>>
>>>>>>>>>  you have to go through two layers before you have to get to the
>>>>>>>>>>
>>>>>>>>>>  OpenGL
>>>>>>>>>
>>>>>>>> layer. Where as if I can use LWJGL, I can skip a level.
>>>>>>
>>>>>>> If I am misinformed on something, please, explain. Because I am new
>>>>>>>>>>
>>>>>>>>>>  to
>>>>>>>>>
>>>>>>>> JavaFX.
>>>>>>
>>>>>>> Cheers,
>>>>>>>>>> Torak
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>   On Sun, Apr 6, 2014 at 10:24 AM, Hervé Girod <
>>>>>>>>>>
>>>>>>>>>>> herve.girod at gmail.com
>>>>>>>>>>>
>>>>>>>>>>>  wrote:
>>>>>>>>>>
>>>>>>>>>>   With Java 8 (JavaFX 8), you now have true 3D Nodes, with camera,
>>>>>>>>>>
>>>>>>>>>>> texturing, etc... However it would still be very interesting to
>>>>>>>>>>> be
>>>>>>>>>>>
>>>>>>>>>>>  able
>>>>>>>>>>
>>>>>>>>> to
>>>>>>>>
>>>>>>>>> control the low-level rendering of JavaFX, such as using LWJGL for
>>>>>>>>>> example.
>>>>>>>>>> This would allow to render JavaFx content in an external OpenGL
>>>>>>>>>> context
>>>>>>>>>>
>>>>>>>>> for
>>>>>>>>
>>>>>>>>> example.
>>>>>>>>>>
>>>>>>>>>>> Hervé
>>>>>>>>>>>
>>>>>>>>>>> Sent from my iPad
>>>>>>>>>>>
>>>>>>>>>>>   On 6 avr. 2014, at 14:42, Exo Verse <toraktu at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hello, I have been working with OpenGL and LWJGL for over 5
>>>>>>>>>>>> years
>>>>>>>>>>>>
>>>>>>>>>>>>  now.
>>>>>>>>>>>
>>>>>>>>>> I
>>>>>>>>
>>>>>>>>> want to switch over to using JavaFX 2, because of its GUI abilities
>>>>>>>>>>
>>>>>>>>>>> and
>>>>>>>>>>>
>>>>>>>>>> still use LWJGL with it. But I can't seem to find a way to do
>>>>>>>>
>>>>>>>>> this. I
>>>>>>>>>>>
>>>>>>>>>> saw a
>>>>>>
>>>>>>> 2 hour video that described the features of JavaFX 2 and it even
>>>>>>>>>>>>
>>>>>>>>>>>>  shown
>>>>>>>>>>>
>>>>>>>>>> the
>>>>>>>>
>>>>>>>>> layout..  OpenGL was there at the bottom with D3D with Prism above
>>>>>>>>>>>>
>>>>>>>>>>>>  both
>>>>>>>>>>>
>>>>>>>>>> of
>>>>>>>>
>>>>>>>>> them in the hierarchy. I have searched the web and I can't find
>>>>>>>>>>>>
>>>>>>>>>>>>  prism,
>>>>>>>>>>>
>>>>>>>>>> I
>>>>>>>>
>>>>>>>>> can't find info on how to talk to opengl and I can't find any
>>>>>>>>>>
>>>>>>>>>>> tutorials
>>>>>>>>>>>
>>>>>>>>>> anywhere. So I am posting here to see what I can find. I do NOT
>>>>>>>>
>>>>>>>>> like
>>>>>>>>>>>
>>>>>>>>>> JOGL.
>>>>>>
>>>>>>> I prefer LWJGL. So far, the only thing related to 3D with regards
>>>>>>>>>>>>
>>>>>>>>>>>>  to
>>>>>>>>>>>
>>>>>>>>>> JavaFX
>>>>>>
>>>>>>> is the very resource intensive Canvas3D, which I can't stand. Any
>>>>>>>>>>>>
>>>>>>>>>>>>  ideas ?
>>>>>>>>>>>
>>>>>>>>>> Is it not implemented yet and its on its way ? I'm trying to find
>>>>>>>>>>
>>>>>>>>>>> any
>>>>>>>>>>>
>>>>>>>>>> info
>>>>>>
>>>>>>> I can about this. If there is nothing for LWJGL, then I can't use
>>>>>>>>>>>>
>>>>>>>>>>>>  JavaFX.
>>>>>>>>>>>
>>>>>>>>>> Thanks.
>>>>>>>>>>
>>>>>>>>>>> Torak
>>>>>>>>>>>>
>>>>>>>>>>>>
>


More information about the openjfx-dev mailing list