diff options
-rw-r--r-- | make/build.xml | 2 | ||||
-rw-r--r-- | make/cgl-macosx.cfg | 41 | ||||
-rw-r--r-- | make/stub_includes/macosx/window-system.c | 41 | ||||
-rw-r--r-- | make/stub_includes/opengl/macosx-window-system.h | 46 |
4 files changed, 50 insertions, 80 deletions
diff --git a/make/build.xml b/make/build.xml index 89c515a56..ef458a537 100644 --- a/make/build.xml +++ b/make/build.xml @@ -799,6 +799,8 @@ <sysincludepath path="${java.includes.dir.platform}"/> <includepath path="stub_includes/opengl"/> <includepath path="stub_includes/cg" if="c.compiler.use-cglib"/> + <!-- This must come last to not override real include paths --> + <!-- includepath path="stub_includes/macosx" if="isOSX" / --> </compiler> <linker extends="${linker.cfg.id}"> diff --git a/make/cgl-macosx.cfg b/make/cgl-macosx.cfg index ccf25e718..97a3bbeff 100644 --- a/make/cgl-macosx.cfg +++ b/make/cgl-macosx.cfg @@ -9,47 +9,8 @@ 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); +CustomCCode #include "macosx-window-system.h" # Implement the first argument to getProcAddress as String instead # of byte[] diff --git a/make/stub_includes/macosx/window-system.c b/make/stub_includes/macosx/window-system.c index e53300830..f2738b454 100644 --- a/make/stub_includes/macosx/window-system.c +++ b/make/stub_includes/macosx/window-system.c @@ -1,40 +1 @@ -/* C routines encapsulating small amounts of Objective C code to allow - nsContext creation and manipulation to occur from Java */ - -typedef int Bool; - -void* createContext(void* shareContext, void* nsView, - int doubleBuffer, - int stereo, - int redBits, - int greenBits, - int blueBits, - int alphaBits, - int depthBits, - int stencilBits, - int accumRedBits, - int accumGreenBits, - int accumBlueBits, - int accumAlphaBits, - int sampleBuffers, - int numSamples, - int pbuffer, - int floatingPoint, - int* viewNotReady); -Bool makeCurrentContext(void* nsContext, void* nsView); -Bool clearCurrentContext(void* nsContext, void* nsView); -Bool deleteContext(void* nsContext, void* nsView); -Bool flushBuffer(void* nsContext, void* nsView); -void updateContext(void* nsContext, void* nsView); - -void* updateContextRegister(void* nsContext, void* nsView); -void updateContextUnregister(void* nsContext, void* nsView, void* updater); - -void* createPBuffer(int renderTarget, int internalFormat, int width, int height); -Bool destroyPBuffer(void* nsContext, void* pBuffer); -void setContextPBuffer(void* nsContext, void* pBuffer); -void setContextTextureImageToPBuffer(void* nsContext, void* pBuffer, int colorBuffer); - -void* getProcAddress(const char *procName); - -void setSwapInterval(void* nsContext, int interval); +#include "macosx-window-system.h" diff --git a/make/stub_includes/opengl/macosx-window-system.h b/make/stub_includes/opengl/macosx-window-system.h new file mode 100644 index 000000000..46ee1c45d --- /dev/null +++ b/make/stub_includes/opengl/macosx-window-system.h @@ -0,0 +1,46 @@ +/* C routines encapsulating small amounts of Objective C code to allow + nsContext creation and manipulation to occur from Java + + It's unfortunate this couldn't be placed in the macosx + stub_includes directory, but due to the presence of the jni.h stub + headers in that directory, if that is in the include path during + compilation then the build fails. +*/ + +typedef int Bool; + +void* createContext(void* shareContext, void* nsView, + int doubleBuffer, + int stereo, + int redBits, + int greenBits, + int blueBits, + int alphaBits, + int depthBits, + int stencilBits, + int accumRedBits, + int accumGreenBits, + int accumBlueBits, + int accumAlphaBits, + int sampleBuffers, + int numSamples, + int pbuffer, + int floatingPoint, + int* viewNotReady); +Bool makeCurrentContext(void* nsContext, void* nsView); +Bool clearCurrentContext(void* nsContext, void* nsView); +Bool deleteContext(void* nsContext, void* nsView); +Bool flushBuffer(void* nsContext, void* nsView); +void updateContext(void* nsContext, void* nsView); + +void* updateContextRegister(void* nsContext, void* nsView); +void updateContextUnregister(void* nsContext, void* nsView, void* updater); + +void* createPBuffer(int renderTarget, int internalFormat, int width, int height); +Bool destroyPBuffer(void* nsContext, void* pBuffer); +void setContextPBuffer(void* nsContext, void* pBuffer); +void setContextTextureImageToPBuffer(void* nsContext, void* pBuffer, int colorBuffer); + +void* getProcAddress(const char *procName); + +void setSwapInterval(void* nsContext, int interval); |