aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/jogamp/opengl/egl
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2015-01-23 00:48:16 +0100
committerSven Gothel <[email protected]>2015-01-23 00:48:16 +0100
commitd0676451343e826e49d9c5732320f080d4c11c8d (patch)
tree1b756b7063d7f0ed512d80ef0a7cbd28f9d6ab76 /src/jogl/classes/jogamp/opengl/egl
parent6253fe0f8e4191018a9d2b7bb7c1d7ab2392a6f4 (diff)
Bug 1096 - Expose EGL to public: com.jogamp.opengl.egl.EGL ; EGLDrawableFactory: Validate static EGL func-ptr, probe EGL/ES2 first
- 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
Diffstat (limited to 'src/jogl/classes/jogamp/opengl/egl')
-rw-r--r--src/jogl/classes/jogamp/opengl/egl/DesktopES2DynamicLibraryBundleInfo.java5
-rw-r--r--src/jogl/classes/jogamp/opengl/egl/EGLContext.java39
-rw-r--r--src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java2
-rw-r--r--src/jogl/classes/jogamp/opengl/egl/EGLDrawable.java2
-rw-r--r--src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java144
-rw-r--r--src/jogl/classes/jogamp/opengl/egl/EGLDummyUpstreamSurfaceHook.java1
-rw-r--r--src/jogl/classes/jogamp/opengl/egl/EGLDynamicLibraryBundleInfo.java4
-rw-r--r--src/jogl/classes/jogamp/opengl/egl/EGLGLCapabilities.java2
-rw-r--r--src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfiguration.java2
-rw-r--r--src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java2
-rw-r--r--src/jogl/classes/jogamp/opengl/egl/EGLSurface.java7
-rw-r--r--src/jogl/classes/jogamp/opengl/egl/EGLUpstreamSurfaceHook.java1
12 files changed, 140 insertions, 71 deletions
diff --git a/src/jogl/classes/jogamp/opengl/egl/DesktopES2DynamicLibraryBundleInfo.java b/src/jogl/classes/jogamp/opengl/egl/DesktopES2DynamicLibraryBundleInfo.java
index b80f123aa..245b6a945 100644
--- a/src/jogl/classes/jogamp/opengl/egl/DesktopES2DynamicLibraryBundleInfo.java
+++ b/src/jogl/classes/jogamp/opengl/egl/DesktopES2DynamicLibraryBundleInfo.java
@@ -31,8 +31,9 @@ package jogamp.opengl.egl;
import java.util.ArrayList;
import java.util.List;
+import com.jogamp.opengl.egl.EGL;
+
import jogamp.opengl.GLDynamicLibraryBundleInfo;
-import jogamp.opengl.egl.EGL;
/**
* Implementation of the DynamicLookupHelper for Desktop ES2 (AMD, ..)
@@ -58,7 +59,7 @@ public final class DesktopES2DynamicLibraryBundleInfo extends GLDynamicLibraryBu
@Override
public final long toolGetProcAddress(final long toolGetProcAddressHandle, final String funcName) {
- return EGL.eglGetProcAddress(toolGetProcAddressHandle, funcName);
+ return EGLContext.eglGetProcAddress(toolGetProcAddressHandle, funcName);
}
@Override
diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLContext.java b/src/jogl/classes/jogamp/opengl/egl/EGLContext.java
index b19f9b0be..b3c848012 100644
--- a/src/jogl/classes/jogamp/opengl/egl/EGLContext.java
+++ b/src/jogl/classes/jogamp/opengl/egl/EGLContext.java
@@ -50,8 +50,6 @@ import javax.media.opengl.GLProfile;
import jogamp.opengl.GLContextImpl;
import jogamp.opengl.GLDrawableImpl;
-import jogamp.opengl.egl.EGL;
-import jogamp.opengl.egl.EGLExt;
import jogamp.opengl.egl.EGLExtImpl;
import jogamp.opengl.egl.EGLExtProcAddressTable;
@@ -61,12 +59,14 @@ import com.jogamp.gluegen.runtime.ProcAddressTable;
import com.jogamp.gluegen.runtime.opengl.GLProcAddressResolver;
import com.jogamp.nativewindow.egl.EGLGraphicsDevice;
import com.jogamp.opengl.GLRendererQuirks;
+import com.jogamp.opengl.egl.EGL;
+import com.jogamp.opengl.egl.EGLExt;
public class EGLContext extends GLContextImpl {
- private EGLExt _eglExt;
// Table that holds the addresses of the native C-language entry points for
// EGL extension functions.
private EGLExtProcAddressTable eglExtProcAddressTable;
+ private EGLExtImpl eglExtImpl;
static final int CTX_PROFILE_COMPAT = GLContext.CTX_PROFILE_COMPAT;
static final int CTX_PROFILE_CORE = GLContext.CTX_PROFILE_CORE;
@@ -84,7 +84,7 @@ public class EGLContext extends GLContextImpl {
@Override
protected void resetStates(final boolean isInit) {
eglExtProcAddressTable = null;
- // no inner state _eglExt = null;
+ eglExtImpl = null;
super.resetStates(isInit);
}
@@ -93,11 +93,8 @@ public class EGLContext extends GLContextImpl {
return getEGLExt();
}
- public EGLExt getEGLExt() {
- if (_eglExt == null) {
- _eglExt = new EGLExtImpl(this);
- }
- return _eglExt;
+ public final EGLExt getEGLExt() {
+ return eglExtImpl;
}
@Override
@@ -105,10 +102,6 @@ public class EGLContext extends GLContextImpl {
return eglExtProcAddressTable;
}
- public final EGLExtProcAddressTable getEGLExtProcAddressTable() {
- return eglExtProcAddressTable;
- }
-
@Override
protected Map<String, String> getFunctionNameMap() { return null; }
@@ -359,15 +352,19 @@ public class EGLContext extends GLContextImpl {
if(DEBUG) {
System.err.println(getThreadName() + ": GLContext EGL ProcAddressTable reusing key("+key+") -> "+toHexString(table.hashCode()));
}
+ if( null == eglExtImpl || eglExtImpl.getProcAdressTable() != eglExtProcAddressTable ) {
+ eglExtImpl = new EGLExtImpl(this, eglExtProcAddressTable);
+ }
} else {
eglExtProcAddressTable = new EGLExtProcAddressTable(new GLProcAddressResolver());
- resetProcAddressTable(getEGLExtProcAddressTable());
+ resetProcAddressTable(eglExtProcAddressTable);
synchronized(mappedContextTypeObjectLock) {
- mappedGLXProcAddress.put(key, getEGLExtProcAddressTable());
+ mappedGLXProcAddress.put(key, eglExtProcAddressTable);
if(DEBUG) {
- System.err.println(getThreadName() + ": GLContext EGL ProcAddressTable mapping key("+key+") -> "+toHexString(getEGLExtProcAddressTable().hashCode()));
+ System.err.println(getThreadName() + ": GLContext EGL ProcAddressTable mapping key("+key+") -> "+toHexString(eglExtProcAddressTable.hashCode()));
}
}
+ eglExtImpl = new EGLExtImpl(this, eglExtProcAddressTable);
}
}
@@ -413,6 +410,16 @@ public class EGLContext extends GLContextImpl {
return EGL.eglSwapInterval(drawable.getNativeSurface().getDisplayHandle(), interval);
}
+ static long eglGetProcAddress(final long eglGetProcAddressHandle, final String procname)
+ {
+ if (0 == eglGetProcAddressHandle) {
+ throw new GLException("Passed null pointer for method \"eglGetProcAddress\"");
+ }
+ return dispatch_eglGetProcAddress0(procname, eglGetProcAddressHandle);
+ }
+ /** Entry point to C language function: <code> __EGLFuncPtr eglGetProcAddress(const char * procname) </code> <br>Part of <code>EGL_VERSION_1_X</code> */
+ static private native long dispatch_eglGetProcAddress0(String procname, long procAddress);
+
//
// Accessible ..
//
diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java b/src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java
index 98ecbbe51..199b20464 100644
--- a/src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java
+++ b/src/jogl/classes/jogamp/opengl/egl/EGLDisplayUtil.java
@@ -38,12 +38,12 @@ import javax.media.nativewindow.ToolkitLock;
import javax.media.opengl.GLException;
import jogamp.opengl.Debug;
-import jogamp.opengl.egl.EGL;
import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.nio.Buffers;
import com.jogamp.common.util.LongObjectHashMap;
import com.jogamp.nativewindow.egl.EGLGraphicsDevice;
+import com.jogamp.opengl.egl.EGL;
/**
* This implementation provides recursive calls to
diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLDrawable.java b/src/jogl/classes/jogamp/opengl/egl/EGLDrawable.java
index 0cd686c5b..5b080a183 100644
--- a/src/jogl/classes/jogamp/opengl/egl/EGLDrawable.java
+++ b/src/jogl/classes/jogamp/opengl/egl/EGLDrawable.java
@@ -43,9 +43,9 @@ import javax.media.opengl.GLException;
import jogamp.nativewindow.ProxySurfaceImpl;
import jogamp.opengl.GLDrawableImpl;
import jogamp.opengl.GLDynamicLookupHelper;
-import jogamp.opengl.egl.EGL;
import com.jogamp.nativewindow.egl.EGLGraphicsDevice;
+import com.jogamp.opengl.egl.EGL;
public class EGLDrawable extends GLDrawableImpl {
static boolean DEBUG = GLDrawableImpl.DEBUG;
diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java b/src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java
index db872fec4..967bcb6da 100644
--- a/src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java
+++ b/src/jogl/classes/jogamp/opengl/egl/EGLDrawableFactory.java
@@ -72,11 +72,11 @@ import jogamp.opengl.GLDrawableImpl;
import jogamp.opengl.GLDynamicLookupHelper;
import jogamp.opengl.GLGraphicsConfigurationUtil;
import jogamp.opengl.SharedResourceRunner;
-import jogamp.opengl.egl.EGL;
import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.nio.Buffers;
import com.jogamp.common.nio.PointerBuffer;
+import com.jogamp.common.os.DynamicLookupHelper;
import com.jogamp.common.os.Platform;
import com.jogamp.common.util.PropertyAccess;
import com.jogamp.common.util.ReflectionUtil;
@@ -84,6 +84,7 @@ import com.jogamp.common.util.VersionNumber;
import com.jogamp.nativewindow.GenericUpstreamSurfacelessHook;
import com.jogamp.nativewindow.egl.EGLGraphicsDevice;
import com.jogamp.opengl.GLRendererQuirks;
+import com.jogamp.opengl.egl.EGL;
public class EGLDrawableFactory extends GLDrawableFactoryImpl {
protected static final boolean DEBUG = GLDrawableFactoryImpl.DEBUG; // allow package access
@@ -171,6 +172,13 @@ public class EGLDrawableFactory extends GLDrawableFactoryImpl {
}
}
+ static class EGLAcc extends EGL {
+ protected static boolean resetProcAddressTable(final DynamicLookupHelper lookup) {
+ return EGL.resetProcAddressTable(lookup);
+ }
+ }
+ static final String eglInitializeFuncName = "eglInitialize";
+
public EGLDrawableFactory() {
super();
@@ -179,43 +187,30 @@ public class EGLDrawableFactory extends GLDrawableFactoryImpl {
return;
}
eglDynamicLookupHelperInit = true;
- }
-
- // Check for other underlying stuff ..
- if(NativeWindowFactory.TYPE_X11 == NativeWindowFactory.getNativeWindowType(true)) {
- hasX11 = true;
- try {
- ReflectionUtil.createInstance("jogamp.opengl.x11.glx.X11GLXGraphicsConfigurationFactory", EGLDrawableFactory.class.getClassLoader());
- } catch (final Exception jre) { /* n/a .. */ }
- }
- // FIXME: Probably need to move EGL from a static model
- // to a dynamic one, where there can be 2 instances
- // for each ES profile with their own ProcAddressTable.
-
- synchronized(EGLDrawableFactory.class) {
- if( null == eglES1DynamicLookupHelper ) {
- GLDynamicLookupHelper tmp=null;
+ // Check for other underlying stuff ..
+ if(NativeWindowFactory.TYPE_X11 == NativeWindowFactory.getNativeWindowType(true)) {
+ hasX11 = true;
try {
- tmp = new GLDynamicLookupHelper(new EGLES1DynamicLibraryBundleInfo());
- } catch (final GLException gle) {
- if(DEBUG) {
- gle.printStackTrace();
- }
- }
- if(null!=tmp && tmp.isLibComplete()) {
- eglES1DynamicLookupHelper = tmp;
- EGL.resetProcAddressTable(eglES1DynamicLookupHelper);
- final boolean isANGLEES1 = isANGLE(eglES1DynamicLookupHelper);
- isANGLE |= isANGLEES1;
- if (DEBUG || GLProfile.DEBUG) {
- System.err.println("Info: EGLDrawableFactory: EGL ES1 - OK, isANGLE: "+isANGLEES1);
- }
- } else if (DEBUG || GLProfile.DEBUG) {
- System.err.println("Info: EGLDrawableFactory: EGL ES1 - NOPE (ES1 lib)");
- }
+ ReflectionUtil.createInstance("jogamp.opengl.x11.glx.X11GLXGraphicsConfigurationFactory", EGLDrawableFactory.class.getClassLoader());
+ } catch (final Exception jre) { /* n/a .. */ }
}
- if( null == eglES2DynamicLookupHelper ) {
+
+ /**
+ * FIXME: Probably need to move EGL from a static model
+ * to a dynamic one, where there can be 2 instances
+ * for each ES profile with their own ProcAddressTable.
+ *
+ * Since EGL is designed to be static
+ * we validate the function address of 'eglInitialize'
+ * with all EGL/ES and EGL/GL combinations.
+ * In case this address doesn't match the primary tuple EGL/ES2
+ * the profile is skipped!
+ */
+ boolean eglTableReset = false;
+ long eglInitializeAddress = 0;
+ // Setup: eglES2DynamicLookupHelper[, eglES1DynamicLookupHelper]
+ {
GLDynamicLookupHelper tmp=null;
try {
tmp = new GLDynamicLookupHelper(new EGLES2DynamicLibraryBundleInfo());
@@ -224,9 +219,9 @@ public class EGLDrawableFactory extends GLDrawableFactoryImpl {
gle.printStackTrace();
}
}
- if(null!=tmp && tmp.isLibComplete()) {
+ if( null != tmp && tmp.isLibComplete() && true == ( eglTableReset = EGLAcc.resetProcAddressTable(tmp) ) ) {
+ eglInitializeAddress = tmp.dynamicLookupFunction(eglInitializeFuncName);
eglES2DynamicLookupHelper = tmp;
- EGL.resetProcAddressTable(eglES2DynamicLookupHelper);
final boolean includesES1 = null == eglES1DynamicLookupHelper && includesES1(eglES2DynamicLookupHelper);
if(includesES1) {
eglES1DynamicLookupHelper = tmp;
@@ -234,7 +229,7 @@ public class EGLDrawableFactory extends GLDrawableFactoryImpl {
final boolean isANGLEES2 = isANGLE(eglES2DynamicLookupHelper);
isANGLE |= isANGLEES2;
if (DEBUG || GLProfile.DEBUG) {
- System.err.println("Info: EGLDrawableFactory: EGL ES2 - OK (includesES1 "+includesES1+", isANGLE: "+isANGLEES2+")");
+ System.err.println("Info: EGLDrawableFactory: EGL ES2 - OK (includesES1 "+includesES1+", isANGLE: "+isANGLEES2+", eglInitialize 0x"+Long.toHexString(eglInitializeAddress)+")");
if(includesES1) {
System.err.println("Info: EGLDrawableFactory: EGL ES1 - OK (ES2 lib)");
}
@@ -243,6 +238,47 @@ public class EGLDrawableFactory extends GLDrawableFactoryImpl {
System.err.println("Info: EGLDrawableFactory: EGL ES2 - NOPE");
}
}
+ // Setup: eglES1DynamicLookupHelper
+ if( null == eglES1DynamicLookupHelper ) {
+ GLDynamicLookupHelper tmp=null;
+ try {
+ tmp = new GLDynamicLookupHelper(new EGLES1DynamicLibraryBundleInfo());
+ } catch (final GLException gle) {
+ if(DEBUG) {
+ gle.printStackTrace();
+ }
+ }
+ if( null != tmp && tmp.isLibComplete() ) {
+ final boolean ok;
+ final long _eglInitializeAddress;
+ if( !eglTableReset ) {
+ if( true == ( eglTableReset = EGLAcc.resetProcAddressTable(tmp) ) ) {
+ _eglInitializeAddress = tmp.dynamicLookupFunction(eglInitializeFuncName);
+ eglInitializeAddress = _eglInitializeAddress;
+ ok = true;
+ } else {
+ _eglInitializeAddress = 0;
+ ok = false;
+ }
+ } else {
+ _eglInitializeAddress = tmp.dynamicLookupFunction(eglInitializeFuncName);
+ ok = _eglInitializeAddress == eglInitializeAddress;
+ }
+ if( ok ) {
+ eglES1DynamicLookupHelper = tmp;
+ final boolean isANGLEES1 = isANGLE(eglES1DynamicLookupHelper);
+ isANGLE |= isANGLEES1;
+ if (DEBUG || GLProfile.DEBUG) {
+ System.err.println("Info: EGLDrawableFactory: EGL ES1 - OK (isANGLE: "+isANGLEES1+", eglTableReset "+eglTableReset+", eglInitialize 0x"+Long.toHexString(_eglInitializeAddress)+")");
+ }
+ } else if (DEBUG || GLProfile.DEBUG) {
+ System.err.println("Info: EGLDrawableFactory: EGL ES1 - NOPE (ES1 proc, eglTableReset "+eglTableReset+", eglInitialize 0x"+Long.toHexString(_eglInitializeAddress)+")");
+ }
+ } else if (DEBUG || GLProfile.DEBUG) {
+ System.err.println("Info: EGLDrawableFactory: EGL ES1 - NOPE (ES1 lib)");
+ }
+ }
+ // Setup: eglGLnDynamicLookupHelper
if( null == eglGLnDynamicLookupHelper ) {
GLDynamicLookupHelper tmp=null;
try {
@@ -252,14 +288,32 @@ public class EGLDrawableFactory extends GLDrawableFactoryImpl {
gle.printStackTrace();
}
}
- if(null!=tmp && tmp.isLibComplete()) {
- eglGLnDynamicLookupHelper = tmp;
- EGL.resetProcAddressTable(eglGLnDynamicLookupHelper);
- if (DEBUG || GLProfile.DEBUG) {
- System.err.println("Info: EGLDrawableFactory: EGL GLn - OK");
+ if( null != tmp && tmp.isLibComplete() ) {
+ final boolean ok;
+ final long _eglInitializeAddress;
+ if( !eglTableReset ) {
+ if( true == ( eglTableReset = EGLAcc.resetProcAddressTable(tmp) ) ) {
+ _eglInitializeAddress = tmp.dynamicLookupFunction(eglInitializeFuncName);
+ eglInitializeAddress = _eglInitializeAddress;
+ ok = true;
+ } else {
+ _eglInitializeAddress = 0;
+ ok = false;
+ }
+ } else {
+ _eglInitializeAddress = tmp.dynamicLookupFunction(eglInitializeFuncName);
+ ok = _eglInitializeAddress == eglInitializeAddress;
+ }
+ if( ok ) {
+ eglGLnDynamicLookupHelper = tmp;
+ if (DEBUG || GLProfile.DEBUG) {
+ System.err.println("Info: EGLDrawableFactory: EGL GLn - OK (eglTableReset "+eglTableReset+", eglInitialize 0x"+Long.toHexString(_eglInitializeAddress)+")");
+ }
+ } else if (DEBUG || GLProfile.DEBUG) {
+ System.err.println("Info: EGLDrawableFactory: EGL GLn - NOPE (GLn proc, eglTableReset "+eglTableReset+", eglInitialize 0x"+Long.toHexString(_eglInitializeAddress)+")");
}
} else if (DEBUG || GLProfile.DEBUG) {
- System.err.println("Info: EGLDrawableFactory: EGL GLn - NOPE");
+ System.err.println("Info: EGLDrawableFactory: EGL GLn - NOPE (GLn lib)");
}
}
if( null != eglES2DynamicLookupHelper || null != eglES1DynamicLookupHelper || null != eglGLnDynamicLookupHelper ) {
@@ -286,7 +340,7 @@ public class EGLDrawableFactory extends GLDrawableFactoryImpl {
sharedResourceRunner.start();
}
}
- }
+ } // synchronized(EGLDrawableFactory.class)
}
@Override
diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLDummyUpstreamSurfaceHook.java b/src/jogl/classes/jogamp/opengl/egl/EGLDummyUpstreamSurfaceHook.java
index f00d7059d..0757bd98e 100644
--- a/src/jogl/classes/jogamp/opengl/egl/EGLDummyUpstreamSurfaceHook.java
+++ b/src/jogl/classes/jogamp/opengl/egl/EGLDummyUpstreamSurfaceHook.java
@@ -6,6 +6,7 @@ import javax.media.nativewindow.UpstreamSurfaceHook;
import com.jogamp.nativewindow.UpstreamSurfaceHookMutableSize;
import com.jogamp.nativewindow.egl.EGLGraphicsDevice;
+import com.jogamp.opengl.egl.EGL;
/** Uses a PBuffer offscreen surface */
public class EGLDummyUpstreamSurfaceHook extends UpstreamSurfaceHookMutableSize {
diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLDynamicLibraryBundleInfo.java b/src/jogl/classes/jogamp/opengl/egl/EGLDynamicLibraryBundleInfo.java
index 83b4d69f5..1b433cc30 100644
--- a/src/jogl/classes/jogamp/opengl/egl/EGLDynamicLibraryBundleInfo.java
+++ b/src/jogl/classes/jogamp/opengl/egl/EGLDynamicLibraryBundleInfo.java
@@ -33,10 +33,10 @@ import java.util.List;
import jogamp.common.os.PlatformPropsImpl;
import jogamp.opengl.GLDynamicLibraryBundleInfo;
-import jogamp.opengl.egl.EGL;
import com.jogamp.common.os.AndroidVersion;
import com.jogamp.common.os.Platform;
+import com.jogamp.opengl.egl.EGL;
/**
* Abstract implementation of the DynamicLookupHelper for EGL,
@@ -81,7 +81,7 @@ public abstract class EGLDynamicLibraryBundleInfo extends GLDynamicLibraryBundle
@Override
public final long toolGetProcAddress(final long toolGetProcAddressHandle, final String funcName) {
- return EGL.eglGetProcAddress(toolGetProcAddressHandle, funcName);
+ return EGLContext.eglGetProcAddress(toolGetProcAddressHandle, funcName);
}
@Override
diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLGLCapabilities.java b/src/jogl/classes/jogamp/opengl/egl/EGLGLCapabilities.java
index a8dd7d5c8..258765ba3 100644
--- a/src/jogl/classes/jogamp/opengl/egl/EGLGLCapabilities.java
+++ b/src/jogl/classes/jogamp/opengl/egl/EGLGLCapabilities.java
@@ -34,6 +34,8 @@ import javax.media.opengl.GLException;
import javax.media.opengl.GLProfile;
import com.jogamp.nativewindow.egl.EGLGraphicsDevice;
+import com.jogamp.opengl.egl.EGL;
+import com.jogamp.opengl.egl.EGLExt;
public class EGLGLCapabilities extends GLCapabilities {
diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfiguration.java b/src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfiguration.java
index 1d90e63af..6f0d7ae4d 100644
--- a/src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfiguration.java
+++ b/src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfiguration.java
@@ -57,6 +57,8 @@ import com.jogamp.common.nio.PointerBuffer;
import com.jogamp.nativewindow.MutableGraphicsConfiguration;
import com.jogamp.nativewindow.egl.EGLGraphicsDevice;
import com.jogamp.opengl.GLRendererQuirks;
+import com.jogamp.opengl.egl.EGL;
+import com.jogamp.opengl.egl.EGLExt;
public class EGLGraphicsConfiguration extends MutableGraphicsConfiguration implements Cloneable {
diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java b/src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java
index 9bfb8ced9..4aa34ce4e 100644
--- a/src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java
+++ b/src/jogl/classes/jogamp/opengl/egl/EGLGraphicsConfigurationFactory.java
@@ -58,12 +58,12 @@ import javax.media.opengl.GLProfile;
import jogamp.opengl.GLGraphicsConfigurationFactory;
import jogamp.opengl.GLGraphicsConfigurationUtil;
-import jogamp.opengl.egl.EGL;
import com.jogamp.common.nio.Buffers;
import com.jogamp.common.nio.PointerBuffer;
import com.jogamp.nativewindow.egl.EGLGraphicsDevice;
import com.jogamp.opengl.GLRendererQuirks;
+import com.jogamp.opengl.egl.EGL;
/** Subclass of GraphicsConfigurationFactory used when non-AWT tookits
diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLSurface.java b/src/jogl/classes/jogamp/opengl/egl/EGLSurface.java
index d00656a34..796a9e2c8 100644
--- a/src/jogl/classes/jogamp/opengl/egl/EGLSurface.java
+++ b/src/jogl/classes/jogamp/opengl/egl/EGLSurface.java
@@ -37,11 +37,12 @@ import javax.media.opengl.GLCapabilitiesImmutable;
import javax.media.opengl.GLException;
import com.jogamp.common.nio.Buffers;
+import com.jogamp.nativewindow.GenericUpstreamSurfacelessHook;
+import com.jogamp.opengl.egl.EGL;
import jogamp.nativewindow.ProxySurfaceImpl;
import jogamp.nativewindow.WrappedSurface;
import jogamp.opengl.GLDrawableImpl;
-import jogamp.opengl.egl.EGL;
/**
* <pre>
@@ -80,10 +81,10 @@ public class EGLSurface extends WrappedSurface {
}
}
- public static EGLSurface createSurfaceless(final EGLGraphicsConfiguration cfg, final EGLUpstreamSurfacelessHook upstream, final boolean ownsDevice) {
+ public static EGLSurface createSurfaceless(final EGLGraphicsConfiguration cfg, final GenericUpstreamSurfacelessHook upstream, final boolean ownsDevice) {
return new EGLSurface(cfg, upstream, ownsDevice);
}
- private EGLSurface(final EGLGraphicsConfiguration cfg, final EGLUpstreamSurfacelessHook upstream, final boolean ownsDevice) {
+ private EGLSurface(final EGLGraphicsConfiguration cfg, final GenericUpstreamSurfacelessHook upstream, final boolean ownsDevice) {
super(cfg, EGL.EGL_NO_SURFACE, upstream, ownsDevice);
if(EGLDrawableFactory.DEBUG) {
System.err.println("EGLSurface.ctor().3: "+this);
diff --git a/src/jogl/classes/jogamp/opengl/egl/EGLUpstreamSurfaceHook.java b/src/jogl/classes/jogamp/opengl/egl/EGLUpstreamSurfaceHook.java
index 694f2d30d..92e13dc61 100644
--- a/src/jogl/classes/jogamp/opengl/egl/EGLUpstreamSurfaceHook.java
+++ b/src/jogl/classes/jogamp/opengl/egl/EGLUpstreamSurfaceHook.java
@@ -41,6 +41,7 @@ import javax.media.opengl.GLException;
import jogamp.nativewindow.WrappedSurface;
import com.jogamp.nativewindow.egl.EGLGraphicsDevice;
+import com.jogamp.opengl.egl.EGL;
/**
* <pre>