summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Isorce <[email protected]>2015-07-01 00:33:14 +0100
committerEmil Velikov <[email protected]>2015-07-08 13:18:42 +0100
commitc7f3657450683827446072ad6b1e8fce04078162 (patch)
treeb0ec37198c7b0e6f0642513d62af77ba9d5ad90f
parent64cb014037551c4b7bbed1cf2ca8f1126c970146 (diff)
darwin: Suppress type conversion warnings for GLhandleARB
This patch and its description are inspired from Jose Fonseca explanations and suggestions. With this patch the following logic applies and only if __APPLE__: When building mesa, GLhandleARB is defined as unsigned long and at some point casted to GLuint in gl fuction implementations. These exact points are where these errors and warnings appear. When building an application GLhandleARB is defined as void*. Later when calling a gl function, for example glBindAttribLocationARB, it will be dispatched to _mesa_BindAttribLocation. So internally void* will be treated as unsigned long which has the same size. So the same truncation happens when casting it to GLuint. Same when GLhandleARB appears as return value. For mesa it will be GLuint -> unsigned long. For an application it will be GLuint -> unsigned long -> void*. Note that the value will be preserved when casting back to GLuint. When GLhandleARB appears as a pointer there are also separate entry-points, i.e. _mesa_FuncNameARB. So the same logic can be applied. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66346 Signed-off-by: Julien Isorce <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
-rw-r--r--configure.ac2
-rw-r--r--include/GL/glext.h5
2 files changed, 6 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index d240c060573..d819beffa50 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1354,7 +1354,7 @@ if test "x$enable_dri" = xyes; then
fi
;;
darwin*)
- DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED"
+ DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED -DBUILDING_MESA"
if test "x$with_dri_drivers" = "xyes"; then
with_dri_drivers="swrast"
fi
diff --git a/include/GL/glext.h b/include/GL/glext.h
index a3873a613f9..e5f1d891ec5 100644
--- a/include/GL/glext.h
+++ b/include/GL/glext.h
@@ -3879,7 +3879,12 @@ GLAPI void APIENTRY glMinSampleShadingARB (GLfloat value);
#ifndef GL_ARB_shader_objects
#define GL_ARB_shader_objects 1
#ifdef __APPLE__
+#ifdef BUILDING_MESA
+/* Avoid uint <-> void* warnings */
+typedef unsigned long GLhandleARB;
+#else
typedef void *GLhandleARB;
+#endif
#else
typedef unsigned int GLhandleARB;
#endif