Missing method at jogl_mobile.dll

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

Missing method at jogl_mobile.dll

Alessandro
Hi, guys

I'd like to point out that library  jogl_mobile.dll miss the native side version of the following method from jogamp.opengl.egl.EGL.java class:
 
     private static native void dispatch_eglGetConfigAttributes(long dpy, long config,
            int attributeCount,
            Object attributes,
            int attributes_byte_offset,
            Object values,
           int valuesOffset,
           long procAddr);

When I try to run a demo with GLProfile.GL2ES2 and -Djogl.enable.ANGLE=true,  I have the following exception stack trace:

Exception in thread "main" java.lang.UnsatisfiedLinkError: jogamp.opengl.egl.EGL.dispatch_eglGetConfigAttributes(JJILjava/lang/Object;ILjava/lang/Object;IJ)V
        at jogamp.opengl.egl.EGL.dispatch_eglGetConfigAttributes(Native Method)
        at jogamp.opengl.egl.EGL.eglGetConfigAttributes(EGL.java:804)
        at jogamp.opengl.egl.EGLGraphicsConfiguration.EGLConfig2Capabilities(EGLGraphicsConfiguration.java:221)
        at jogamp.opengl.egl.EGLGraphicsConfigurationFactory.eglConfigs2GLCaps(EGLGraphicsConfigurationFactory.java:480)
        at jogamp.opengl.egl.EGLGraphicsConfigurationFactory.getAvailableCapabilities(EGLGraphicsConfigurationFactory.java:210)
        at jogamp.opengl.egl.EGLDrawableFactory.getAvailableCapabilitiesImpl(EGLDrawableFactory.java:718)
        at javax.media.opengl.GLDrawableFactory.getAvailableCapabilities(GLDrawableFactory.java:474)
        at com.jogamp.opengl.JoglVersion.getAvailableCapabilitiesInfo(JoglVersion.java:80)
        at com.jogamp.opengl.JoglVersion.getAllAvailableCapabilitiesInfo(JoglVersion.java:107)
        at com.jogamp.opengl.JoglVersion.getDefaultOpenGLInfo(JoglVersion.java:125)
        at javax.media.opengl.GLProfile.initSingleton(GLProfile.java:218)
        at javax.media.opengl.GLProfile.getProfileMap(GLProfile.java:2246)
        at javax.media.opengl.GLProfile.get(GLProfile.java:959)
        at javax.media.opengl.GLProfile.get(GLProfile.java:975)
        at gles.tests.RawGLES2demo.main(RawGLES2demo.java:298)

The line 298 at RawGLES2demo.java is the following:
298   GLCapabilities caps = new GLCapabilities(GLProfile.get(GLProfile.GL2ES2));

Checking the jogl_mobile.dll with PE Viewer is possible to note that above method is missing, in both x86 and AMD64 versions.

It happens on JOGL 2.2.4 and 2.3.
I didn't check others releases

Best regards,
Alessandro "Aces"
Reply | Threaded
Open this post in threaded view
|

Re: Missing method at jogl_mobile.dll

gouessej
Administrator
Hi

Have you filled a bug report? I just want to avoid forgetting this bug. Thank you for your post anyway.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Missing method at jogl_mobile.dll

Alessandro
This post was updated on .
Bug filled  as number 1110.
https://jogamp.org/bugzilla/show_bug.cgi?id=1110

Checking at Github I note the that the missing functions is available at file
jogl/make/config/jogl/egl-CustomCCode.c and it is possibly generated from file egl-CustomJavaCode.java in the same folder.

jogl/make/config/jogl/egl-CustomCCode.c
jogl/make/config/jogl/egl-CustomJavaCode.java

I guess the make file just missed compile & link operations with above source code.

==============
Updated on 26/12/2014 - Fixed the link to Bugzilla.
Reply | Threaded
Open this post in threaded view
|

Re: Missing method at jogl_mobile.dll

Alessandro
I guess this bug is related to below issue cited at javax.media.opengl.GLProfile.java, lines 108 to 116 :


    /**
     * We have to disable support for ANGLE, the D3D ES2 emulation on Windows provided w/ Firefox and Chrome.
     * When run in the mentioned browsers, the eglInitialize(..) implementation crashes.
     * <p>
     * This can be overridden by explicitly enabling ANGLE on Windows by setting the property
     * <code>jogl.enable.ANGLE</code>.
     * </p>
     */
    public static final boolean enableANGLE;

Reply | Threaded
Open this post in threaded view
|

Re: Missing method at jogl_mobile.dll

Alessandro
Hurray!
That is a pretty good news !!

Thanks, Gothel & Gouessej

Bugzilla wrote
https://jogamp.org/bugzilla/show_bug.cgi?id=1110

Sven Gothel <sgothel@jausoft.com> changed:

           What    |Removed                     |Added
-------------------------------------------------------------------------------------
             Status|IN_PROGRESS            |RESOLVED
        SCM Refs|                                  |dc15a430ee28f226e047ddebabf
                    |                                  |902d4c10b067a
      Resolution|---                              |FIXED
-------------------------------------------------------------------------------------
--- Comment #3 from Sven Gothel <sgothel@jausoft.com> ---

dc15a430ee28f226e047ddebabf902d4c10b067a:

    Fix regression of commit cf1163fc88976e7087d3a17524a49139e35a4708,
    i.e. missing function calling convention and return type qualifier
    for 'Java_com_jogamp_opengl_egl_EGL_dispatch_1eglGetConfigAttributes':
      JNIEXPORT void JNICALL

    This lead to its exclusion in the resulting Windows dll.
Reply | Threaded
Open this post in threaded view
|

Re: Missing method at jogl_mobile.dll

gouessej
Administrator
Thank you for pointing out this missing method.
Julien Gouesse | Personal blog | Website