123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- From ffb8eafe2d745ddf2f44101ffc4e6599ed096e69 Mon Sep 17 00:00:00 2001
- From: Peter Seiderer <ps.report@gmx.net>
- Date: Mon, 10 May 2021 19:15:48 +0200
- Subject: [PATCH] GLES2/gl2ext.h: add GLint64, GLuint64 and GLsync typedefs
- MIME-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- Fixes:
- .../host/arm-linucleus-linux-gnueabihf/sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: error: conflicting declaration ‘typedef void* GLsync’
- 40 | typedef gpointer GLsync;
- | ^~~~~~
- .../host/arm-linucleus-linux-gnueabihf/sysroot/usr/include/qt5/QtGui/qopengles2ext.h:24:26: note: previous declaration as ‘typedef struct __GLsync* GLsync’
- 24 | typedef struct __GLsync *GLsync;
- | ^~~~~~
- File gstgl_compat.h:
- 39 #if !GST_GL_HAVE_GLSYNC
- 40 typedef gpointer GLsync;
- 41 #endif
- File qopengles2ext.h:
- 1 #ifndef __gles2_gl2ext_h_
- 2 #define __gles2_gl2ext_h_ 1
- 3
- 4 #if 0
- 5 #pragma qt_no_master_include
- 6 #pragma qt_sync_skip_header_check
- 7 #pragma qt_sync_stop_processing
- 8 #endif
- 9
- 10 #ifdef __cplusplus
- 11 extern "C" {
- 12 #endif
- 13
- 14 #ifndef __gl3_h_
- 15 /* These types are defined with reference to <inttypes.h>
- 16 * in the Apple extension spec, but here we use the Khronos
- 17 * portable types in khrplatform.h, and assume those types
- 18 * are always defined.
- 19 * If any other extensions using these types are defined,
- 20 * the typedefs must move out of this block and be shared.
- 21 */
- 22 typedef khronos_int64_t GLint64;
- 23 typedef khronos_uint64_t GLuint64;
- 24 typedef struct __GLsync *GLsync;
- 25 #endif
- The problem is that rpi-userland doesn't define GLsync, and both
- GStreamer and Qt have their own definition of GLsync in this case, but
- they are not the same.
- We reported this issue to:
- * rpi-userland, to get the headers updated:
- https://github.com/raspberrypi/userland/issues/469#issuecomment-1193864294
- * gstreamer, to get their bogus definition of GLsync fixed:
- https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/973
- In the mean time, fix this by adding the missing definitions to
- rpi-userland, so that GStreamer and Qt don't try to provide their own.
- Signed-off-by: Peter Seiderer <ps.report@gmx.net>
- ---
- interface/khronos/include/GLES2/gl2ext.h | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
- diff --git a/interface/khronos/include/GLES2/gl2ext.h b/interface/khronos/include/GLES2/gl2ext.h
- index 4eacf7f..96e87ec 100644
- --- a/interface/khronos/include/GLES2/gl2ext.h
- +++ b/interface/khronos/include/GLES2/gl2ext.h
- @@ -33,6 +33,19 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- extern "C" {
- #endif
-
- +#ifndef __gl3_h_
- +/* These types are defined with reference to <inttypes.h>
- + * in the Apple extension spec, but here we use the Khronos
- + * portable types in khrplatform.h, and assume those types
- + * are always defined.
- + * If any other extensions using these types are defined,
- + * the typedefs must move out of this block and be shared.
- + */
- +typedef khronos_int64_t GLint64;
- +typedef khronos_uint64_t GLuint64;
- +typedef struct __GLsync *GLsync;
- +#endif
- +
- /* We want this */
- #ifndef GL_GLEXT_PROTOTYPES
- #define GL_GLEXT_PROTOTYPES
- --
- 2.31.1
|