Mesa (master): Buildfixes to work around issues in OpenGL.framework

Brian Paul brianp at kemper.freedesktop.org
Wed Apr 28 13:21:36 UTC 2010


Module: Mesa
Branch: master
Commit: a1cb3babbef2af222b839a058694acc82a7074f1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a1cb3babbef2af222b839a058694acc82a7074f1

Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Mon Apr 12 18:37:47 2010 -0700

Buildfixes to work around issues in OpenGL.framework

Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

---

 src/glx/apple/apple_glx.h              |    2 +-
 src/glx/apple/apple_glx_context.h      |   12 +++++++-
 src/glx/apple/apple_glx_drawable.h     |    6 +++-
 src/glx/apple/apple_glx_pbuffer.c      |   23 +++++++++++++--
 src/glx/apple/apple_visual.c           |    9 ++++++
 src/glx/apple/apple_xgl_api_read.c     |    5 +--
 src/glx/apple/apple_xgl_api_read.h     |   47 --------------------------------
 src/glx/apple/apple_xgl_api_stereo.c   |   13 +++++++-
 src/glx/apple/apple_xgl_api_stereo.h   |   39 --------------------------
 src/glx/apple/apple_xgl_api_viewport.c |    3 +-
 src/glx/apple/apple_xgl_api_viewport.h |   36 ------------------------
 11 files changed, 60 insertions(+), 135 deletions(-)

diff --git a/src/glx/apple/apple_glx.h b/src/glx/apple/apple_glx.h
index 3ee54aa..9b3643b 100644
--- a/src/glx/apple/apple_glx.h
+++ b/src/glx/apple/apple_glx.h
@@ -31,10 +31,10 @@
 #define APPLE_GLX_H
 
 #include <stdbool.h>
-#include <OpenGL/CGLTypes.h>
 #include <GL/gl.h>
 #include <GL/glxint.h>
 #include <X11/Xlib.h>
+
 #define XP_NO_X_HEADERS
 #include <Xplugin.h>
 
diff --git a/src/glx/apple/apple_glx_context.h b/src/glx/apple/apple_glx_context.h
index 7e2394f..c2a3e3f 100644
--- a/src/glx/apple/apple_glx_context.h
+++ b/src/glx/apple/apple_glx_context.h
@@ -29,11 +29,19 @@
 #ifndef APPLE_GLX_CONTEXT_H
 #define APPLE_GLX_CONTEXT_H
 
+/* <rdar://problem/6953344> */
+#define glTexImage1D glTexImage1D_OSX
+#define glTexImage2D glTexImage2D_OSX
+#define glTexImage3D glTexImage3D_OSX
+#include <OpenGL/CGLTypes.h>
+#include <OpenGL/CGLContext.h>
+#undef glTexImage1D
+#undef glTexImage2D
+#undef glTexImage3D
+
 #include <stdbool.h>
 #include <X11/Xlib.h>
 #include <GL/glx.h>
-#include <OpenGL/CGLTypes.h>
-#include <OpenGL/CGLContext.h>
 #define XP_NO_X_HEADERS
 #include <Xplugin.h>
 #undef XP_NO_X_HEADERS
diff --git a/src/glx/apple/apple_glx_drawable.h b/src/glx/apple/apple_glx_drawable.h
index a158589..e49eae3 100644
--- a/src/glx/apple/apple_glx_drawable.h
+++ b/src/glx/apple/apple_glx_drawable.h
@@ -29,6 +29,11 @@
 #ifndef APPLE_GLX_DRAWABLE_H
 #define APPLE_GLX_DRAWABLE_H
 
+/* Must be first for:
+ * <rdar://problem/6953344>
+ */
+#include "apple_glx_context.h"
+
 #include <pthread.h>
 #include <stdbool.h>
 #include <limits.h>
@@ -36,7 +41,6 @@
 #define XP_NO_X_HEADERS
 #include <Xplugin.h>
 #undef XP_NO_X_HEADERS
-#include "apple_glx_context.h"
 
 enum
 {
diff --git a/src/glx/apple/apple_glx_pbuffer.c b/src/glx/apple/apple_glx_pbuffer.c
index fb56b75..1466fea 100644
--- a/src/glx/apple/apple_glx_pbuffer.c
+++ b/src/glx/apple/apple_glx_pbuffer.c
@@ -27,16 +27,33 @@
  prior written authorization.
 */
 
+/* Must be before OpenGL.framework is included.  Remove once fixed:
+ * <rdar://problem/7872773>
+ */
+#include <GL/gl.h>
+#include <GL/glext.h>
+#define __gltypes_h_ 1
+
+/* Must be first for:
+ * <rdar://problem/6953344>
+ */
+#include "apple_glx_context.h"
+#include "apple_glx_drawable.h"
+
 #include <stdlib.h>
 #include <pthread.h>
 #include <assert.h>
-#include <GL/glew.h>
 #include "apple_glx.h"
 #include "glcontextmodes.h"
-#include "apple_glx_context.h"
-#include "apple_glx_drawable.h"
 #include "apple_cgl.h"
 
+/* mesa defines in glew.h, Apple in glext.h.
+ * Due to namespace nightmares, just do it here.
+ */
+#ifndef GL_TEXTURE_RECTANGLE_EXT
+#define GL_TEXTURE_RECTANGLE_EXT 0x84F5
+#endif
+
 static bool pbuffer_make_current(struct apple_glx_context *ac,
                                  struct apple_glx_drawable *d);
 
diff --git a/src/glx/apple/apple_visual.c b/src/glx/apple/apple_visual.c
index e809147..da5aa05 100644
--- a/src/glx/apple/apple_visual.c
+++ b/src/glx/apple/apple_visual.c
@@ -32,9 +32,18 @@
 #include <stdlib.h>
 #include <assert.h>
 #include <GL/gl.h>
+
+/* <rdar://problem/6953344> */
+#define glTexImage1D glTexImage1D_OSX
+#define glTexImage2D glTexImage2D_OSX
+#define glTexImage3D glTexImage3D_OSX
 #include <OpenGL/OpenGL.h>
 #include <OpenGL/CGLContext.h>
 #include <OpenGL/CGLRenderers.h>
+#undef glTexImage1D
+#undef glTexImage2D
+#undef glTexImage3D
+
 #include "apple_cgl.h"
 #include "apple_visual.h"
 #include "apple_glx.h"
diff --git a/src/glx/apple/apple_xgl_api_read.c b/src/glx/apple/apple_xgl_api_read.c
index 36357c7..0798f45 100644
--- a/src/glx/apple/apple_xgl_api_read.c
+++ b/src/glx/apple/apple_xgl_api_read.c
@@ -34,10 +34,9 @@
  * drawable if they are different.
  */
 #include <stdbool.h>
-#include "apple_xgl_api_read.h"
-#include "apple_xgl_api.h"
-#include "apple_cgl.h"
+#include "glxclient.h"
 #include "apple_glx_context.h"
+#include "apple_xgl_api.h"
 
 extern struct apple_xgl_api __gl_api;
 
diff --git a/src/glx/apple/apple_xgl_api_read.h b/src/glx/apple/apple_xgl_api_read.h
deleted file mode 100644
index ffeb32a..0000000
--- a/src/glx/apple/apple_xgl_api_read.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- Copyright (c) 2008, 2009 Apple Inc.
- 
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation files
- (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge,
- publish, distribute, sublicense, and/or sell copies of the Software,
- and to permit persons to whom the Software is furnished to do so,
- subject to the following conditions:
- 
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
- 
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT.  IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
- HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
- 
- Except as contained in this notice, the name(s) of the above
- copyright holders shall not be used in advertising or otherwise to
- promote the sale, use or other dealings in this Software without
- prior written authorization.
-*/
-
-/*
- * This file works with the glXMakeContextCurrent readable drawable. 
- */
-#ifndef APPLE_XGL_API_READ_H
-#define APPLE_XGL_API_READ_H
-
-#include "glxclient.h"
-
-extern void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height,
-                         GLenum format, GLenum type, void *pixels);
-
-extern void glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height,
-                         GLenum type);
-
-extern void glCopyColorTable(GLenum target, GLenum internalformat, GLint x,
-                             GLint y, GLsizei width);
-
-#endif
diff --git a/src/glx/apple/apple_xgl_api_stereo.c b/src/glx/apple/apple_xgl_api_stereo.c
index 7dd946f..64a15f7 100644
--- a/src/glx/apple/apple_xgl_api_stereo.c
+++ b/src/glx/apple/apple_xgl_api_stereo.c
@@ -27,10 +27,19 @@
  prior written authorization.
 */
 
+/* This should be removed once stereo hardware bugs are fixed
+ * <rdar://problem/6729006>
+ */
+
 #include <stdbool.h>
-#include "apple_xgl_api_stereo.h"
-#include "apple_xgl_api.h"
+
+#define GL_GLEXT_PROTOTYPES
+#include <GL/gl.h>
+#include <GL/glext.h>
+
+#include "glxclient.h"
 #include "apple_glx_context.h"
+#include "apple_xgl_api.h"
 
 extern struct apple_xgl_api __gl_api;
 /* 
diff --git a/src/glx/apple/apple_xgl_api_stereo.h b/src/glx/apple/apple_xgl_api_stereo.h
deleted file mode 100644
index c285363..0000000
--- a/src/glx/apple/apple_xgl_api_stereo.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- Copyright (c) 2009 Apple Inc.
- 
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation files
- (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge,
- publish, distribute, sublicense, and/or sell copies of the Software,
- and to permit persons to whom the Software is furnished to do so,
- subject to the following conditions:
- 
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
- 
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT.  IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
- HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
- 
- Except as contained in this notice, the name(s) of the above
- copyright holders shall not be used in advertising or otherwise to
- promote the sale, use or other dealings in this Software without
- prior written authorization.
-*/
-
-#include "glxclient.h"
-
-#ifndef APPLE_XGL_API_STEREO_H
-#define APPLE_XGL_API_STEREO_H
-
-extern void glDrawBuffer(GLenum mode);
-extern void glDrawBuffers(GLsizei n, const GLenum * bufs);
-extern void glDrawBuffersARB(GLsizei n, const GLenum * bufs);
-
-#endif
diff --git a/src/glx/apple/apple_xgl_api_viewport.c b/src/glx/apple/apple_xgl_api_viewport.c
index f556eef..e39ab15 100644
--- a/src/glx/apple/apple_xgl_api_viewport.c
+++ b/src/glx/apple/apple_xgl_api_viewport.c
@@ -26,9 +26,10 @@
  promote the sale, use or other dealings in this Software without
  prior written authorization.
 */
+
+#include "glxclient.h"
 #include "apple_glx_context.h"
 #include "apple_xgl_api.h"
-#include "apple_xgl_api_viewport.h"
 
 extern struct apple_xgl_api __gl_api;
 
diff --git a/src/glx/apple/apple_xgl_api_viewport.h b/src/glx/apple/apple_xgl_api_viewport.h
deleted file mode 100644
index 6c89ca7..0000000
--- a/src/glx/apple/apple_xgl_api_viewport.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- Copyright (c) 2009 Apple Inc.
- 
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation files
- (the "Software"), to deal in the Software without restriction,
- including without limitation the rights to use, copy, modify, merge,
- publish, distribute, sublicense, and/or sell copies of the Software,
- and to permit persons to whom the Software is furnished to do so,
- subject to the following conditions:
- 
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
- 
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT.  IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
- HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
- 
- Except as contained in this notice, the name(s) of the above
- copyright holders shall not be used in advertising or otherwise to
- promote the sale, use or other dealings in this Software without
- prior written authorization.
-*/
-#ifndef APPLE_XGL_API_VIEWPORT_H
-#define APPLE_XGL_API_VIEWPORT_H
-
-#include "glxclient.h"
-
-void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
-
-#endif




More information about the mesa-commit mailing list