JOGL and mesa opengl32.dll on Windows

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

JOGL and mesa opengl32.dll on Windows

chrix
Is anyone successfully using JOGL with the mesa opengl32.dll on Windows? The only way I have it working is by copying the mesa opengl32.dll over to the folder containing the java.exe. If I put it anywhere else (current directory..), it's catching the System32/opengl32.dll MSFT version instead.

I'm trying to run JOGL with mesa opengl32.dll as a workaround for https://code.google.com/p/javachromiumembedded/issues/detail?id=34 . This Java Chromium binding uses JOGL to render the Chromium's buffer as a texture. This works fine (hardware acceleration) except under Windows Remote Desktop (no hardware acceleration, system32/opengl32.dll from MSFT doesn't like npot textures) and this call fails.
gl2.glTexImage2D(gl2.GL_TEXTURE_2D, 0, gl2.GL_RGBA, view_width_, view_height_, 0, gl2.GL_BGRA, gl2.GL_UNSIGNED_INT_8_8_8_8_REV, buffer);

How do you get your JOGL app to find your mesa opengl32.dll on Windows?

Thanks for any tip,
Chrix
Reply | Threaded
Open this post in threaded view
|

Re: JOGL and mesa opengl32.dll on Windows

Sven Gothel
Administrator
On 01/24/2014 10:19 PM, chrix [via jogamp] wrote:

> Is anyone successfully using JOGL with the mesa opengl32.dll on Windows? The
> only way I have it working is by copying the mesa opengl32.dll over to the
> folder containing the java.exe. If I put it anywhere else (current
> directory..), it's catching the System32/opengl32.dll MSFT version instead.
>
> I'm trying to run JOGL with mesa opengl32.dll as a workaround for
> https://code.google.com/p/javachromiumembedded/issues/detail?id=34 . This Java
> Chromium binding uses JOGL to render the Chromium's buffer as a texture. This
> works fine (hardware acceleration) except under Windows Remote Desktop (no
> hardware acceleration, system32/opengl32.dll from MSFT doesn't like npot
> textures) and this call fails.
> gl2.glTexImage2D(gl2.GL_TEXTURE_2D, 0, gl2.GL_RGBA, view_width_, view_height_,
> 0, gl2.GL_BGRA, gl2.GL_UNSIGNED_INT_8_8_8_8_REV, buffer);
tbh .. I would fix CEF and the binding, i.e. ensure that
simple offscreen bitmaps are supported and/or POT textures.
Note: You simply can initialize a PIT texture w/ a zero transfer
and use TexSubImage (sic) to transfer the net-payload.

>
> How do you get your JOGL app to find your mesa opengl32.dll on Windows?
I thought PATH would do it ?
Have to double check the order of locations we gather
to load the native library - look in NativeLibrary.

Maybe it's time for a JOGL GL full library path / library name property ?

~Sven



signature.asc (894 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: JOGL and mesa opengl32.dll on Windows

gouessej
Administrator
In reply to this post by chrix
I have similar problems with Citrix (without OpenGL GPU Sharing Feature Add-on) and Microsoft Windows Remote Desktop, only the crappy Microsoft GDI renderer is exposed and I often get an exception with the message "cannot set pixel format 15" or something similar. When it works, I only get some support of OpenGL 1.1, sometimes 1.4. If I could use Mesa or Angle, it would be a nice fallback, better than nothing.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: JOGL and mesa opengl32.dll on Windows

chrix
In reply to this post by Sven Gothel
> I would fix CEF and the binding, i.e. ensure that simple offscreen bitmaps are supported and/or POT textures
Yes, maybe I'm missing things CEF can do. I'm following up with CEF through https://code.google.com/p/javachromiumembedded/issues/detail?id=34 . For now, I simply use glDrawPixel when GLContext.isHardwareRasterizer() is false, as it is under RemoteDesktop.

> I thought PATH would do it ?
No. If it does for anyone else, I'd love to know. I had to put it in the folder that contains java.exe. Otherwise system32/opengl32.dll would be used first.

> Maybe it's time for a JOGL GL full library path / library name property ?
What if we want to detect this at runtime? If hardware rendering is available, use it, otherwise provide the location of a dll such as mesa opengl32.dll. So more like something passed to GLCapabilities when creating a GLCanvas?

>  You simply can initialize a PIT texture w/ a zero transfer and use TexSubImage (sic) to transfer the net-payload.
:-) fairly new to open gl here. Where can I learn about PIT texture? Google search didn't show much on this.

Thanks for the 2 replies