Bug 929

Summary: Reflect ES3 Compatibility with ES2
Product: [JogAmp] Jogl Reporter: Sven Gothel <sgothel>
Component: coreAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: enhancement CC: gouessej, julien.carlos, org.jogamp, rami.santina, sgothel, xerxes
Priority: ---    
Version: 2   
Hardware: All   
OS: all   
Type: --- SCM Refs:
3d0ab3e6263dfdbb9dd0014443ad28b1c9b0c238 ac705f0d6eea7c8ba27a7cf7c42674c7446576b4
Workaround: ---
Bug Depends on:    
Bug Blocks: 852    

Description Sven Gothel 2013-12-21 15:13:24 CET
Reflect ES3 Compatibility with ES2.

F1 p322 of the OpenGL ES 3.0.2 Spec claims backward compatibility with ES2,
hence return true for 'glES3.isGLES2()' and allow 'glES3.getGLES2()'.
Comment 1 Sven Gothel 2013-12-21 15:21:45 CET
Current situation w/ ES3 implementers is that either ES3 or ES2 is available,
hence EGLDrawableFactory shall not query ES2 if ES3 is available.

Since ES3 seems to be also fully compatible w/ ES2, the above behavior is OK
and aligns to our ARB ctx GL profile aliasing.

Note: 
  - ES4 will not be compatible w/ ES2.
  - ES4 will drop 'deprecated' functionality of ES3
    and hence will not be compatible w/ ES3.
Comment 2 Sven Gothel 2013-12-21 22:06:44 CET
3d0ab3e6263dfdbb9dd0014443ad28b1c9b0c238
    - Map ES2 -> ES3 GLProfile, if available
    
    - EGLDrawableFactory: Don't query ES2 if ES3 is available
    
    - Fix queries and get methods (GL, GLContext and GLProfile):
      - glES3.isGLES2()==true and glES3.getGLES2()!=null
      - ctxES3.isGLES2()==true,
      - glES3Profile.isGLES2()==true
    
    - Enhance Unit test: TestGLProfile01NEWT
      - Test all GLProfile availability combinations
        based on implementing GLProfile
    
      - Test all GLProfile's isGL*()
        based on highest GLProfile identity
    
      - Test all GL's isGL*()
        based on highest GL identity.
Comment 3 Sven Gothel 2013-12-22 03:31:56 CET
ac705f0d6eea7c8ba27a7cf7c42674c7446576b4
  See Bug 852 Comment 8