# This .cfg file is used to generate the interface to the EGL routines # used internally by the EGLContext implementation. JavaOutputDir ../build/gensrc/classes NativeOutputDir ../build/gensrc/native/jogl/egl Package com.sun.opengl.impl.egl Style InterfaceAndImpl JavaClass EGLExt ImplPackage com.sun.opengl.impl.egl ImplJavaClass EGLExtImpl # Shouldn't matter which one of these we pick up ExtendedInterfaceSymbols ../build/gensrc/classes/com/sun/opengl/impl/egl/EGL.java HierarchicalNativeOutput false Include gl-common.cfg Include gl-common-extensions.cfg # There are a few routines we don't handle yet Ignore glGetBufferPointerv # Use a ProcAddressTable so we dynamically look up the routines EmitProcAddressTable true ProcAddressTableClassName EGLExtProcAddressTable GetProcAddressTableExpr _context.getEGLExtProcAddressTable() # Translate EGLBoolean as Java boolean Opaque boolean EGLBoolean # Implement the first argument to eglGetProcAddress as String instead # of byte[] ArgumentIsString eglGetProcAddress 0 ReturnsString eglQueryString # Make eglGetProcAddress return an opaque long Opaque long __EGLFuncPtr # 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 # 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 EGLClientBuffer 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 Include intptr.cfg # There are some #defines in eglext.h that GlueGen and PCPP don't currently handle CustomJavaCode EGLExt public static final long EGL_NO_IMAGE = 0; CustomJavaCode EGLExt public boolean isFunctionAvailable(String glFunctionName); CustomJavaCode EGLExt public boolean isExtensionAvailable(String glExtensionName); CustomJavaCode EGLExtImpl public EGLExtImpl(EGLContext context) { CustomJavaCode EGLExtImpl this._context = context; 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 EGLContext _context; # These Ignores cause the core EGL routines to be ignored from the # EGLExt interface and EGLExtImpl implementing class. Ignore eglBindAPI Ignore eglBindTexImage Ignore eglChooseConfig Ignore eglCopyBuffers Ignore eglCreateContext Ignore eglCreatePbufferFromClientBuffer Ignore eglCreatePbufferSurface Ignore eglCreatePixmapSurface Ignore eglCreateWindowSurface Ignore eglDestroyContext Ignore eglDestroySurface Ignore eglGetConfigAttrib Ignore eglGetConfigs Ignore eglGetCurrentContext Ignore eglGetCurrentDisplay Ignore eglGetCurrentSurface Ignore eglGetDisplay Ignore eglGetError Ignore eglGetProcAddress Ignore eglInitialize Ignore eglMakeCurrent Ignore eglQueryAPI Ignore eglQueryContext Ignore eglQueryString Ignore eglQuerySurface Ignore eglReleaseTexImage Ignore eglReleaseThread Ignore eglSurfaceAttrib Ignore eglSwapBuffers Ignore eglSwapInterval Ignore eglTerminate Ignore eglWaitClient Ignore eglWaitGL Ignore eglWaitNative