# Inform the glue code generator of the association between #defines
# and functions and the extensions in which they are defined
GLHeader EGL/egl.h
GLHeader EGL/eglext.h

# Imports needed by all glue code
Import java.util.*
Import javax.media.opengl.*
Import javax.media.opengl.fixedfunc.*
Import jogamp.opengl.*

# Treat all of the EGL types as opaque longs
# Opaque long EGLConfig
Opaque long EGLContext
Opaque long EGLDisplay
Opaque long EGLSurface
Opaque long EGLNativeDisplayType
Opaque long EGLNativeWindowType
Opaque long EGLNativePixmapType
Opaque long EGLClientBuffer
Opaque long EGLImageKHR
#Opaque long EGLPerfMonitorNV
#Opaque long EGLPerfCounterNV
#Opaque long EGLPerfMarkerNV
Opaque long EGLSyncKHR
Opaque long NativeSyncKHR
Opaque boolean EGLBoolean

# Make eglGetProcAddress return an opaque long
Opaque long __EGLFuncPtr

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

# Force all of the methods to be emitted using dynamic linking so we
# don't need to link against any emulation library on the desktop or
# depend on the presence of an import library for a particular device
ForceProcAddressGen __ALL__

# Also force the calling conventions of the locally generated function
# pointer typedefs for these routines to EGLAPIENTRY
LocalProcAddressCallingConvention __ALL__ EGLAPIENTRY