summaryrefslogtreecommitdiffstats
path: root/make/stub_includes/opengl/macosx-window-system.h
diff options
context:
space:
mode:
Diffstat (limited to 'make/stub_includes/opengl/macosx-window-system.h')
-rw-r--r--make/stub_includes/opengl/macosx-window-system.h59
1 files changed, 59 insertions, 0 deletions
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..7d2704be4
--- /dev/null
+++ b/make/stub_includes/opengl/macosx-window-system.h
@@ -0,0 +1,59 @@
+/* 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;
+
+// CGL ..
+void CGLQueryPixelFormat(void* pixelFormat, int* iattrs, int niattrs, int* ivalues);
+
+// NS ..
+void* createPixelFormat(int* iattrs, int niattrs, int* ivalues);
+void queryPixelFormat(void* pixelFormat, int* iattrs, int niattrs, int* ivalues);
+void deletePixelFormat(void* pixelFormat);
+
+// NS ..
+void *getCurrentContext(void);
+void *getNSView(void* nsContext);
+
+void* createContext(void* shareContext,
+ void* nsView,
+ void* pixelFormat,
+ int* viewNotReady);
+void *getCGLContext(void* nsContext);
+Bool makeCurrentContext(void* nsContext);
+Bool clearCurrentContext(void *nsContext);
+Bool deleteContext(void* nsContext);
+Bool flushBuffer(void* nsContext);
+void setContextOpacity(void* nsContext, int opacity);
+void updateContext(void* nsContext);
+void copyContext(void* destContext, void* srcContext, int mask);
+
+void* updateContextRegister(void* nsContext, void* nsView);
+void updateContextUnregister(void* updater);
+
+void* createPBuffer(int renderTarget, int internalFormat, int width, int height);
+Bool destroyPBuffer(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);
+
+/* Gamma-related functionality */
+Bool setGammaRamp(int tableSize, float* redRamp, float* greenRamp, float* blueRamp);
+void resetGammaRamp();
+
+/****************************************************************************************/
+/* Java2D/JOGL bridge support; need to be able to create pbuffers and
+ contexts using the CGL APIs to be able to share textures, etc. with
+ contexts created by Java2D/JOGL bridge, which are CGLContextObjs */
+
+/* Pick up copies of CGL signatures from Mac OS X stub_includes/window-system-build directory */
+#include <OpenGL/OpenGL.h>