From 3d0ab3e6263dfdbb9dd0014443ad28b1c9b0c238 Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Sat, 21 Dec 2013 22:03:47 +0100
Subject: Bug 929 - Reflect ES3 Compatibility with ES2

- 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.
---
 .../classes/jogamp/opengl/egl/EGLDrawableFactory.java    | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

(limited to 'src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java')

diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java b/src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java
index 3c8531730..1ff16fff8 100644
--- a/src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java
+++ b/src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java
@@ -624,13 +624,15 @@ public class EGLDrawableFactory extends GLDrawableFactoryImpl {
             // ES3 Query
             final int[] esProfile = { 3 };
             madeCurrentES3 = mapAvailableEGLESConfig(adevice, esProfile, hasPBufferES3ES2, rendererQuirksES3ES2, ctpES3ES2) && 3 == esProfile[0];
-            // ES2 Query, may result in ES3
-            esProfile[0] = 2;
-            if( mapAvailableEGLESConfig(adevice, esProfile, hasPBufferES3ES2, rendererQuirksES3ES2, ctpES3ES2) ) {
-                switch( esProfile[0] ) {
-                    case 2: madeCurrentES2 = true; break;
-                    case 3: madeCurrentES3 = true; break;
-                    default: throw new InternalError("XXXX Got "+esProfile[0]);
+            if( !madeCurrentES3 ) {
+                // ES2 Query, may result in ES3
+                esProfile[0] = 2;
+                if( mapAvailableEGLESConfig(adevice, esProfile, hasPBufferES3ES2, rendererQuirksES3ES2, ctpES3ES2) ) {
+                    switch( esProfile[0] ) {
+                        case 2: madeCurrentES2 = true; break;
+                        case 3: madeCurrentES3 = true; break;
+                        default: throw new InternalError("XXXX Got "+esProfile[0]);
+                    }
                 }
             }
         }
-- 
cgit v1.2.3