# This .cfg file is used to generate the class which implements the GL # interface on a particular platform. Package net.java.games.jogl Style ImplOnly JavaClass GL ImplPackage net.java.games.jogl.impl.macosx ImplJavaClass MacOSXGLImpl Include gl-common-macosx.cfg Include gl-glx-common.cfg EmitProcAddressTable true ProcAddressTableClassName GLProcAddressTable ContextVariableName _context CustomCCode #include <inttypes.h> CustomCCode #include <stdlib.h> CustomCCode /* Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in CustomCCode "glext.h" are parsed. */ CustomCCode #define GL_GLEXT_PROTOTYPES CustomCCode /* Include the OpenGL headers */ CustomCCode #include <GL/gl.h> CustomCCode #include </usr/include/machine/types.h> CustomCCode /* Provide Windows typedefs */ CustomCCode typedef void* LPVOID; CustomCCode typedef unsigned int* PUINT; CustomJavaCode MacOSXGLImpl public MacOSXGLImpl(MacOSXGLContext context) CustomJavaCode MacOSXGLImpl { CustomJavaCode MacOSXGLImpl this._context = context; CustomJavaCode MacOSXGLImpl } CustomJavaCode MacOSXGLImpl /** This constructor should be used manually in order to CustomJavaCode MacOSXGLImpl create a GL object that can be used with the Cocoa NSOpenGLView. */ CustomJavaCode MacOSXGLImpl public MacOSXGLImpl() CustomJavaCode MacOSXGLImpl { CustomJavaCode MacOSXGLImpl this._context = new MacOSXDummyGLContext(this); CustomJavaCode MacOSXGLImpl } CustomJavaCode MacOSXGLImpl public boolean isFunctionAvailable(String glFunctionName) CustomJavaCode MacOSXGLImpl { CustomJavaCode MacOSXGLImpl return _context.isFunctionAvailable(glFunctionName); CustomJavaCode MacOSXGLImpl } CustomJavaCode MacOSXGLImpl public boolean isExtensionAvailable(String glExtensionName) CustomJavaCode MacOSXGLImpl { CustomJavaCode MacOSXGLImpl return _context.isExtensionAvailable(glExtensionName); CustomJavaCode MacOSXGLImpl } CustomJavaCode MacOSXGLImpl /** Forces a recomputation of which extensions are available. CustomJavaCode MacOSXGLImpl Should only be called if this MacOSXGLImpl is being used CustomJavaCode MacOSXGLImpl in conjunction with an NSOpenGLView instead of a GLCanvas. */ CustomJavaCode MacOSXGLImpl public void resetGLFunctionAvailability() CustomJavaCode MacOSXGLImpl { CustomJavaCode MacOSXGLImpl if (!(_context instanceof MacOSXDummyGLContext)) { CustomJavaCode MacOSXGLImpl throw new GLException("Should only be called if being used with NSOpenGLView"); CustomJavaCode MacOSXGLImpl } CustomJavaCode MacOSXGLImpl ((MacOSXDummyGLContext) _context).resetGLFunctionAvailability(); CustomJavaCode MacOSXGLImpl } CustomJavaCode MacOSXGLImpl private MacOSXGLContext _context; CustomJavaCode MacOSXGLImpl /** CustomJavaCode MacOSXGLImpl * Provides platform-independent access to the wglAllocateMemoryNV / CustomJavaCode MacOSXGLImpl * glXAllocateMemoryNV extension. CustomJavaCode MacOSXGLImpl */ CustomJavaCode MacOSXGLImpl public java.nio.ByteBuffer glAllocateMemoryNV(int arg0, float arg1, float arg2, float arg3) CustomJavaCode MacOSXGLImpl { CustomJavaCode MacOSXGLImpl // FIXME CustomJavaCode MacOSXGLImpl throw new GLException("Not yet implemented"); CustomJavaCode MacOSXGLImpl } IncludeAs CustomJavaCode MacOSXGLImpl gl-impl-CustomJavaCode.java IncludeAs CustomCCode gl-impl-CustomCCode.c