summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch')
-rw-r--r--meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch356
1 files changed, 356 insertions, 0 deletions
diff --git a/meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch b/meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch
new file mode 100644
index 0000000000..d6ddd9a0d4
--- /dev/null
+++ b/meta/recipes-graphics/mesa/mesa/0003-EGL-Mutate-NativeDisplayType-depending-on-config.patch
@@ -0,0 +1,356 @@
1From 8d31ae23683394617c49301b039b3a069b9ea436 Mon Sep 17 00:00:00 2001
2From: Daniel Stone <daniel@fooishbar.org>
3Date: Fri, 24 May 2013 17:20:27 +0100
4Subject: [PATCH 3/4] EGL: Mutate NativeDisplayType depending on config
5
6If we go through ./configure without enabling X11 anywhere, then set the
7fallback types for EGL NativeDisplay and friends, rather than assuming
8X11/Xlib.
9
10Signed-off-by: Daniel Stone <daniel@fooishbar.org>
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 configure.ac | 5 ++
14 include/EGL/eglplatform.h | 146 -------------------------------------------
15 include/EGL/eglplatform.h.in | 146 +++++++++++++++++++++++++++++++++++++++++++
16 3 files changed, 151 insertions(+), 146 deletions(-)
17 delete mode 100644 include/EGL/eglplatform.h
18 create mode 100644 include/EGL/eglplatform.h.in
19
20diff --git a/configure.ac b/configure.ac
21index 67b8c40..afc3217 100644
22--- a/configure.ac
23+++ b/configure.ac
24@@ -1499,6 +1499,9 @@ EGL_PLATFORMS="$egl_platforms"
25
26 if echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1; then
27 NEED_WINSYS_XLIB=yes
28+ MESA_EGL_NO_X11_HEADERS=0
29+else
30+ MESA_EGL_NO_X11_HEADERS=1
31 fi
32 AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep 'x11' >/dev/null 2>&1)
33 AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep 'wayland' >/dev/null 2>&1)
34@@ -1512,6 +1515,7 @@ AM_CONDITIONAL(HAVE_EGL_DRIVER_GLX, test "x$HAVE_EGL_DRIVER_GLX" != "x")
35 AC_SUBST([EGL_NATIVE_PLATFORM])
36 AC_SUBST([EGL_PLATFORMS])
37 AC_SUBST([EGL_CFLAGS])
38+AC_SUBST([MESA_EGL_NO_X11_HEADERS])
39
40 AC_ARG_WITH([egl-driver-dir],
41 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
42@@ -1991,6 +1995,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
43
44 dnl Substitute the config
45 AC_CONFIG_FILES([Makefile
46+ include/EGL/eglplatform.h
47 src/Makefile
48 src/egl/Makefile
49 src/egl/drivers/Makefile
50diff --git a/include/EGL/eglplatform.h b/include/EGL/eglplatform.h
51deleted file mode 100644
52index 17fdc61..0000000
53--- a/include/EGL/eglplatform.h
54+++ /dev/null
55@@ -1,146 +0,0 @@
56-#ifndef __eglplatform_h_
57-#define __eglplatform_h_
58-
59-/*
60-** Copyright (c) 2007-2009 The Khronos Group Inc.
61-**
62-** Permission is hereby granted, free of charge, to any person obtaining a
63-** copy of this software and/or associated documentation files (the
64-** "Materials"), to deal in the Materials without restriction, including
65-** without limitation the rights to use, copy, modify, merge, publish,
66-** distribute, sublicense, and/or sell copies of the Materials, and to
67-** permit persons to whom the Materials are furnished to do so, subject to
68-** the following conditions:
69-**
70-** The above copyright notice and this permission notice shall be included
71-** in all copies or substantial portions of the Materials.
72-**
73-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
74-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
75-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
76-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
77-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
78-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
79-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
80-*/
81-
82-/* Platform-specific types and definitions for egl.h
83- * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $
84- *
85- * Adopters may modify khrplatform.h and this file to suit their platform.
86- * You are encouraged to submit all modifications to the Khronos group so that
87- * they can be included in future versions of this file. Please submit changes
88- * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
89- * by filing a bug against product "EGL" component "Registry".
90- */
91-
92-#include <KHR/khrplatform.h>
93-
94-/* Macros used in EGL function prototype declarations.
95- *
96- * EGL functions should be prototyped as:
97- *
98- * EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
99- * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
100- *
101- * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
102- */
103-
104-#ifndef EGLAPI
105-#define EGLAPI KHRONOS_APICALL
106-#endif
107-
108-#ifndef EGLAPIENTRY
109-#define EGLAPIENTRY KHRONOS_APIENTRY
110-#endif
111-#define EGLAPIENTRYP EGLAPIENTRY*
112-
113-/* The types NativeDisplayType, NativeWindowType, and NativePixmapType
114- * are aliases of window-system-dependent types, such as X Display * or
115- * Windows Device Context. They must be defined in platform-specific
116- * code below. The EGL-prefixed versions of Native*Type are the same
117- * types, renamed in EGL 1.3 so all types in the API start with "EGL".
118- *
119- * Khronos STRONGLY RECOMMENDS that you use the default definitions
120- * provided below, since these changes affect both binary and source
121- * portability of applications using EGL running on different EGL
122- * implementations.
123- */
124-
125-#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
126-#ifndef WIN32_LEAN_AND_MEAN
127-#define WIN32_LEAN_AND_MEAN 1
128-#endif
129-#include <windows.h>
130-
131-typedef HDC EGLNativeDisplayType;
132-typedef HBITMAP EGLNativePixmapType;
133-typedef HWND EGLNativeWindowType;
134-
135-#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */
136-
137-typedef int EGLNativeDisplayType;
138-typedef void *EGLNativeWindowType;
139-typedef void *EGLNativePixmapType;
140-
141-#elif defined(WL_EGL_PLATFORM)
142-
143-typedef struct wl_display *EGLNativeDisplayType;
144-typedef struct wl_egl_pixmap *EGLNativePixmapType;
145-typedef struct wl_egl_window *EGLNativeWindowType;
146-
147-#elif defined(__GBM__)
148-
149-typedef struct gbm_device *EGLNativeDisplayType;
150-typedef struct gbm_bo *EGLNativePixmapType;
151-typedef void *EGLNativeWindowType;
152-
153-#elif defined(ANDROID) /* Android */
154-
155-struct ANativeWindow;
156-struct egl_native_pixmap_t;
157-
158-typedef struct ANativeWindow *EGLNativeWindowType;
159-typedef struct egl_native_pixmap_t *EGLNativePixmapType;
160-typedef void *EGLNativeDisplayType;
161-
162-#elif defined(__unix__)
163-
164-#ifdef MESA_EGL_NO_X11_HEADERS
165-
166-typedef void *EGLNativeDisplayType;
167-typedef khronos_uint32_t EGLNativePixmapType;
168-typedef khronos_uint32_t EGLNativeWindowType;
169-
170-#else
171-
172-/* X11 (tentative) */
173-#include <X11/Xlib.h>
174-#include <X11/Xutil.h>
175-
176-typedef Display *EGLNativeDisplayType;
177-typedef Pixmap EGLNativePixmapType;
178-typedef Window EGLNativeWindowType;
179-
180-#endif /* MESA_EGL_NO_X11_HEADERS */
181-
182-#else
183-#error "Platform not recognized"
184-#endif
185-
186-/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
187-typedef EGLNativeDisplayType NativeDisplayType;
188-typedef EGLNativePixmapType NativePixmapType;
189-typedef EGLNativeWindowType NativeWindowType;
190-
191-
192-/* Define EGLint. This must be a signed integral type large enough to contain
193- * all legal attribute names and values passed into and out of EGL, whether
194- * their type is boolean, bitmask, enumerant (symbolic constant), integer,
195- * handle, or other. While in general a 32-bit integer will suffice, if
196- * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
197- * integer type.
198- */
199-typedef khronos_int32_t EGLint;
200-
201-#endif /* __eglplatform_h */
202diff --git a/include/EGL/eglplatform.h.in b/include/EGL/eglplatform.h.in
203new file mode 100644
204index 0000000..5126c92
205--- /dev/null
206+++ b/include/EGL/eglplatform.h.in
207@@ -0,0 +1,146 @@
208+#ifndef __eglplatform_h_
209+#define __eglplatform_h_
210+
211+/*
212+** Copyright (c) 2007-2009 The Khronos Group Inc.
213+**
214+** Permission is hereby granted, free of charge, to any person obtaining a
215+** copy of this software and/or associated documentation files (the
216+** "Materials"), to deal in the Materials without restriction, including
217+** without limitation the rights to use, copy, modify, merge, publish,
218+** distribute, sublicense, and/or sell copies of the Materials, and to
219+** permit persons to whom the Materials are furnished to do so, subject to
220+** the following conditions:
221+**
222+** The above copyright notice and this permission notice shall be included
223+** in all copies or substantial portions of the Materials.
224+**
225+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
226+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
227+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
228+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
229+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
230+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
231+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
232+*/
233+
234+/* Platform-specific types and definitions for egl.h
235+ * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $
236+ *
237+ * Adopters may modify khrplatform.h and this file to suit their platform.
238+ * You are encouraged to submit all modifications to the Khronos group so that
239+ * they can be included in future versions of this file. Please submit changes
240+ * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
241+ * by filing a bug against product "EGL" component "Registry".
242+ */
243+
244+#include <KHR/khrplatform.h>
245+
246+/* Macros used in EGL function prototype declarations.
247+ *
248+ * EGL functions should be prototyped as:
249+ *
250+ * EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
251+ * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
252+ *
253+ * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
254+ */
255+
256+#ifndef EGLAPI
257+#define EGLAPI KHRONOS_APICALL
258+#endif
259+
260+#ifndef EGLAPIENTRY
261+#define EGLAPIENTRY KHRONOS_APIENTRY
262+#endif
263+#define EGLAPIENTRYP EGLAPIENTRY*
264+
265+/* The types NativeDisplayType, NativeWindowType, and NativePixmapType
266+ * are aliases of window-system-dependent types, such as X Display * or
267+ * Windows Device Context. They must be defined in platform-specific
268+ * code below. The EGL-prefixed versions of Native*Type are the same
269+ * types, renamed in EGL 1.3 so all types in the API start with "EGL".
270+ *
271+ * Khronos STRONGLY RECOMMENDS that you use the default definitions
272+ * provided below, since these changes affect both binary and source
273+ * portability of applications using EGL running on different EGL
274+ * implementations.
275+ */
276+
277+#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
278+#ifndef WIN32_LEAN_AND_MEAN
279+#define WIN32_LEAN_AND_MEAN 1
280+#endif
281+#include <windows.h>
282+
283+typedef HDC EGLNativeDisplayType;
284+typedef HBITMAP EGLNativePixmapType;
285+typedef HWND EGLNativeWindowType;
286+
287+#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */
288+
289+typedef int EGLNativeDisplayType;
290+typedef void *EGLNativeWindowType;
291+typedef void *EGLNativePixmapType;
292+
293+#elif defined(WL_EGL_PLATFORM)
294+
295+typedef struct wl_display *EGLNativeDisplayType;
296+typedef struct wl_egl_pixmap *EGLNativePixmapType;
297+typedef struct wl_egl_window *EGLNativeWindowType;
298+
299+#elif defined(__GBM__)
300+
301+typedef struct gbm_device *EGLNativeDisplayType;
302+typedef struct gbm_bo *EGLNativePixmapType;
303+typedef void *EGLNativeWindowType;
304+
305+#elif defined(ANDROID) /* Android */
306+
307+struct ANativeWindow;
308+struct egl_native_pixmap_t;
309+
310+typedef struct ANativeWindow *EGLNativeWindowType;
311+typedef struct egl_native_pixmap_t *EGLNativePixmapType;
312+typedef void *EGLNativeDisplayType;
313+
314+#elif defined(__unix__)
315+
316+#if @MESA_EGL_NO_X11_HEADERS@
317+
318+typedef void *EGLNativeDisplayType;
319+typedef khronos_uint32_t EGLNativePixmapType;
320+typedef khronos_uint32_t EGLNativeWindowType;
321+
322+#else
323+
324+/* X11 (tentative) */
325+#include <X11/Xlib.h>
326+#include <X11/Xutil.h>
327+
328+typedef Display *EGLNativeDisplayType;
329+typedef Pixmap EGLNativePixmapType;
330+typedef Window EGLNativeWindowType;
331+
332+#endif /* MESA_EGL_NO_X11_HEADERS */
333+
334+#else
335+#error "Platform not recognized"
336+#endif
337+
338+/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
339+typedef EGLNativeDisplayType NativeDisplayType;
340+typedef EGLNativePixmapType NativePixmapType;
341+typedef EGLNativeWindowType NativeWindowType;
342+
343+
344+/* Define EGLint. This must be a signed integral type large enough to contain
345+ * all legal attribute names and values passed into and out of EGL, whether
346+ * their type is boolean, bitmask, enumerant (symbolic constant), integer,
347+ * handle, or other. While in general a 32-bit integer will suffice, if
348+ * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
349+ * integer type.
350+ */
351+typedef khronos_int32_t EGLint;
352+
353+#endif /* __eglplatform_h */
354--
3551.8.2.1
356