# This .cfg file is used to generate the interface to the CGL routines
# used internally by the MacOSXGLContext implementation.
Package com.sun.opengl.impl.macosx
JavaOutputDir ..\build\gensrc\classes
NativeOutputDir ..\build\gensrc\native\jogl
JavaClass CGL
Style allstatic
Include gl-common-macosx.cfg

Opaque long void *

# FIXME: rather than put in a header file somewhere in the source tree,
# this was the easiest way of sharing the prototypes between these files
CustomCCode typedef int Bool;

CustomCCode #include </usr/include/machine/types.h>

CustomCCode extern void* createContext(void* shareContext, void* nsView,
CustomCCode                            int doubleBuffer,
CustomCCode                            int stereo,
CustomCCode                            int redBits,
CustomCCode                            int greenBits,
CustomCCode                            int blueBits,
CustomCCode                            int alphaBits,
CustomCCode                            int depthBits,
CustomCCode                            int stencilBits,
CustomCCode                            int accumRedBits,
CustomCCode                            int accumGreenBits,
CustomCCode                            int accumBlueBits,
CustomCCode                            int accumAlphaBits,
CustomCCode                            int sampleBuffers,
CustomCCode                            int numSamples,
CustomCCode                            int pbuffer,
CustomCCode                            int floatingPoint,
CustomCCode                            int* viewNotReady);
CustomCCode extern Bool makeCurrentContext(void* nsContext, void* nsView);
CustomCCode extern Bool clearCurrentContext(void* nsContext, void* nsView);
CustomCCode extern Bool deleteContext(void* nsContext, void* nsView);
CustomCCode extern Bool flushBuffer(void* nsContext, void* nsView);
CustomCCode extern void updateContext(void* nsContext, void* nsView);

CustomCCode extern void* updateContextRegister(void* nsContext, void* nsView);
CustomCCode extern void  updateContextUnregister(void* nsContext, void* nsView, void* updater);

CustomCCode extern void* createPBuffer(int renderTarget, int internalFormat, int width, int height);
CustomCCode extern Bool destroyPBuffer(void* nsContext, void* pBuffer);
CustomCCode extern void setContextPBuffer(void* nsContext, void* pBuffer);
CustomCCode extern void setContextTextureImageToPBuffer(void* nsContext, void* pBuffer, int colorBuffer);

CustomCCode extern void* getProcAddress(const char *procName);

CustomCCode extern void setSwapInterval(void* nsContext, int interval);

# Implement the first argument to getProcAddress as String instead
# of byte[]
ArgumentIsString getProcAddress 0