# 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 com.jogamp.opengl.egl
Style InterfaceAndImpl
JavaClass EGLExt
ImplPackage jogamp.opengl.egl
ImplJavaClass EGLExtImpl
# Shouldn't matter which one of these we pick up
Include egl-common.cfg

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

ExtendedInterfaceSymbolsIgnore ../build-temp/gensrc/classes/com/jogamp/opengl/egl/EGL.java

# Uses function pointer, need to add manual code iff supporting
IgnoreExtension EGL_ANDROID_blob_cache

HierarchicalNativeOutput false

# Use a ProcAddressTable so we dynamically look up the routines
EmitProcAddressTable true
ProcAddressTableClassName EGLExtProcAddressTable
GetProcAddressTableExpr _table
AccessControl jogamp.opengl.egl.EGLExtProcAddressTable PACKAGE_PRIVATE

Import com.jogamp.opengl.egl.EGLExt
Import com.jogamp.opengl.egl.EGLClientPixmapHI

CustomCCode #include <stdio.h> /* android */
CustomCCode #include <gluegen_stdint.h>
CustomCCode #include <gluegen_stddef.h>
CustomCCode /* Define EGL_EGLEXT_PROTOTYPES so that the EGL extension prototypes in
CustomCCode    "eglext.h" are parsed. */
CustomCCode #define EGL_EGLEXT_PROTOTYPES
CustomCCode
CustomCCode #include <EGL/egl.h>
CustomCCode #include <EGL/eglext.h>

# There are some #defines in eglext.h that GlueGen and PCPP don't currently handle
CustomJavaCode EGLExt      /** Part of <code>EGL_KHR_image</code> */
CustomJavaCode EGLExt      public static final long EGL_NO_IMAGE = 0;
#CustomJavaCode EGLExt      /** Part of <code>EGL_KHR_reusable_sync</code> */
#CustomJavaCode EGLExt      public static final long EGL_FOREVER_KHR = 0xFFFFFFFFFFFFFFFFL ;
CustomJavaCode EGLExt      /** Part of <code>EGL_KHR_reusable_sync</code> */
CustomJavaCode EGLExt      public static final long EGL_NO_SYNC_KHR = 0;

CustomJavaCode EGLExt      public boolean isFunctionAvailable(String glFunctionName);
CustomJavaCode EGLExt      public boolean isExtensionAvailable(String glExtensionName);

CustomJavaCode EGLExtImpl  public EGLExtImpl(EGLContext context, EGLExtProcAddressTable table) {
CustomJavaCode EGLExtImpl    this._context = context; 
CustomJavaCode EGLExtImpl    this._table = table; 
CustomJavaCode EGLExtImpl  }

CustomJavaCode EGLExtImpl  public boolean isFunctionAvailable(String glFunctionName)
CustomJavaCode EGLExtImpl  {
CustomJavaCode EGLExtImpl    return _context.isFunctionAvailable(glFunctionName);
CustomJavaCode EGLExtImpl  }

CustomJavaCode EGLExtImpl  public boolean isExtensionAvailable(String glExtensionName)
CustomJavaCode EGLExtImpl  {
CustomJavaCode EGLExtImpl    return _context.isExtensionAvailable(glExtensionName);
CustomJavaCode EGLExtImpl  }

CustomJavaCode EGLExtImpl  private final EGLContext _context;
CustomJavaCode EGLExtImpl  private final EGLExtProcAddressTable _table;
CustomJavaCode EGLExtImpl  final EGLExtProcAddressTable getProcAdressTable() { return _table; }

