Bug 1096

Summary: EGL cleanup and accessibility
Product: [JogAmp] Jogl Reporter: Erik De Rijcke <derijcke.erik>
Component: embeddedAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: enhancement    
Priority: ---    
Version: 2.3.0   
Hardware: All   
OS: all   
Type: --- SCM Refs:
9ea218a5990b908e04235c407c0951c60df6ffba d0676451343e826e49d9c5732320f080d4c11c8d b4991d6ed202963ea66456b0abbcb1698f2712da
Workaround: ---
Bug Depends on:    
Bug Blocks: 1068    

Description Erik De Rijcke 2014-10-16 11:24:26 CEST
The current EGL api is not public and as such not easy accessible.
Effort should be put into making this api easy to use documented (javadoc), while closely resembling all of the official EGL api.

Other tasks include cleaning up the internal structures of the EGL stack.


10:58 < zubzub> :)
10:59 < zubzub> does/will jogle have egl bindings?
10:59 <+sgothel> it already has
10:59 < zubzub> I mean the egl api
10:59 <+sgothel> non public API via jogamp
10:59 <+sgothel> jaja
10:59 < zubzub> https://www.khronos.org/files/egl-1-4-quick-reference-card.pdf
10:59 < zubzub> ah cool
10:59 < zubzub> where do I find it?
11:00 <+sgothel> EGL
11:00 < zubzub> hmm non pulbic
11:00 <+sgothel> jogamp.opengl.egl.EGL
11:00 <+sgothel> yes, all binding layers are non public ..
11:00 <+sgothel> but .. well, you still can use it
11:00 <+sgothel> just don't want to guarantee API stability yet
11:02 < zubzub> does it have javadoc?
11:02 <+sgothel> these days I cont. aligning the EGL layer w/ X11 GLX 
                 (EGLDrawableFactory, EGLContext) in regards to EGL_KHR_create_context etc
11:02 <+sgothel> not produced :(
11:02 <+sgothel> but if you use an IDE .. and attach sources .. you have it
11:02 <+sgothel> maybe you want to make some public ?
11:03 <+sgothel> bug report .. and we see whether others like the idea - I am not  completely against it
11:03 <+sgothel> will bump EGL to 1.5 while dealing w/ it
11:03 <+sgothel> plus adding the wayland extension ofc
11:04 <+sgothel> seems like only Mesa/EGL is really capable of doing things like 
                 surface-less context, and creating OpenGL >= 3.1 context
11:05 <+sgothel> hence I need to keep some static probing as it currently is for ES1 and  ES2-3
11:05 < zubzub> well it would be very handy to make wayland java bindings work with egl
11:05 < zubzub> as it would eliminate the need to write native code
11:06 < zubzub> in newt you could then simply implement everything on the java side
11:06 < zubzub> given that you use my wayland-java-bindings
11:06 <+sgothel> I have earmarked this task (research) .. and if viable, sure
11:07 <+sgothel> but before that, our EGL stack must be cleaned up, i.e. all those                  ProxySurface stuff .. must be simplified a bit
11:07 <+sgothel> each time I read it, I have to meditate about it  :)
11:07 < zubzub> yeah it becomes quickly confusing when looking into it
11:08 <+sgothel> its for delegating foreign window/surface handles <-> EGL .. etc
11:08 <+sgothel> so I will make it a bit less flexible but easier to read
11:10 <+sgothel> so please go ahead w/ bug report
11:15 < zubzub> so what should be in it? a nice EGL interface?
11:16 <+sgothel> EGL as-is -> com.jogamp... ofc .. plus considering possible security 
                 issues due to public usage
11:16 <+sgothel> plus EGLExt for extensions
11:16 <+sgothel> which must be accessible via GLContext .. somehow
Comment 1 Sven Gothel 2014-12-07 04:09:31 CET
9ea218a5990b908e04235c407c0951c60df6ffba

    - Unify EGL surface related code in EGLSurface
      - EGLWrappedSurface -> EGLSurface,
        which utilizes a more straight forward
        foreign upstream surface (X11, GDI, ..) to EGL mapping.
      This also addresses Bug 1096, i.e. EGL Cleanup.
Comment 2 Sven Gothel 2015-01-23 01:00:14 CET
d0676451343e826e49d9c5732320f080d4c11c8d
      - Move EGL to public package
      jogamp.opengl.egl.EGL -> com.jogamp.opengl.egl.EGL
    
    - EGLDrawableFactory
      - Validate static EGL func-ptr against EGL/ES2,
        ignoring EGL/[ES|GL] collisions w/ diff. native EGL implementations
        due to static EGL usage.
    
      - Probe EGL/ES2 first
Comment 3 Sven Gothel 2015-01-23 22:09:35 CET
b4991d6ed202963ea66456b0abbcb1698f2712da
    Add missing EGLContext.c native code    
    As required for commit d0676451343e826e49d9c5732320f080d4c11c8d