# This .cfg file is used to generate the interface to the EGL routines
# used internally by the EGLContext implementation.
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl/egl

Package jogamp.opengl.egl
JavaClass EGL
Style AllStatic
# Shouldn't matter which one of these we pick up
Include egl-common.cfg

# Only NIO direct function, no arrays ..
NIOOnly __ALL__
NIODirectOnly __ALL__

HierarchicalNativeOutput false

# Use a ProcAddressTable so we dynamically look up the routines
EmitProcAddressTable true
ProcAddressTableClassName EGLProcAddressTable
GetProcAddressTableExpr _table

# Implement the first argument to eglGetProcAddress as String instead
# of byte[]
ArgumentIsString eglGetProcAddress 0
ReturnsString eglQueryString

CustomCCode #include <stdio.h> /* android */
CustomCCode #include <gluegen_stdint.h>
CustomCCode #include <gluegen_stddef.h>
CustomCCode #include <EGL/egl.h>

CustomJavaCode EGL  private static EGLProcAddressTable _table = new EGLProcAddressTable(new GLProcAddressResolver());
CustomJavaCode EGL  public static void resetProcAddressTable(DynamicLookupHelper lookup) {
CustomJavaCode EGL      _table.reset(lookup);
CustomJavaCode EGL  }

# There are some #defines in egl.h that GlueGen and PCPP don't currently handle
CustomJavaCode EGL  public static final long EGL_DEFAULT_DISPLAY = 0;
CustomJavaCode EGL  public static final long EGL_NO_CONTEXT = 0;
CustomJavaCode EGL  public static final long EGL_NO_DISPLAY = 0;
CustomJavaCode EGL  public static final long EGL_NO_SURFACE = 0;
CustomJavaCode EGL  public static final int  EGL_DONT_CARE  = -1;
CustomJavaCode EGL  public static final int  EGL_UNKNOWN    = -1;
CustomJavaCode EGL 
CustomJavaCode EGL  protected static long eglGetProcAddress(long eglGetProcAddressHandle, java.lang.String procname)
CustomJavaCode EGL  {
CustomJavaCode EGL    if (eglGetProcAddressHandle == 0) {
CustomJavaCode EGL      throw new GLException("Passed null pointer for method \"eglGetProcAddress\"");
CustomJavaCode EGL    }
CustomJavaCode EGL    return dispatch_eglGetProcAddress0(procname, eglGetProcAddressHandle);
CustomJavaCode EGL  }


Import com.jogamp.gluegen.runtime.opengl.GLProcAddressResolver